profile
viewpoint
Jake Wharton JakeWharton Square Pittsburgh, PA, USA https://jakewharton.com

JakeWharton/butterknife 25530

Bind Android views and callbacks to fields and methods.

JakeWharton/ActionBarSherlock 7186

[DEPRECATED] Action bar implementation which uses the native action bar on Android 4.0+ and a custom implementation on pre-4.0 through a single API and theme.

cashapp/sqldelight 3673

SQLDelight - Generates typesafe Kotlin APIs from SQL

androidx/androidx 2281

Development environment for Jetpack Android extension libraries. Synchronized with Jetpack's primary development branch on AOSP.

JakeWharton/Android-DirectionalViewPager 1041

[DEPRECATED] Implementation of the compatibility library ViewPager class that supports paging both vertically and horizontally.

cashapp/duktape-android 790

The Duktape embeddable Javascript engine packaged for Android.

JakeWharton/adb-event-mirror 789

Mirror the touch/key/button events of one device onto one or more other devices in real-time

JakeWharton/dagger-reflect 623

A reflection-based implementation of the Dagger dependency injection library for fast IDE builds.

JakeWharton/dependency-tree-diff 525

An intelligent diff tool for the output of Gradle's dependencies task

JakeWharton/AutoValueAnnotations 227

A standalone packaging of the annotations from Google's AutoValue library.

pull request commentpinterest/ktlint

Fork/pr/overlapping paths

It looks like the build failed due to the new klob dependency not being in maven central (it is in jcenter).

thecoden

comment created time in 2 minutes

delete branch google/dagger

delete branch : test_345500977

delete time in 4 minutes

PR closed google/dagger

Internal refactor cla: yes

Internal refactor

RELNOTES=N/A

+0 -0

0 comment

0 changed file

copybara-service[bot]

pr closed time in 4 minutes

push eventgoogle/dagger

Brad Corso

commit sha 0f7a32be108e18fe558d39948c03edba51d87404

Internal refactor RELNOTES=N/A PiperOrigin-RevId: 346402242

view details

push time in 4 minutes

push eventgoogle/dagger

Brad Corso

commit sha 0f7a32be108e18fe558d39948c03edba51d87404

Internal refactor RELNOTES=N/A PiperOrigin-RevId: 346402242

view details

push time in 4 minutes

issue openeduber/NullAway

Create a Maven artifact for annotations (e.g. @EnsuresNonnull/@RequiresNonnull)

See #431

Potentially worth including a default castToNonNull(...)

unsafeCastToNonNull(...) ?

created time in 4 minutes

push eventandroidx/androidx

Simon Schiller

commit sha fa01cd0596c5a6caa1e4e4677d33d2318755bfdc

[GH] Avoid exception when calling Activity.reportFullyDrawn() ## Proposed Changes - Avoid a bug on API 19 when calling `Activity.reportFullyDrawn()` I'm not quite sure if this class is the right place for this workaround, the code could also live in other places, e.g.: - `androidx.core.app.ComponentActivity` - `androidx.activity.ComponentActivity` - `androidx.appcompat.app.AppCompatActivity` ## Testing Test: Manually tested. If your test harness is also executed on devices with API 19, I could write an automated test for this change if you want. ## Issues Fixed Fixes: 163239764 This is an imported pull request from https://github.com/androidx/androidx/pull/103. Resolves #103 Github-Pr-Head-Sha: 78894ac5325a26c9e69715540bb6a6d1d97e3429 GitOrigin-RevId: 9ef8e3e0bd9d2bed208c784f5157aaa7dc6c3845 Change-Id: Ie4cd0f421b4ac69a3420a553f930fde6253392f0

view details

Ian Lake

commit sha 330c2ff41b9233d20d28b3e87765a413bcea968f

Merge "[GH] Avoid exception when calling Activity.reportFullyDrawn()" into androidx-master-dev

view details

push time in 4 minutes

issue openeduber/NullAway

Support static fields in @EnsuresNonnull/@RequiresNonnull annotations

Follow up for #423, which punts when the field is not an instance field.

created time in 5 minutes

Pull request review commentuber/NullAway

Adds support for expressing methods precondition and postcondition using @RequiresNonnull and @EnsuresNonnull annotation

 tmp/ .texlipse  # kotlin-annotations/+/annotations/

done :-)

nimakarimipour

comment created time in 6 minutes

Pull request review commentuber/NullAway

