mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-10 13:17:09 +07:00
IDEA-120586 @ParametersAreNonnullByDefault support broken
This commit is contained in:
+17
@@ -0,0 +1,17 @@
|
||||
package foo;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
class C {
|
||||
@Nullable
|
||||
private String a;
|
||||
private String b;
|
||||
|
||||
public void setA(String <warning descr="Setter parameter for @Nullable field is annotated @ParametersAreNonnullByDefault">a</warning>) {
|
||||
this.a = a;
|
||||
}
|
||||
|
||||
public void setB(@Nullable String b) { // doesn't lead to a warning because b field is not a parameter
|
||||
this.b = b;
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -6,7 +6,7 @@ class B {
|
||||
public void fun(Object o) {}
|
||||
};
|
||||
new AnyFunction() {
|
||||
public void fun(Object <warning descr="Not annotated parameter overrides @NotNull parameter">o</warning>) {}
|
||||
public void fun(Object <warning descr="Not annotated parameter overrides @ParametersAreNonnullByDefault parameter">o</warning>) {}
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package foo;
|
||||
|
||||
interface A {
|
||||
void f(double a);
|
||||
void f2(Object a);
|
||||
}
|
||||
|
||||
class B implements A {
|
||||
public void f(double a) {
|
||||
}
|
||||
public void f2(Object a) {
|
||||
}
|
||||
}
|
||||
+20
-2
@@ -37,7 +37,7 @@ public class NullableStuffInspectionTest extends LightCodeInsightFixtureTestCase
|
||||
doTest();
|
||||
}
|
||||
|
||||
public void testParametersAreNonnullByDefault() {
|
||||
public void testHonorSuperParameterDefault() {
|
||||
myFixture.addClass("package javax.annotation; public @interface ParametersAreNonnullByDefault {}");
|
||||
myFixture.addClass("package javax.annotation; public @interface Nullable {}");
|
||||
myFixture.addFileToProject("foo/package-info.java", "@javax.annotation.ParametersAreNonnullByDefault package foo;");
|
||||
@@ -45,8 +45,26 @@ public class NullableStuffInspectionTest extends LightCodeInsightFixtureTestCase
|
||||
myFixture.addClass("import javax.annotation.*; package foo; public interface NullableFunction { void fun(@Nullable Object o); }");
|
||||
myFixture.addClass("package foo; public interface AnyFunction { void fun(Object o); }");
|
||||
|
||||
myInspection.REPORT_ANNOTATION_NOT_PROPAGATED_TO_OVERRIDERS = true;
|
||||
doTest();
|
||||
}
|
||||
|
||||
public void testHonorThisParameterDefault() {
|
||||
myFixture.addClass("package javax.annotation; public @interface ParametersAreNonnullByDefault {}");
|
||||
myFixture.addFileToProject("foo/package-info.java", "@javax.annotation.ParametersAreNonnullByDefault package foo;");
|
||||
|
||||
myFixture.configureFromExistingVirtualFile(myFixture.copyFileToProject(getTestName(false) + ".java", "foo/Classes.java"));
|
||||
myFixture.enableInspections(myInspection);
|
||||
myFixture.checkHighlighting(true, false, true);
|
||||
}
|
||||
|
||||
public void testHonorParameterDefaultInSetters() {
|
||||
myFixture.addClass("package javax.annotation; public @interface ParametersAreNonnullByDefault {}");
|
||||
myFixture.addClass("package javax.annotation; public @interface Nullable {}");
|
||||
myFixture.addFileToProject("foo/package-info.java", "@javax.annotation.ParametersAreNonnullByDefault package foo;");
|
||||
|
||||
myFixture.configureFromExistingVirtualFile(myFixture.copyFileToProject(getTestName(false) + ".java", "foo/Classes.java"));
|
||||
myFixture.enableInspections(myInspection);
|
||||
myFixture.checkHighlighting(true, false, true);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user