KT-1863 Wrong nullability for class derived from java classes.

#KT-1863 In progress
This commit is contained in:
Andrey Breslav
2012-04-28 23:13:41 +04:00
parent dcc2728f0a
commit 08de6d8d07
6 changed files with 116 additions and 21 deletions
@@ -0,0 +1,23 @@
// FILE: A.java
public class A {}
// FILE: X.java
import org.jetbrains.annotations.NotNull;
public class X<T> {
@NotNull T fooN() {return null;}
void barN(@NotNull T a) {}
}
// FILE: Y.java
public class Y extends X<String> {
}
// FILE: test.kt
fun main() {
Y().fooN() : Any
Y().barN(<!ERROR_COMPILE_TIME_VALUE!>null<!>);
}
@@ -0,0 +1,23 @@
// FILE: A.java
public class A {}
// FILE: X.java
import org.jetbrains.annotations.NotNull;
public class X<T> {
@NotNull T fooN() {return null;}
void barN(@NotNull T a) {}
}
// FILE: Y.java
public class Y extends X<A> {
}
// FILE: test.kt
fun main() {
Y().fooN() : Any
Y().barN(<!ERROR_COMPILE_TIME_VALUE!>null<!>);
}
@@ -0,0 +1,21 @@
// FILE: A.java
public class A {}
// FILE: X.java
public class X<T> {
T foo() {return null;}
void bar(T a) {}
}
// FILE: Y.java
public class Y extends X<String> {
}
// FILE: test.kt
fun main() {
Y().foo()<!UNSAFE_CALL!>.<!>length
Y().bar(null)
}
@@ -0,0 +1,21 @@
// FILE: A.java
public class A {}
// FILE: X.java
public class X<T> {
T foo() {return null;}
void bar(T a) {}
}
// FILE: Y.java
public class Y extends X<A> {
}
// FILE: test.kt
fun main() {
Y().foo()<!UNSAFE_CALL!>.<!>hashCode()
Y().bar(null)
}