From 266a16e98a43b3e5fbfc164b21c0c23270fc650c Mon Sep 17 00:00:00 2001 From: Liam Miller-Cushon Date: Tue, 4 Oct 2022 17:17:38 -0700 Subject: [PATCH] Cleanup a test that was relying on https://bugs.openjdk.java.net/browse/JDK-8293897 PiperOrigin-RevId: 478920369 --- .../bugpatterns/MustBeClosedCheckerTest.java | 83 +++++++++++++++++++ .../MustBeClosedCheckerPositiveCases.java | 16 ---- ...BeClosedCheckerPositiveCases_expected.java | 18 ---- 3 files changed, 83 insertions(+), 34 deletions(-) diff --git a/core/src/test/java/com/google/errorprone/bugpatterns/MustBeClosedCheckerTest.java b/core/src/test/java/com/google/errorprone/bugpatterns/MustBeClosedCheckerTest.java index 035928d3f84..d4b48d6bad0 100644 --- a/core/src/test/java/com/google/errorprone/bugpatterns/MustBeClosedCheckerTest.java +++ b/core/src/test/java/com/google/errorprone/bugpatterns/MustBeClosedCheckerTest.java @@ -18,6 +18,7 @@ import com.google.errorprone.BugCheckerRefactoringTestHelper; import com.google.errorprone.CompilationTestHelper; +import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; @@ -72,4 +73,86 @@ public void enumInitializer() { "}") .doTest(); } + + @Test + public void forLoop() { + refactoringHelper + .addInputLines( + "Test.java", + "import com.google.errorprone.annotations.MustBeClosed;", + "class Test {", + " class Closeable implements AutoCloseable {", + " @Override", + " public void close() {}", + " public int method() {", + " return 1;", + " }", + " }", + " class Foo {", + " @MustBeClosed", + " Closeable mustBeClosedMethod() {", + " return null;", + " }", + " }", + " void forLoopCondition() {", + " for (int i = 0; i < new Foo().mustBeClosedMethod().method(); ++i) {}", + " }", + "}") + .addOutputLines( + "Test.java", + "import com.google.errorprone.annotations.MustBeClosed;", + "class Test {", + " class Closeable implements AutoCloseable {", + " @Override", + " public void close() {}", + " public int method() {", + " return 1;", + " }", + " }", + " class Foo {", + " @MustBeClosed", + " Closeable mustBeClosedMethod() {", + " return null;", + " }", + " }", + " void forLoopCondition() {", + " try (var closeable = new Foo().mustBeClosedMethod()) {", + " for (int i = 0; i < closeable.method(); ++i) {}", + " }", + " }", + "}") + .doTest(); + } + + @Ignore("b/236715080") + @Test + public void forLoopUnfixable() { + refactoringHelper + .addInputLines( + "Test.java", + "import com.google.errorprone.annotations.MustBeClosed;", + "class Test {", + " class Closeable implements AutoCloseable {", + " @Override", + " public void close() {}", + " public int method() {", + " return 1;", + " }", + " }", + " class Foo {", + " @MustBeClosed", + " Closeable mustBeClosedMethod() {", + " return null;", + " }", + " }", + " void forLoopInitialization() {", + " for (int i = new Foo().mustBeClosedMethod().method(); i > 0; --i) { }", + " }", + " void forLoopUpdate() {", + " for (int i = 0; i < 100; i += new Foo().mustBeClosedMethod().method()) {}", + " }", + "}") + .expectUnchanged() + .doTest(); + } } diff --git a/core/src/test/java/com/google/errorprone/bugpatterns/testdata/MustBeClosedCheckerPositiveCases.java b/core/src/test/java/com/google/errorprone/bugpatterns/testdata/MustBeClosedCheckerPositiveCases.java index 4884c5d0e33..2be8547277c 100644 --- a/core/src/test/java/com/google/errorprone/bugpatterns/testdata/MustBeClosedCheckerPositiveCases.java +++ b/core/src/test/java/com/google/errorprone/bugpatterns/testdata/MustBeClosedCheckerPositiveCases.java @@ -172,22 +172,6 @@ int variableDeclaration() { return result; } - void forLoopInitialization() { - // TODO(b/236715080): fix results in invalid code. BUG: Diagnostic contains: - // for (int i = new Foo().mustBeClosedAnnotatedMethod().method(); i > 0; --i) { } - } - - void forLoopConditionUnfixable() { - // TODO(b/236715080): suggested fix changes behavior. - // BUG: Diagnostic contains: - for (int i = 0; i < new Foo().mustBeClosedAnnotatedMethod().method(); ++i) {} - } - - void forLoopUpdateUnfixable() { - // TODO(b/236715080): fix results in invalid code. BUG: Diagnostic contains: - // for (int i = 0; i < 100; i += new Foo().mustBeClosedAnnotatedMethod().method()) {} - } - void tryWithResources_nonFinal() { Foo foo = new Foo(); // BUG: Diagnostic contains: diff --git a/core/src/test/java/com/google/errorprone/bugpatterns/testdata/MustBeClosedCheckerPositiveCases_expected.java b/core/src/test/java/com/google/errorprone/bugpatterns/testdata/MustBeClosedCheckerPositiveCases_expected.java index 8fbe9e2774f..84f686de9b7 100644 --- a/core/src/test/java/com/google/errorprone/bugpatterns/testdata/MustBeClosedCheckerPositiveCases_expected.java +++ b/core/src/test/java/com/google/errorprone/bugpatterns/testdata/MustBeClosedCheckerPositiveCases_expected.java @@ -188,24 +188,6 @@ int variableDeclaration() { return result; } - void forLoopInitialization() { - // TODO(b/236715080): fix results in invalid code. BUG: Diagnostic contains: - // for (int i = new Foo().mustBeClosedAnnotatedMethod().method(); i > 0; --i) {} - } - - void forLoopConditionUnfixable() { - // TODO(b/236715080): suggested fix changes behavior. - // BUG: Diagnostic contains: - try (final var closeable = new Foo().mustBeClosedAnnotatedMethod()) { - for (int i = 0; i < closeable.method(); ++i) {} - } - } - - void forLoopUpdateUnfixable() { - // TODO(b/236715080): fix results in invalid code. BUG: Diagnostic contains: - // for (int i = 0; i < 100; i += new Foo().mustBeClosedAnnotatedMethod().method()) {} - } - void tryWithResources_nonFinal() { Foo foo = new Foo(); // BUG: Diagnostic contains: