diff options
Diffstat (limited to 'value/src/test/java/com/google/auto/value/processor/AutoValueCompilationTest.java')
-rw-r--r-- | value/src/test/java/com/google/auto/value/processor/AutoValueCompilationTest.java | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/value/src/test/java/com/google/auto/value/processor/AutoValueCompilationTest.java b/value/src/test/java/com/google/auto/value/processor/AutoValueCompilationTest.java index 01ec81fe..d30198cf 100644 --- a/value/src/test/java/com/google/auto/value/processor/AutoValueCompilationTest.java +++ b/value/src/test/java/com/google/auto/value/processor/AutoValueCompilationTest.java @@ -1163,6 +1163,7 @@ public class AutoValueCompilationTest { "final class AutoValue_Baz<T extends Number> extends Baz<T> {", " private final int anInt;", " private final byte[] aByteArray;", + " @Nullable", " private final int[] aNullableIntArray;", " private final List<T> aList;", " private final ImmutableMap<T, String> anImmutableMap;", @@ -2038,6 +2039,37 @@ public class AutoValueCompilationTest { } @Test + public void autoValueBuilderSetterReturnsNullable() { + JavaFileObject javaFileObject = + JavaFileObjects.forSourceLines( + "foo.bar.Baz", + "package foo.bar;", + "", + "import com.google.auto.value.AutoValue;", + "import javax.annotation.Nullable;", + "", + "@AutoValue", + "public abstract class Baz {", + " abstract String blam();", + "", + " @AutoValue.Builder", + " public interface Builder {", + " @Nullable Builder blam(String x);", + " Baz build();", + " }", + "}"); + Compilation compilation = + javac() + .withProcessors(new AutoValueProcessor(), new AutoValueBuilderProcessor()) + .compile(javaFileObject); + assertThat(compilation) + .hadWarningContaining( + "Setter methods always return the Builder so @Nullable is not appropriate") + .inFile(javaFileObject) + .onLineContaining("Builder blam(String x)"); + } + + @Test public void autoValueBuilderWrongTypeSetterWithCopyOf() { JavaFileObject javaFileObject = JavaFileObjects.forSourceLines( |