From 7b6ae680897c2431e0b1ad0f9818655889416b88 Mon Sep 17 00:00:00 2001 From: Kurt Alfred Kluever Date: Wed, 13 Apr 2022 10:58:13 -0700 Subject: [PATCH] PUBLIC: Add an example test for AutoBuilder `build()` methods. RELNOTES=n/a PiperOrigin-RevId: 441525562 --- .../bugpatterns/IgnoredPureGetterTest.java | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/core/src/test/java/com/google/errorprone/bugpatterns/IgnoredPureGetterTest.java b/core/src/test/java/com/google/errorprone/bugpatterns/IgnoredPureGetterTest.java index 2a4bff51e55..20eaaf2e943 100644 --- a/core/src/test/java/com/google/errorprone/bugpatterns/IgnoredPureGetterTest.java +++ b/core/src/test/java/com/google/errorprone/bugpatterns/IgnoredPureGetterTest.java @@ -186,6 +186,50 @@ public void autoBuilder_getters() { .doTest(); } + @Test + public void autoBuilder_buildIsntCrv() { + helper + .addSourceLines( + "Named.java", + "import com.google.auto.value.AutoBuilder;", + "import java.time.LocalTime;", + "@AutoBuilder(callMethod = \"of\", ofClass = LocalTime.class)", + "interface LocalTimeBuilder {", + " LocalTimeBuilder setHour(int hour);", + " LocalTimeBuilder setMinute(int minute);", + " LocalTimeBuilder setSecond(int second);", + " LocalTimeBuilder setNanoOfSecond(int nanoOfSecond);", + " int getHour();", + " int getMinute();", + " int getSecond();", + " int getNanoOfSecond();", + " LocalTime build();", // calls: LocalTime.of(...) + "}") + .addSourceLines( + "B.java", + "class B {", + " void test(LocalTimeBuilder builder) {", + // the setters are treated as CIRV: + " builder.setHour(12);", + " builder.setMinute(12);", + " builder.setSecond(12);", + // the getters are treated as CRV: + " // BUG: Diagnostic contains: IgnoredPureGetter", + " builder.getHour();", + " // BUG: Diagnostic contains: IgnoredPureGetter", + " builder.getMinute();", + " // BUG: Diagnostic contains: IgnoredPureGetter", + " builder.getSecond();", + " // BUG: Diagnostic contains: IgnoredPureGetter", + " builder.getNanoOfSecond();", + // TODO(b/229107551): this shouldn't be treated as CRV + " // BUG: Diagnostic contains: IgnoredPureGetter", + " builder.build();", + " }", + "}") + .doTest(); + } + @Test public void refactoringHelper() { refactoringHelper