Skip to content

Commit 118d32d

Browse files
commonquailError Prone Team
authored andcommitted
IdentifierName: support JDK 22 unnamed variables
This PR nominally fixes #4847 but it is perhaps more illustrative than usable. Fixes #4848 FUTURE_COPYBARA_INTEGRATE_REVIEW=#4848 from commonquail:identifiername-accept-unnamed cc90fe1 PiperOrigin-RevId: 733740757
1 parent 4c116d9 commit 118d32d

2 files changed

Lines changed: 30 additions & 0 deletions

File tree

core/src/main/java/com/google/errorprone/bugpatterns/IdentifierName.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -278,6 +278,9 @@ private static boolean isConformant(Symbol symbol, String name) {
278278
if (isStaticVariable(symbol) && isConformantStaticVariableName(name)) {
279279
return true;
280280
}
281+
if (name.isEmpty()) {
282+
return true;
283+
}
281284
return isConformantLowerCamelName(name);
282285
}
283286

core/src/test/java/com/google/errorprone/bugpatterns/IdentifierNameTest.java

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616

1717
package com.google.errorprone.bugpatterns;
1818

19+
import static com.google.common.truth.TruthJUnit.assume;
20+
1921
import com.google.errorprone.BugCheckerRefactoringTestHelper;
2022
import com.google.errorprone.CompilationTestHelper;
2123
import org.junit.Test;
@@ -670,4 +672,29 @@ public void enumName() {
670672
"}")
671673
.doTest();
672674
}
675+
676+
@Test
677+
public void unnamedVariables() {
678+
assume().that(Runtime.version().feature()).isAtLeast(21);
679+
680+
helper
681+
.addSourceLines(
682+
"Test.java",
683+
"""
684+
import java.util.Scanner;
685+
import java.util.function.Function;
686+
687+
class Test {
688+
void unnamed() {
689+
try (var _ = new Scanner("discarded")) {
690+
Function<String, String> f = _ -> "bar";
691+
String _ = f.apply("foo");
692+
} catch (Exception _) {
693+
}
694+
}
695+
}
696+
""")
697+
.setArgs("--enable-preview", "--release", Integer.toString(Runtime.version().feature()))
698+
.doTest();
699+
}
673700
}

0 commit comments

Comments
 (0)