Java to Kotlin converter: correct nullability in signatures of overrides

#KT-5269 Fixed
This commit is contained in:
Valentin Kipyatkov
2014-06-20 19:26:39 +04:00
parent 2188af2bf9
commit 5ac762034a
16 changed files with 153 additions and 25 deletions
@@ -0,0 +1,4 @@
//file
class C extends javaApi.Derived {
public String foo(String s) { return s; }
}
@@ -0,0 +1,5 @@
class C() : javaApi.Derived() {
override fun foo(s: String?): String? {
return s
}
}
@@ -0,0 +1,8 @@
//file
class A extends B {
public void foo(String s) {}
}
class B extends A {
public void foo(String s) {}
}
@@ -0,0 +1,9 @@
class A() : B() {
public fun foo(s: String) {
}
}
class B() : A() {
public fun foo(s: String) {
}
}
@@ -0,0 +1,26 @@
//file
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
class Base {
@Nullable
public String foo(@Nullable String s) { return ""; }
public String bar(String s) {
return s != null ? s + 1 : null;
}
public String zoo(Object o){ return ""; }
}
interface I {
@Nullable String zoo(@Nullable Object o);
}
class C extends Base implements I {
public String foo(String s) { return ""; }
public String bar(String s) { return ""; }
public String zoo(Object o) { return ""; }
}
@@ -0,0 +1,31 @@
class Base() {
public fun foo(s: String?): String? {
return ""
}
public fun bar(s: String?): String? {
return if (s != null) s + 1 else null
}
public fun zoo(o: Any): String {
return ""
}
}
trait I {
public fun zoo(o: Any?): String?
}
class C() : Base(), I {
override fun foo(s: String?): String? {
return ""
}
override fun bar(s: String?): String? {
return ""
}
override fun zoo(o: Any?): String? {
return ""
}
}