From 769049be6ac59d2f8fc7d17f87059d502c4a8743 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20=C5=9Eener?= Date: Thu, 14 Oct 2021 10:13:30 +0200 Subject: [PATCH] Add a failing test in `CheckReturnValueTest` --- .../bugpatterns/CheckReturnValueTest.java | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/core/src/test/java/com/google/errorprone/bugpatterns/CheckReturnValueTest.java b/core/src/test/java/com/google/errorprone/bugpatterns/CheckReturnValueTest.java index 70d77f18ab4..5d3ef08c056 100644 --- a/core/src/test/java/com/google/errorprone/bugpatterns/CheckReturnValueTest.java +++ b/core/src/test/java/com/google/errorprone/bugpatterns/CheckReturnValueTest.java @@ -16,6 +16,7 @@ package com.google.errorprone.bugpatterns; +import com.google.errorprone.BugCheckerRefactoringTestHelper; import com.google.errorprone.CompilationTestHelper; import org.junit.Test; import org.junit.runner.RunWith; @@ -645,4 +646,32 @@ public void noCRVonClasspath() { .withClasspath(CRVTest.class, CheckReturnValueTest.class) .doTest(); } + + @Test + public void effectivelyFinal() { + String[] input = { + "import com.google.errorprone.annotations.CheckReturnValue;", + "import java.util.List;", + "", + "public class TestClass {", + " public void test() {", + " var variable = new CustomType();", + " // BUG: Diagnostic contains: Ignored return value", + " List.of(1).forEach(unused -> variable.get());", + " }", + " static final class CustomType {", + " @CheckReturnValue", + " public CustomType get() {", + " return null;", + " }", + " }", + "}" + }; + compilationHelper.addSourceLines("TestClass.java", input).doTest(); + + BugCheckerRefactoringTestHelper.newInstance(CheckReturnValue.class, getClass()) + .addInputLines("TestClass.java", input) + .expectUnchanged() + .doTest(); + } }