Adds support for expressing methods precondition and postcondition using @RequiresNonnull and @EnsuresNonnull annotation

 tmp/ .texlipse  # kotlin-annotations/+/annotations/

Let's try that :)

nimakarimipour

comment created time in 11 minutes

Pull request review commentuber/NullAway

Adds support for expressing methods precondition and postcondition using @RequiresNonnull and @EnsuresNonnull annotation

 tmp/ .texlipse  # kotlin-annotations/+/annotations/

I don't think so 🙂 Should I just remove the line then?

nimakarimipour

comment created time in 12 minutes

Pull request review commentuber/NullAway

Adds support for expressing methods precondition and postcondition using @RequiresNonnull and @EnsuresNonnull annotation

+package com.uber.nullaway.qual;

Switched to annotations. 4935c00

nimakarimipour

comment created time in 13 minutes

Pull request review commentuber/NullAway

Adds support for expressing methods precondition and postcondition using @RequiresNonnull and @EnsuresNonnull annotation

 tmp/ .texlipse  # kotlin-annotations/+/annotations/

No idea. Do we have Kotlin code in this repo?

nimakarimipour

comment created time in 14 minutes

push eventandroidx/androidx

Jeff Gaston

commit sha d25425cb6f58027bd9f351ccfff1886f304fdd55

studiow offering extra short arguments for various project subsets Bug: 173045787 Test: ./studiow # and see that it prints usage Test: ./studiow --misspelled # and see that it prints usage Test: ./studiow c c # and see that it prints usage Test: ./studiow c # and see that it opens only compose projects Change-Id: Iea639498852db4f62452674ea656741377476e20

view details

Andrii Kulian

commit sha 1dd09ea62b663a96df0f08b6e4cc244852824b83

Allow multiple callbacks from WM Sidecar in tests Relax condition on integration tests to accept multiple callbacks Bug: 175063146 Bug: 175060485 Test: ./gradlew window:window:connectedAndroidTest Change-Id: Ib4878b0c4d8d8db42ab230d0e36e3f4088d615bd

view details

Jeff Gaston

commit sha f9f970e8cfcfeb7f9a1b05af990cb1948e1c96c3

Merge "studiow offering extra short arguments for various project subsets" into androidx-master-dev

view details

Treehugger Robot

commit sha 814ca9522e095110ea298786ce34548cc7511269

Merge "Allow multiple callbacks from WM Sidecar in tests" into androidx-master-dev

view details

Jeff Gaston

commit sha d3851acd8d50320712e3879cd845eaa5be3c9637

Merge "studiow offering extra short arguments for various project subsets" into androidx-master-dev am: f9f970e8cf Original change: https://android-review.googlesource.com/c/platform/frameworks/support/+/1515799 MUST ONLY BE SUBMITTED BY AUTOMERGER Change-Id: I23f7b9f0f47c57e2b492344f624d7d550d7dc2a6

view details

Automerger Merge Worker

commit sha cc9d3e3f6dcea99abfbf473510b8569799ada7fb

Merge "Merge "studiow offering extra short arguments for various project subsets" into androidx-master-dev am: f9f970e8cf" into androidx-main

view details

Treehugger Robot

commit sha f5c009459b4090e43187aeaf44c39ae433bd0ebd

Merge "Allow multiple callbacks from WM Sidecar in tests" into androidx-master-dev am: 814ca9522e Original change: https://android-review.googlesource.com/c/platform/frameworks/support/+/1519949 MUST ONLY BE SUBMITTED BY AUTOMERGER Change-Id: I0707ff8183935fdf40df1821ec7bb0e95ce3d970

view details

Automerger Merge Worker

commit sha b658efe33aba6157f0c9a3029e520168caf6d585

Merge "Merge "Allow multiple callbacks from WM Sidecar in tests" into androidx-master-dev am: 814ca9522e" into androidx-main

view details

push time in 15 minutes

Pull request review commentuber/NullAway

Adds support for expressing methods precondition and postcondition using @RequiresNonnull and @EnsuresNonnull annotation

 tmp/ .texlipse  # kotlin-annotations/+/annotations/

@lazaroclapp this originally led to our new com.uber.nullaway.annotations package source files getting ignored. Is this the right fix?

nimakarimipour

comment created time in 17 minutes

issue commentgoogle/auto

AutoService fails for services with generics and verify = true

I made the change I suggested above:

