diff --git a/compiler/fir/resolve/testData/diagnostics/j+k/FieldAndGetter.kt b/compiler/fir/resolve/testData/diagnostics/j+k/FieldAndGetter.kt new file mode 100644 index 00000000000..8120914c4cf --- /dev/null +++ b/compiler/fir/resolve/testData/diagnostics/j+k/FieldAndGetter.kt @@ -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 +} \ No newline at end of file diff --git a/compiler/fir/resolve/testData/diagnostics/j+k/FieldAndGetter.txt b/compiler/fir/resolve/testData/diagnostics/j+k/FieldAndGetter.txt new file mode 100644 index 00000000000..711f4dbfe3d --- /dev/null +++ b/compiler/fir/resolve/testData/diagnostics/j+k/FieldAndGetter.txt @@ -0,0 +1,4 @@ +FILE: test.kt + public final fun test(jc: R|JavaClass|): R|kotlin/Unit| { + R|/jc|.# + } diff --git a/compiler/fir/resolve/testData/diagnostics/j+k/FieldSubstitution.kt b/compiler/fir/resolve/testData/diagnostics/j+k/FieldSubstitution.kt new file mode 100644 index 00000000000..31da934f468 --- /dev/null +++ b/compiler/fir/resolve/testData/diagnostics/j+k/FieldSubstitution.kt @@ -0,0 +1,13 @@ +// FILE: JavaClass.java + +public class JavaClass { + protected final T myHost; +} + +// FILE: Derived.kt + +public class Derived : JavaClass() { + fun test() { + myHost.length + } +} \ No newline at end of file diff --git a/compiler/fir/resolve/testData/diagnostics/j+k/FieldSubstitution.txt b/compiler/fir/resolve/testData/diagnostics/j+k/FieldSubstitution.txt new file mode 100644 index 00000000000..852203eaf5d --- /dev/null +++ b/compiler/fir/resolve/testData/diagnostics/j+k/FieldSubstitution.txt @@ -0,0 +1,11 @@ +FILE: Derived.kt + public final class Derived : R|JavaClass| { + public constructor(): R|Derived| { + super|>() + } + + public final fun test(): R|kotlin/Unit| { + this@R|/JavaClass|.R|/JavaClass.myHost|.# + } + + } diff --git a/compiler/fir/resolve/testData/diagnostics/j+k/LoggerInstance.kt b/compiler/fir/resolve/testData/diagnostics/j+k/LoggerInstance.kt new file mode 100644 index 00000000000..445be80bd00 --- /dev/null +++ b/compiler/fir/resolve/testData/diagnostics/j+k/LoggerInstance.kt @@ -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) +} \ No newline at end of file diff --git a/compiler/fir/resolve/testData/diagnostics/j+k/LoggerInstance.txt b/compiler/fir/resolve/testData/diagnostics/j+k/LoggerInstance.txt new file mode 100644 index 00000000000..14200ece240 --- /dev/null +++ b/compiler/fir/resolve/testData/diagnostics/j+k/LoggerInstance.txt @@ -0,0 +1,16 @@ +FILE: test.kt + public final fun test(): R|kotlin/Unit| { + lval logger: R|ft!| = Q|Logger|.R|/Logger.getInstance|(String(test)) + } + public final class MyTest : R|kotlin/Any| { + public constructor(): R|MyTest| { + super() + } + + private final val klass: R|java/lang/Class| = (this@R|/MyTest|).R|kotlin/jvm/java| + private get(): R|java/lang/Class| + + private final val logger: = Q|Logger|.#(this@R|/MyTest|.R|/MyTest.klass|) + private get(): + + } diff --git a/compiler/fir/resolve/testData/diagnostics/j+k/RawType.kt b/compiler/fir/resolve/testData/diagnostics/j+k/RawType.kt new file mode 100644 index 00000000000..a686df1df2c --- /dev/null +++ b/compiler/fir/resolve/testData/diagnostics/j+k/RawType.kt @@ -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) { + JavaClass.foo(list) +} \ No newline at end of file diff --git a/compiler/fir/resolve/testData/diagnostics/j+k/RawType.txt b/compiler/fir/resolve/testData/diagnostics/j+k/RawType.txt new file mode 100644 index 00000000000..0ba10bd5245 --- /dev/null +++ b/compiler/fir/resolve/testData/diagnostics/j+k/RawType.txt @@ -0,0 +1,10 @@ +FILE: test.kt + public final class Some : R|kotlin/Any| { + public constructor(): R|Some| { + super() + } + + } + public final fun test(list: R|kotlin/collections/ArrayList|): R|kotlin/Unit| { + Q|JavaClass|.R|/JavaClass.foo|(R|/list|) + } diff --git a/compiler/fir/resolve/tests/org/jetbrains/kotlin/fir/FirDiagnosticsTestGenerated.java b/compiler/fir/resolve/tests/org/jetbrains/kotlin/fir/FirDiagnosticsTestGenerated.java index 566e10fe55a..e83cb22b2ac 100644 --- a/compiler/fir/resolve/tests/org/jetbrains/kotlin/fir/FirDiagnosticsTestGenerated.java +++ b/compiler/fir/resolve/tests/org/jetbrains/kotlin/fir/FirDiagnosticsTestGenerated.java @@ -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")