FIR: add new problematic tests

This commit is contained in:
Mikhail Glukhikh
2019-10-29 17:36:39 +03:00
parent 544b402d06
commit 83cd7cf516
9 changed files with 128 additions and 0 deletions
@@ -0,0 +1,15 @@
// FILE: JavaClass.java
public class JavaClass {
protected String field;
public String getField() {
return field;
}
}
// FILE: test.kt
fun test(jc: JavaClass) {
jc.field
}
@@ -0,0 +1,4 @@
FILE: test.kt
public final fun test(jc: R|JavaClass|): R|kotlin/Unit| {
R|<local>/jc|.<Ambiguity: field, [/JavaClass.field, /JavaClass.field]>#
}
@@ -0,0 +1,13 @@
// FILE: JavaClass.java
public class JavaClass<T> {
protected final T myHost;
}
// FILE: Derived.kt
public class Derived : JavaClass<String>() {
fun test() {
myHost.length
}
}
@@ -0,0 +1,11 @@
FILE: Derived.kt
public final class Derived : R|JavaClass<kotlin/String>| {
public constructor(): R|Derived| {
super<R|JavaClass<kotlin/String>|>()
}
public final fun test(): R|kotlin/Unit| {
this@R|/JavaClass|.R|/JavaClass.myHost|.<Unresolved name: length>#
}
}
@@ -0,0 +1,26 @@
// FULL_JDK
// FILE: Logger.java
public class Logger {
private static Logger me = new Logger();
public static Logger getInstance(String s) {
return me;
}
public static Logger getInstance(Class c) {
return me;
}
}
// FILE: test.kt
fun test() {
val logger = Logger.getInstance("test")
}
class MyTest {
private val klass = this::class.java
private val logger = Logger.getInstance(klass)
}
@@ -0,0 +1,16 @@
FILE: test.kt
public final fun test(): R|kotlin/Unit| {
lval logger: R|ft<Logger, Logger?>!| = Q|Logger|.R|/Logger.getInstance|(String(test))
}
public final class MyTest : R|kotlin/Any| {
public constructor(): R|MyTest| {
super<R|kotlin/Any|>()
}
private final val klass: R|java/lang/Class<MyTest>| = <getClass>(this@R|/MyTest|).R|kotlin/jvm/java|
private get(): R|java/lang/Class<MyTest>|
private final val logger: <ERROR TYPE REF: Inapplicable(INAPPLICABLE): [/Logger.getInstance, /Logger.getInstance]> = Q|Logger|.<Inapplicable(INAPPLICABLE): [/Logger.getInstance, /Logger.getInstance]>#(this@R|/MyTest|.R|/MyTest.klass|)
private get(): <ERROR TYPE REF: Inapplicable(INAPPLICABLE): [/Logger.getInstance, /Logger.getInstance]>
}
@@ -0,0 +1,13 @@
// FILE: JavaClass.java
public class JavaClass {
public static void foo(ArrayList list) {}
}
// FILE: test.kt
class Some
fun test(list: ArrayList<Some>) {
JavaClass.foo(list)
}
@@ -0,0 +1,10 @@
FILE: test.kt
public final class Some : R|kotlin/Any| {
public constructor(): R|Some| {
super<R|kotlin/Any|>()
}
}
public final fun test(list: R|kotlin/collections/ArrayList<Some>|): R|kotlin/Unit| {
Q|JavaClass|.R|/JavaClass.foo|(R|<local>/list|)
}
@@ -236,6 +236,16 @@ public class FirDiagnosticsTestGenerated extends AbstractFirDiagnosticsTest {
runTest("compiler/fir/resolve/testData/diagnostics/j+k/complexFlexibleInference.kt");
}
@TestMetadata("FieldAndGetter.kt")
public void testFieldAndGetter() throws Exception {
runTest("compiler/fir/resolve/testData/diagnostics/j+k/FieldAndGetter.kt");
}
@TestMetadata("FieldSubstitution.kt")
public void testFieldSubstitution() throws Exception {
runTest("compiler/fir/resolve/testData/diagnostics/j+k/FieldSubstitution.kt");
}
@TestMetadata("FunctionTypeInJava.kt")
public void testFunctionTypeInJava() throws Exception {
runTest("compiler/fir/resolve/testData/diagnostics/j+k/FunctionTypeInJava.kt");
@@ -276,6 +286,11 @@ public class FirDiagnosticsTestGenerated extends AbstractFirDiagnosticsTest {
runTest("compiler/fir/resolve/testData/diagnostics/j+k/KotlinClassParameterGeneric.kt");
}
@TestMetadata("LoggerInstance.kt")
public void testLoggerInstance() throws Exception {
runTest("compiler/fir/resolve/testData/diagnostics/j+k/LoggerInstance.kt");
}
@TestMetadata("MyException.kt")
public void testMyException() throws Exception {
runTest("compiler/fir/resolve/testData/diagnostics/j+k/MyException.kt");
@@ -295,6 +310,11 @@ public class FirDiagnosticsTestGenerated extends AbstractFirDiagnosticsTest {
public void testOuterInnerClasses() throws Exception {
runTest("compiler/fir/resolve/testData/diagnostics/j+k/outerInnerClasses.kt");
}
@TestMetadata("RawType.kt")
public void testRawType() throws Exception {
runTest("compiler/fir/resolve/testData/diagnostics/j+k/RawType.kt");
}
}
@TestMetadata("compiler/fir/resolve/testData/diagnostics/samConstructors")