we could emit a warning rather than an error when the annotated class does implement the given interface, but the interface has type parameter; and [...] we could arrange for @SuppressWarnings("rawtypes") to suppress this warning when applied to the annotated class.

This is perfect. The @SuppressWarnings("rawtypes") is a good tradeoff. Thanks!

ogregoire

comment created time in 18 minutes

push eventandroidx/androidx

Andrii Kulian

commit sha 1dd09ea62b663a96df0f08b6e4cc244852824b83

Allow multiple callbacks from WM Sidecar in tests Relax condition on integration tests to accept multiple callbacks Bug: 175063146 Bug: 175060485 Test: ./gradlew window:window:connectedAndroidTest Change-Id: Ib4878b0c4d8d8db42ab230d0e36e3f4088d615bd

view details

Treehugger Robot

commit sha 814ca9522e095110ea298786ce34548cc7511269

Merge "Allow multiple callbacks from WM Sidecar in tests" into androidx-master-dev

view details

push time in 23 minutes

PR opened pinterest/ktlint

Fork/pr/overlapping paths

Fixes #999

+9 -16

0 comment

2 changed files

pr created time in 24 minutes

created tagJetBrains/kotlin-native

tagbuild-1.5.0-dev-288

Kotlin/Native infrastructure

created time in 24 minutes

created tagJetBrains/kotlin

tagbuild-1.5.0-dev-288

The Kotlin Programming Language

created time in 25 minutes

pull request commentandroidx/androidx

Avoid exception when calling Activity.reportFullyDrawn()

jcenter 502'ing :|

simonschiller

comment created time in 27 minutes

push eventgoogle/error-prone

travis-ci

commit sha 61982f08063b16796b77ec5d2ab317df9a9c33a4

Latest docs on successful travis build 2873 auto-pushed to gh-pages

view details

push time in 27 minutes

push eventJetBrains/kotlin

Ilya Kirillov

commit sha 0ca7c504520ccb313deb84096c438fe202e6e937

FIR IDE: refactor, separate resolveSimpleNameReference into functions

view details

push time in 28 minutes

push eventandroidx/androidx

Jeff Gaston

commit sha d25425cb6f58027bd9f351ccfff1886f304fdd55

studiow offering extra short arguments for various project subsets Bug: 173045787 Test: ./studiow # and see that it prints usage Test: ./studiow --misspelled # and see that it prints usage Test: ./studiow c c # and see that it prints usage Test: ./studiow c # and see that it opens only compose projects Change-Id: Iea639498852db4f62452674ea656741377476e20

view details

Jeff Gaston

commit sha f9f970e8cfcfeb7f9a1b05af990cb1948e1c96c3

Merge "studiow offering extra short arguments for various project subsets" into androidx-master-dev

view details

push time in 33 minutes

push eventandroidx/androidx

Jim Sproch

commit sha 411d7ccbfcb01331465a9ede2b956c5d697a5fe9

Remove unused JVM synchronization helpers Change-Id: Ief06f6b7b1f2c62c2eb41ac70d3f8ae44c87f322

view details

Yigit Boyar

commit sha 4c739700b8a592bba415726d3d322b07bf5edbf5

