Change Signature: Propagate nullability annotations to overriding methods in Java
This commit is contained in:
+27
@@ -0,0 +1,27 @@
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
class X extends A {
|
||||
@NotNull
|
||||
@Override
|
||||
String foo(int n, @NotNull String s, @Nullable Object o) {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
class Y extends X {
|
||||
@NotNull
|
||||
@Override
|
||||
String foo(int n, @NotNull String s, @Nullable Object o) {
|
||||
return super.foo(n, s, o);
|
||||
}
|
||||
}
|
||||
|
||||
class Test {
|
||||
void test() {
|
||||
new A().foo(1, "abc", "def");
|
||||
new B().foo(2, "abc", "def");
|
||||
new X().foo(3, "abc", "def");
|
||||
new Y().foo(4, "abc", "def");
|
||||
}
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
open class A {
|
||||
open fun foo(n: Int, s: String, o: Any?): String = ""
|
||||
}
|
||||
|
||||
class B: A() {
|
||||
override fun foo(n: Int, s: String, o: Any?): String = ""
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
class X extends A {
|
||||
@Override
|
||||
String foo(int n, String s) {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
class Y extends X {
|
||||
@Override
|
||||
String foo(int n, String s) {
|
||||
return super.foo(n, s);
|
||||
}
|
||||
}
|
||||
|
||||
class Test {
|
||||
void test() {
|
||||
new A().foo(1, "abc");
|
||||
new B().foo(2, "abc");
|
||||
new X().foo(3, "abc");
|
||||
new Y().foo(4, "abc");
|
||||
}
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
open class A {
|
||||
open fun foo(n: Int, s: String): String = ""
|
||||
}
|
||||
|
||||
class B: A() {
|
||||
override fun foo(n: Int, s: String): String = ""
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
class X extends A {
|
||||
@NotNull
|
||||
@Override
|
||||
String foo(int n, @Nullable String s, @NotNull Object o) {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
class Y extends A {
|
||||
@Nullable
|
||||
@Override
|
||||
String foo(int n, @Nullable String s, @NotNull Object o) {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
class Z extends A {
|
||||
@Nullable
|
||||
@Override
|
||||
String foo(int n, @Nullable String s, @NotNull Object o) {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
open class A {
|
||||
open fun foo(n: Int, s: String?, o: Any): String? = ""
|
||||
}
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
class X extends A {
|
||||
@NotNull
|
||||
@Override
|
||||
String foo(int n, @NotNull String s, @Nullable Object o) {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
class Y extends A {
|
||||
@Override
|
||||
String foo(int n, String s, Object o) {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
class Z extends A {
|
||||
@Nullable
|
||||
@Override
|
||||
String foo(int n, @Nullable String s, @NotNull Object o) {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
open class A {
|
||||
open fun <caret>foo(n: Int, s: String, o: Any?): String = ""
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
class Y extends A {
|
||||
@Nullable
|
||||
@Override
|
||||
Object foo(@Nullable String n, int s, @Nullable Long o) {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
open class A {
|
||||
open fun <caret>foo(n: String?, s: Int, o: Long?): Any? = ""
|
||||
}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
class Y extends A {
|
||||
@Override
|
||||
String foo(int n, String s, Object o) {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
open class A {
|
||||
open fun <caret>foo(n: Int, s: String, o: Any?): String = ""
|
||||
}
|
||||
Reference in New Issue
Block a user