Skip to content

Commit fdec09a

Browse files
authored
Add a test for a useless @contract (uber#1346)
Make sure `@Contract("null -> null")` is not being interpreted incorrectly. Test-only change.
1 parent 39d65f8 commit fdec09a

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

nullaway/src/test/java/com/uber/nullaway/ContractsTests.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,8 @@ public void impliesNonNullContractAnnotation() {
173173
"public class NullnessChecker {",
174174
" @Contract(\"!null -> !null\")",
175175
" static @Nullable Object noOp(@Nullable Object o) { return o; }",
176+
" @Contract(\"null -> null\")",
177+
" static @Nullable Object uselessContract(@Nullable Object o) { return o; }",
176178
"}")
177179
.addSourceLines(
178180
"Test.java",
@@ -190,6 +192,11 @@ public void impliesNonNullContractAnnotation() {
190192
" // BUG: Diagnostic contains: returning @Nullable expression",
191193
" return NullnessChecker.noOp(o1);",
192194
" }",
195+
" Object test4(Object o4) {",
196+
" // still get a report here since the @Contract annotation doesn't help",
197+
" // BUG: Diagnostic contains: returning @Nullable expression",
198+
" return NullnessChecker.uselessContract(o4);",
199+
" }",
193200
"}")
194201
.doTest();
195202
}

0 commit comments

Comments
 (0)