Support simple state restoration cases This CL allows paging to restore its state when: a) flow is cached and application is not killed (e.g. flow is cached in a view model and activity is recreated in process) b) paging source is counted, placeholders are enabled and the layout is not staggered. This CL changes PagingDataAdapter's state restoration strategy to PREVENT and then watches for the first insert event to allow it. When first insert event arrives (even when it is empty), we allow state restoration (to acocunt for new list being empty for real). If user calls, setRestorationStrategy, this logic is no-op. Both if these work without any aide from `initialKey`. In case of option `B`, not having initial key means we'll load all pages from beginning till the current position, which is why placeholders are necessary (otherwise, recyclerview won't find the position it wants and abort restoration or go to closest position). Bug: 141189835 Test: StateRestorationTest Change-Id: Ibd8a54cbb12b3f5e00010ea22c90646bcf385e70

view details

Jelle Fresen

commit sha 74100c3a3c9b30b9d50ab4eb3a71de6ba19f1ff4

Add Compose variant of IdlingResources Made ComposeIdlingResource implement our interface instead of Espresso's, and added a single link between Espresso and ComposeIdlingResource to progress towards fewer dependencies on Espresso. Bug: 172650205 Test: ComposeIdlingResourceRegistryTest Relnote: "Added IdlingResource interfaces to Compose, as a Compose supported variant of Espresso's idling resources. They can be registered and unregistered through the ComposeTestRule" Change-Id: I433f395067a6de6d0a4afc994e5cdb813098b9c3

view details

Jelle Fresen

commit sha 8aafc88e60e19dfb374f4f3a8ccd16b25af67110

Remove CompositionAwaiter, it is no longer needed It used to be necessary when onCommit was scheduled on the Choreographer, but we don't schedule things on the Choreographer anymore without being aware that something still needs to happen. Bug: 174132991 Test: ./gradlew bOS Change-Id: I9a42e4de818a5ab18153202e4df25c8941e7bf4e

view details

Jelle Fresen

commit sha 9197fa93499769f88d5f3d05edede69db52f6fd9

Reenable isDirty check in ComposeIdlingResource The isDirty check didn't work for ActivityDemos because that's where we have an AndroidOwner whose lifecycle is not RESUMED, and we were checking isDirty of _all_ AndroidOwners, rather than just from the RESUMED ones. Fixes: 174244530 Test: ./gradlew compose:integration-tests:demos:cC Change-Id: I4221ee8afe44e8bcec033b7b4bcda6b0882fb9ff

view details

Jeremy Woods

commit sha 86632c8029fef05e9c12b47297d60488075113ab

Ensure ActivityResultRegistry keeps saved pending results When an ActivityResultRegistry has its state saved, we should ensure the state in the returned bundle is unchanged. Since the pending results were being saved directly, unregistering a result after the saving the state would cause pending results to be dropped. We should instead save a copy of the pending result in the bundle to ensure that the state that is restored is the same state that was saved. RelNote: "The ActivityResultRegistry now always restores the exact state that was saved." Test: testUnregisterAfterSavedState Change-Id: Idd56b95f825aa457d623a9569ce229d42c7f746b

view details

Jelle Fresen

commit sha b5d1deae616f1b691450dddbc092b528938b664a

Merge changes I4221ee8a,I9a42e4de,I433f3950 into androidx-master-dev * changes: Reenable isDirty check in ComposeIdlingResource Remove CompositionAwaiter, it is no longer needed Add Compose variant of IdlingResources

view details

Treehugger Robot

commit sha 1a68843558f7dc860f57ef968f21f519ab6db435

Merge "Support simple state restoration cases" into androidx-master-dev

view details

Treehugger Robot

commit sha 18cff6e411767c391e05dc64a2c27d64f6418648

Merge "Ensure ActivityResultRegistry keeps saved pending results" into androidx-master-dev

view details

Jim Sproch

commit sha a75611525ccebb7af19117f32dc30cffd7277031

Merge "Remove unused JVM synchronization helpers" into androidx-master-dev

view details

Jelle Fresen

commit sha 354594535a72068c37f75d57ad0466bbde632faa

Merge changes I4221ee8a,I9a42e4de,I433f3950 into androidx-master-dev am: b5d1deae61 Original change: https://android-review.googlesource.com/c/platform/frameworks/support/+/1516558 MUST ONLY BE SUBMITTED BY AUTOMERGER Change-Id: I7b87d849ca6e0aa384d6d5142b5a07ae2d8b53cd

view details

Automerger Merge Worker

commit sha e2469fa2e61f8d4d2cd33b362de728aaf9a2cd27

Merge "Merge changes I4221ee8a,I9a42e4de,I433f3950 into androidx-master-dev am: b5d1deae61" into androidx-main

view details

Treehugger Robot

commit sha 57383793bb25128c6906ac8f26e0e28df2ce6f08

Merge "Support simple state restoration cases" into androidx-master-dev am: 1a68843558 Original change: https://android-review.googlesource.com/c/platform/frameworks/support/+/1517194 MUST ONLY BE SUBMITTED BY AUTOMERGER Change-Id: I0a43b78d0d7c342fac9cc977cfa1f387fd072180

view details

Automerger Merge Worker

commit sha 11551636b8a6fa825704de9342d2e3de0a2e593b

Merge "Merge "Support simple state restoration cases" into androidx-master-dev am: 1a68843558" into androidx-main

view details

Treehugger Robot

commit sha ff4e5cc4631946b5af144b531756fb40d50a2a4b

Merge "Ensure ActivityResultRegistry keeps saved pending results" into androidx-master-dev am: 18cff6e411 Original change: https://android-review.googlesource.com/c/platform/frameworks/support/+/1520752 MUST ONLY BE SUBMITTED BY AUTOMERGER Change-Id: Idda128b1e043601c4c360ea84f2516420cbb4be1

view details

Automerger Merge Worker

commit sha 38fb50df23b877d9b9e0591595c1f9122b70c59e

Merge "Merge "Ensure ActivityResultRegistry keeps saved pending results" into androidx-master-dev am: 18cff6e411" into androidx-main

view details

Jim Sproch

commit sha 7e8f83e43b717e5b9e731ead6bb2fae2a160a606

Merge "Remove unused JVM synchronization helpers" into androidx-master-dev am: a75611525c Original change: https://android-review.googlesource.com/c/platform/frameworks/support/+/1518407 MUST ONLY BE SUBMITTED BY AUTOMERGER Change-Id: I1b02cadc291c507aa75978344c4f364328151882

view details

Automerger Merge Worker

commit sha cfe60bf69c11f3238aeec0030ba73f8cd6e2fd21

Merge "Merge "Remove unused JVM synchronization helpers" into androidx-master-dev am: a75611525c" into androidx-main

view details

push time in 41 minutes

issue commentgoogle/guava

CVE-2020-8908: Files::createTempDir local information disclosure vulnerability

Stating that I was going to file a formal appeal to MITRE finally got action on behalf of Google. They have assigned CVE-2020-8908 which should be disclosed later this week.

JLLeitschuh

comment created time in 44 minutes

delete branch google/error-prone

delete branch : test_346000494

delete time in an hour

PR merged google/error-prone

NullTernary shouldn't crash on JDK 14 cla: yes

NullTernary shouldn't crash on JDK 14

Fixes #1982

+38 -2

0 comment

3 changed files

copybara-service[bot]

pr closed time in an hour

push eventgoogle/error-prone

Sumit Bhagwani

commit sha 698ce20959032590456ceda7347805aaaa3f220b

NullTernary shouldn't crash on JDK 14 Fixes #1982 PiperOrigin-RevId: 346393062

view details

push time in an hour

issue closedgoogle/error-prone

ErrorProne crashes with `ClassCastException` on JDK 14

Description of the problem / feature request:

ErrorProne crashes with ClassCastException on JDK 14. Seems a switch case with a ternary operator causes problems. <details> <summary>Stacktrace</summary>

error-prone version: 2.4.0
   BugPattern: NullTernary
   Stack Trace:
   java.lang.ClassCastException: class com.sun.tools.javac.tree.JCTree$JCSwitchExpression cannot be cast to class com.sun.source.tree.SwitchTree (com.sun.tools.javac.tree.JCTree$JCSwitchExpression and com.sun.source.tree.SwitchTree are in module jdk.compiler of loader 'app')
	at com.google.errorprone.util.ASTHelpers$TargetTypeVisitor.visitCase(ASTHelpers.java:1509)
	at com.google.errorprone.util.ASTHelpers$TargetTypeVisitor.visitCase(ASTHelpers.java:1467)
	at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCCase.accept(JCTree.java:1298)
	at jdk.compiler/com.sun.source.util.SimpleTreeVisitor.visit(SimpleTreeVisitor.java:80)
	at com.google.errorprone.util.ASTHelpers.targetType(ASTHelpers.java:1426)
	at com.google.errorprone.bugpatterns.NullTernary.matchConditionalExpression(NullTernary.java:46)
	at com.google.errorprone.scanner.ErrorProneScanner.processMatchers(ErrorProneScanner.java:451)
	at com.google.errorprone.scanner.ErrorProneScanner.visitConditionalExpression(ErrorProneScanner.java:580)
	at com.google.errorprone.scanner.ErrorProneScanner.visitConditionalExpression(ErrorProneScanner.java:152)
	at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCConditional.accept(JCTree.java:1468)
	at jdk.compiler/com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82)
	at com.google.errorprone.scanner.Scanner.scan(Scanner.java:74)
	at com.google.errorprone.scanner.Scanner.scan(Scanner.java:48)
	at jdk.compiler/com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:90)
	at jdk.compiler/com.sun.source.util.TreeScanner.visitCase(TreeScanner.java:361)
	at com.google.errorprone.scanner.ErrorProneScanner.visitCase(ErrorProneScanner.java:536)
	at com.google.errorprone.scanner.ErrorProneScanner.visitCase(ErrorProneScanner.java:152)
	at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCCase.accept(JCTree.java:1298)
	at jdk.compiler/com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82)
	at com.google.errorprone.scanner.Scanner.scan(Scanner.java:74)
	at com.google.errorprone.scanner.Scanner.scan(Scanner.java:48)
	at jdk.compiler/com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:90)
	at jdk.compiler/com.sun.source.util.TreeScanner.scan(TreeScanner.java:105)
	at jdk.compiler/com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:113)
	at jdk.compiler/com.sun.source.util.TreeScanner.visitSwitchExpression(TreeScanner.java:346)
	at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCSwitchExpression.accept(JCTree.java:1329)
	at jdk.compiler/com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82)
	at com.google.errorprone.scanner.Scanner.scan(Scanner.java:74)
	at com.google.errorprone.scanner.Scanner.scan(Scanner.java:48)
	at jdk.compiler/com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:90)
	at jdk.compiler/com.sun.source.util.TreeScanner.visitLambdaExpression(TreeScanner.java:576)
	at com.google.errorprone.scanner.ErrorProneScanner.visitLambdaExpression(ErrorProneScanner.java:704)
	at com.google.errorprone.scanner.ErrorProneScanner.visitLambdaExpression(ErrorProneScanner.java:152)
	at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCLambda.accept(JCTree.java:1917)
	at jdk.compiler/com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82)
	at com.google.errorprone.scanner.Scanner.scan(Scanner.java:74)
	at com.google.errorprone.scanner.Scanner.scan(Scanner.java:48)
	at jdk.compiler/com.sun.source.util.TreeScanner.scan(TreeScanner.java:105)
	at jdk.compiler/com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:113)
	at jdk.compiler/com.sun.source.util.TreeScanner.visitMethodInvocation(TreeScanner.java:526)
	at com.google.errorprone.scanner.ErrorProneScanner.visitMethodInvocation(ErrorProneScanner.java:753)
	at com.google.errorprone.scanner.ErrorProneScanner.visitMethodInvocation(ErrorProneScanner.java:152)
	at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1752)
	at jdk.compiler/com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82)
	at com.google.errorprone.scanner.Scanner.scan(Scanner.java:74)
	at com.google.errorprone.scanner.Scanner.scan(Scanner.java:48)
	at jdk.compiler/com.sun.source.util.TreeScanner.visitExpressionStatement(TreeScanner.java:450)
	at com.google.errorprone.scanner.ErrorProneScanner.visitExpressionStatement(ErrorProneScanner.java:635)
	at com.google.errorprone.scanner.ErrorProneScanner.visitExpressionStatement(ErrorProneScanner.java:152)
	at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCExpressionStatement.accept(JCTree.java:1531)
	at jdk.compiler/com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82)
	at com.google.errorprone.scanner.Scanner.scan(Scanner.java:74)
	at com.google.errorprone.scanner.Scanner.scan(Scanner.java:48)
	at jdk.compiler/com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:90)
	at jdk.compiler/com.sun.source.util.TreeScanner.scan(TreeScanner.java:105)
	at jdk.compiler/com.sun.source.util.TreeScanner.visitBlock(TreeScanner.java:248)
	at com.google.errorprone.scanner.ErrorProneScanner.visitBlock(ErrorProneScanner.java:522)
	at com.google.errorprone.scanner.ErrorProneScanner.visitBlock(ErrorProneScanner.java:152)
	at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:1050)
	at jdk.compiler/com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82)
	at com.google.errorprone.scanner.Scanner.scan(Scanner.java:74)
	at com.google.errorprone.scanner.Scanner.scan(Scanner.java:48)
	at jdk.compiler/com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:90)
	at jdk.compiler/com.sun.source.util.TreeScanner.visitMethod(TreeScanner.java:206)
	at com.google.errorprone.scanner.ErrorProneScanner.visitMethod(ErrorProneScanner.java:742)
	at com.google.errorprone.scanner.ErrorProneScanner.visitMethod(ErrorProneScanner.java:152)
	at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:916)
	at jdk.compiler/com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82)
	at com.google.errorprone.scanner.Scanner.scan(Scanner.java:74)
	at com.google.errorprone.scanner.Scanner.scan(Scanner.java:48)
	at jdk.compiler/com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:90)
	at jdk.compiler/com.sun.source.util.TreeScanner.scan(TreeScanner.java:105)
	at jdk.compiler/com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:113)
	at jdk.compiler/com.sun.source.util.TreeScanner.visitClass(TreeScanner.java:187)
	at com.google.errorprone.scanner.ErrorProneScanner.visitClass(ErrorProneScanner.java:550)
	at com.google.errorprone.scanner.ErrorProneScanner.visitClass(ErrorProneScanner.java:152)
	at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:823)
	at jdk.compiler/com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82)
	at com.google.errorprone.scanner.Scanner.scan(Scanner.java:74)
	at com.google.errorprone.scanner.Scanner.scan(Scanner.java:48)
	at jdk.compiler/com.sun.source.util.TreeScanner.scan(TreeScanner.java:105)
	at jdk.compiler/com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:113)
	at jdk.compiler/com.sun.source.util.TreeScanner.visitCompilationUnit(TreeScanner.java:144)
	at com.google.errorprone.scanner.ErrorProneScanner.visitCompilationUnit(ErrorProneScanner.java:562)
	at com.google.errorprone.scanner.ErrorProneScanner.visitCompilationUnit(ErrorProneScanner.java:152)
	at jdk.compiler/com.sun.tools.javac.tree.JCTree$JCCompilationUnit.accept(JCTree.java:603)
	at jdk.compiler/com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:56)
	at com.google.errorprone.scanner.Scanner.scan(Scanner.java:58)
	at com.google.errorprone.scanner.ErrorProneScannerTransformer.apply(ErrorProneScannerTransformer.java:43)
	at com.google.errorprone.ErrorProneAnalyzer.finished(ErrorProneAnalyzer.java:152)
	at jdk.compiler/com.sun.tools.javac.api.MultiTaskListener.finished(MultiTaskListener.java:132)
	at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.flow(JavaCompiler.java:1423)
	at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.flow(JavaCompiler.java:1370)
	at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:959)
	at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.lambda$doCall$0(JavacTaskImpl.java:104)
	at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.handleExceptions(JavacTaskImpl.java:147)
	at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:100)
	at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:94)
	at org.jetbrains.jps.javac.JavacMain.compile(JavacMain.java:231)
	at org.jetbrains.jps.incremental.java.JavaBuilder.compileJava(JavaBuilder.java:498)
	at org.jetbrains.jps.incremental.java.JavaBuilder.compile(JavaBuilder.java:350)
	at org.jetbrains.jps.incremental.java.JavaBuilder.doBuild(JavaBuilder.java:274)
	at org.jetbrains.jps.incremental.java.JavaBuilder.build(JavaBuilder.java:228)
	at org.jetbrains.jps.incremental.IncProjectBuilder.runModuleLevelBuilders(IncProjectBuilder.java:1441)
	at org.jetbrains.jps.incremental.IncProjectBuilder.runBuildersForChunk(IncProjectBuilder.java:1100)
	at org.jetbrains.jps.incremental.IncProjectBuilder.buildTargetsChunk(IncProjectBuilder.java:1224)
	at org.jetbrains.jps.incremental.IncProjectBuilder.buildChunkIfAffected(IncProjectBuilder.java:1066)
	at org.jetbrains.jps.incremental.IncProjectBuilder.buildChunks(IncProjectBuilder.java:832)
	at org.jetbrains.jps.incremental.IncProjectBuilder.runBuild(IncProjectBuilder.java:419)
	at org.jetbrains.jps.incremental.IncProjectBuilder.build(IncProjectBuilder.java:183)
	at org.jetbrains.jps.cmdline.BuildRunner.runBuild(BuildRunner.java:132)
	at org.jetbrains.jps.cmdline.BuildSession.runBuild(BuildSession.java:302)
	at org.jetbrains.jps.cmdline.BuildSession.run(BuildSession.java:132)
	at org.jetbrains.jps.cmdline.BuildMain$MyMessageHandler.lambda$channelRead0$0(BuildMain.java:219)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
	at java.base/java.lang.Thread.run(Thread.java:832)

</details>

Bugs: what's the simplest, easiest way to reproduce this bug? Please provide a minimal example if possible.

static String doStuff(SomeEnum enumVar) {
	return switch (enumVar) {
		case A -> enumVar.name() != null ? "AAA" : null;
		default -> null;
	};
}

static enum SomeEnum {
	A, B
}

What version of Error Prone are you using?

2.4.0

closed time in an hour

mdindoffer
more