FIR: Do not mark not found classes' based types from Java as error

The same happens in FE1.0
This commit is contained in:
Denis.Zharkov
2021-06-23 14:21:51 +03:00
committed by TeamCityServer
parent 201dded237
commit 4892ad42b9
8 changed files with 80 additions and 4 deletions
@@ -0,0 +1,42 @@
// TARGET_BACKEND: JVM
// MODULE: old
// FILE: test2/Row.java
package test2;
public interface Row {
String res();
}
// MODULE: new(old)
// FILE: test1/Row.java
package test1;
public interface Row {
String res();
}
// FILE: JavaClass.java
public class JavaClass {
public static test1.Row foo() {
return new test1.Row() {
@Override
public String res() {
return "OK";
}
};
}
public static String bar(test1.Row y) { return y.res(); }
public static String bar(test2.Row y) { return y.res(); }
}
// MODULE: main(new)
// FILE: main.kt
fun box(): String {
val r = JavaClass.foo()
return JavaClass.bar(r)
}
@@ -75,5 +75,5 @@ fun test() {
}
// TODO: FIR
// {AbstractAssert<*, out Any!>! & EnumerableAssert<*, {Comparable<*> & java.io.Serializable!}>!} with unfolded flexible nullability
<!DEBUG_INFO_EXPRESSION_TYPE("AbstractAssert<*, out ERROR CLASS: CST(ERROR CLASS: Unexpected classifier: null, kotlin/String..ERROR CLASS: CST(ERROR CLASS: Unexpected classifier: null, kotlin/String?!> & EnumerableAssert<*, out kotlin.Comparable<kotlin.String & kotlin.Char> & java.io.Serializable..kotlin.Comparable<kotlin.String & kotlin.Char>? & java.io.Serializable?>..AbstractAssert<*, out ERROR CLASS: CST(ERROR CLASS: Unexpected classifier: null, kotlin/String..ERROR CLASS: CST(ERROR CLASS: Unexpected classifier: null, kotlin/String?!>? & EnumerableAssert<*, out kotlin.Comparable<kotlin.String & kotlin.Char> & java.io.Serializable..kotlin.Comparable<kotlin.String & kotlin.Char>? & java.io.Serializable?>?")!>assertion<!>
<!DEBUG_INFO_EXPRESSION_TYPE("AbstractAssert<*, out kotlin.Any..kotlin.Any?!> & EnumerableAssert<*, out kotlin.Comparable<kotlin.String & kotlin.Char> & java.io.Serializable..kotlin.Comparable<kotlin.String & kotlin.Char>? & java.io.Serializable?>..AbstractAssert<*, out kotlin.Any..kotlin.Any?!>? & EnumerableAssert<*, out kotlin.Comparable<kotlin.String & kotlin.Char> & java.io.Serializable..kotlin.Comparable<kotlin.String & kotlin.Char>? & java.io.Serializable?>?")!>assertion<!>
}
@@ -47,7 +47,7 @@ fun main() {
a.baz(listOf())
a.manyParams(null)
a.manyParams(any<kotlin.jvm.functions.FunctionN<Unit>>())
a.<!NONE_APPLICABLE!>manyParams<!>(any<kotlin.jvm.functions.FunctionN<Unit>>())
// Potentially, this would have better to forbid calling manyParams, too.
// But it might be complicated because we need to match that it is an override