Skip to content

Commit a814475

Browse files
committed
make test case
1 parent c7e75cb commit a814475

File tree

3 files changed

+41
-0
lines changed

3 files changed

+41
-0
lines changed

jdk-annotations/jdk-integration-test/src/test/java/com/uber/nullaway/jdkannotations/JDKIntegrationTest.java

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -353,4 +353,33 @@ public void libraryLoadMethodParserReturn() {
353353
"}")
354354
.doTest();
355355
}
356+
357+
@Test
358+
public void loadLibraryModuleMethodTypeParam() {
359+
compilationHelper
360+
.setArgs(
361+
Arrays.asList(
362+
"-d",
363+
temporaryFolder.getRoot().getAbsolutePath(),
364+
"-XepOpt:NullAway:AnnotatedPackages=com.uber",
365+
"-XepOpt:NullAway:JarInferEnabled=true"))
366+
.addSourceLines(
367+
"Test.java",
368+
"package com.uber;",
369+
"import org.jspecify.annotations.Nullable;",
370+
"import com.uber.nullaway.jdkannotations.ParameterAnnotation;",
371+
"import java.util.List;",
372+
"class Test {",
373+
" void testCall() {",
374+
" ParameterAnnotation.nullableTypeParam(1, null).toString();",
375+
" ParameterAnnotation.nullableTypeParam(1, \"string\").toString();",
376+
" // BUG: Diagnostic contains: passing @Nullable parameter 'null' where @NonNull is required",
377+
" ParameterAnnotation.nullableTypeParam(null, \"string\");",
378+
" ParameterAnnotation.nonNullTypeParam(1);",
379+
" // BUG: Diagnostic contains: passing @Nullable parameter 'null' where @NonNull is required",
380+
" ParameterAnnotation.nonNullTypeParam(null);",
381+
" }",
382+
"}")
383+
.doTest();
384+
}
356385
}

jdk-annotations/test-annotated/src/main/java/com/uber/nullaway/jdkannotations/ParameterAnnotation.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,4 +53,10 @@ public static void takesNullGenericArray(Generic<String> @Nullable [] objects) {
5353
public static void takesNonNullGenericArray(Generic<String>[] objects) {
5454
System.out.println(objects);
5555
}
56+
57+
public static <K, T extends @Nullable String> T nullableTypeParam(K k, @Nullable T t) {
58+
return t;
59+
}
60+
61+
public static <T> void nonNullTypeParam(T t) {}
5662
}

jdk-annotations/test-unannotated/src/main/java/com/uber/nullaway/jdkannotations/ParameterAnnotation.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,4 +47,10 @@ public static void takesNullGenericArray(Generic<String>[] objects) {
4747
public static void takesNonNullGenericArray(Generic<String>[] objects) {
4848
System.out.println(objects);
4949
}
50+
51+
public static <K, T extends String> T nullableTypeParam(K k, T t) {
52+
return t;
53+
}
54+
55+
public static <T> void nonNullTypeParam(T t) {}
5056
}

0 commit comments

Comments
 (0)