diff --git a/compiler/fir/resolve/testData/diagnostics/j+k/MyException.kt b/compiler/fir/resolve/testData/diagnostics/j+k/MyException.kt new file mode 100644 index 00000000000..f44ba543a30 --- /dev/null +++ b/compiler/fir/resolve/testData/diagnostics/j+k/MyException.kt @@ -0,0 +1,6 @@ +// FULL_JDK +class MyException : Exception() + +fun test(e: MyException) { + e.printStackTrace() // Cannot be resolved with early J2K mapping due deriving of kotlin.Throwable instead of java.lang.Throwable +} \ No newline at end of file diff --git a/compiler/fir/resolve/testData/diagnostics/j+k/MyException.txt b/compiler/fir/resolve/testData/diagnostics/j+k/MyException.txt new file mode 100644 index 00000000000..acfde2191b0 --- /dev/null +++ b/compiler/fir/resolve/testData/diagnostics/j+k/MyException.txt @@ -0,0 +1,10 @@ +FILE: MyException.kt + public final class MyException : R|kotlin/Exception| { + public constructor(): R|MyException| { + super() + } + + } + public final fun test(e: R|MyException|): R|kotlin/Unit| { + R|/e|.R|kotlin/printStackTrace|() + } diff --git a/idea/testData/fir/multiModule/fullWithJavaPredefinedSignature/jvm/test.kt b/compiler/fir/resolve/testData/diagnostics/j+k/MyIterable.kt similarity index 55% rename from idea/testData/fir/multiModule/fullWithJavaPredefinedSignature/jvm/test.kt rename to compiler/fir/resolve/testData/diagnostics/j+k/MyIterable.kt index 2cd61a2b3c0..8e1a1ebb29f 100644 --- a/idea/testData/fir/multiModule/fullWithJavaPredefinedSignature/jvm/test.kt +++ b/compiler/fir/resolve/testData/diagnostics/j+k/MyIterable.kt @@ -1,3 +1,8 @@ +// FULL_JDK +// FILE: MyIterable.java +public interface MyIterable extends Iterable + +// FILE: test.kt interface UseIterable : MyIterable { fun test() { val it = iterator() diff --git a/compiler/fir/resolve/testData/diagnostics/j+k/MyIterable.txt b/compiler/fir/resolve/testData/diagnostics/j+k/MyIterable.txt new file mode 100644 index 00000000000..e12de89aeb2 --- /dev/null +++ b/compiler/fir/resolve/testData/diagnostics/j+k/MyIterable.txt @@ -0,0 +1,8 @@ +FILE: test.kt + public abstract interface UseIterable : R|MyIterable| { + public open fun test(): R|kotlin/Unit| { + lval it: R|kotlin/collections/MutableIterator| = this@R|kotlin/collections/MutableIterable|.R|FakeOverride|>|() + lval split: = #() + } + + } diff --git a/compiler/fir/resolve/testData/diagnostics/j+k/MyMap.kt b/compiler/fir/resolve/testData/diagnostics/j+k/MyMap.kt new file mode 100644 index 00000000000..865504946b4 --- /dev/null +++ b/compiler/fir/resolve/testData/diagnostics/j+k/MyMap.kt @@ -0,0 +1,9 @@ +// FULL_JDK +// FILE: MyMap.java + +public abstract class MyMap implements java.util.Map {} + +// FILE: test.kt +fun test(map: MyMap) { + val result = map.getOrPut("key") { "value" } // Cannot be resolved without early J2K mapping +} \ No newline at end of file diff --git a/compiler/fir/resolve/testData/diagnostics/j+k/MyMap.txt b/compiler/fir/resolve/testData/diagnostics/j+k/MyMap.txt new file mode 100644 index 00000000000..eac9909fa35 --- /dev/null +++ b/compiler/fir/resolve/testData/diagnostics/j+k/MyMap.txt @@ -0,0 +1,7 @@ +FILE: test.kt + public final fun test(map: R|MyMap|): R|kotlin/Unit| { + lval result: R|kotlin/String| = R|/map|.R|kotlin/collections/getOrPut|(String(key), = getOrPut@fun (): R|kotlin/String| { + String(value) + } + ) + } 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 ad9096be1ae..1f530edf71b 100644 --- a/compiler/fir/resolve/tests/org/jetbrains/kotlin/fir/FirDiagnosticsTestGenerated.java +++ b/compiler/fir/resolve/tests/org/jetbrains/kotlin/fir/FirDiagnosticsTestGenerated.java @@ -86,6 +86,21 @@ public class FirDiagnosticsTestGenerated extends AbstractFirDiagnosticsTest { runTest("compiler/fir/resolve/testData/diagnostics/j+k/KotlinClassParameterGeneric.kt"); } + @TestMetadata("MyException.kt") + public void testMyException() throws Exception { + runTest("compiler/fir/resolve/testData/diagnostics/j+k/MyException.kt"); + } + + @TestMetadata("MyIterable.kt") + public void testMyIterable() throws Exception { + runTest("compiler/fir/resolve/testData/diagnostics/j+k/MyIterable.kt"); + } + + @TestMetadata("MyMap.kt") + public void testMyMap() throws Exception { + runTest("compiler/fir/resolve/testData/diagnostics/j+k/MyMap.kt"); + } + @TestMetadata("outerInnerClasses.kt") public void testOuterInnerClasses() throws Exception { runTest("compiler/fir/resolve/testData/diagnostics/j+k/outerInnerClasses.kt"); diff --git a/idea/testData/fir/multiModule/fullWithJavaPredefinedSignature/extraDump.java.txt b/idea/testData/fir/multiModule/fullWithJavaPredefinedSignature/extraDump.java.txt deleted file mode 100644 index 5f2757c7421..00000000000 --- a/idea/testData/fir/multiModule/fullWithJavaPredefinedSignature/extraDump.java.txt +++ /dev/null @@ -1,2 +0,0 @@ -public abstract interface MyIterable : R|java/lang/Iterable| { -} diff --git a/idea/testData/fir/multiModule/fullWithJavaPredefinedSignature/jvm/MyIterable.java b/idea/testData/fir/multiModule/fullWithJavaPredefinedSignature/jvm/MyIterable.java deleted file mode 100644 index c12f94db797..00000000000 --- a/idea/testData/fir/multiModule/fullWithJavaPredefinedSignature/jvm/MyIterable.java +++ /dev/null @@ -1 +0,0 @@ -public interface MyIterable extends Iterable \ No newline at end of file diff --git a/idea/testData/fir/multiModule/fullWithJavaPredefinedSignature/jvm/test.txt b/idea/testData/fir/multiModule/fullWithJavaPredefinedSignature/jvm/test.txt deleted file mode 100644 index 42f768c2af1..00000000000 --- a/idea/testData/fir/multiModule/fullWithJavaPredefinedSignature/jvm/test.txt +++ /dev/null @@ -1,8 +0,0 @@ -FILE: test.kt - public abstract interface UseIterable : R|MyIterable| { - public open fun test(): R|kotlin/Unit| { - lval it: R|ft>, kotlin/collections/Iterator>?>|! = R|FakeOverride>, kotlin/collections/Iterator>?>|!>|() - lval split: R|ft>, java/util/Spliterator>>| = R|FakeOverride>, java/util/Spliterator>>|>|() - } - - } diff --git a/idea/tests/org/jetbrains/kotlin/idea/fir/FirMultiModuleResolveTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/fir/FirMultiModuleResolveTestGenerated.java index 7405981f8a0..6a248703fa0 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/fir/FirMultiModuleResolveTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/fir/FirMultiModuleResolveTestGenerated.java @@ -64,11 +64,6 @@ public class FirMultiModuleResolveTestGenerated extends AbstractFirMultiModuleRe runTest("idea/testData/fir/multiModule/fieldAccessFromDerived/"); } - @TestMetadata("fullWithJavaPredefinedSignature") - public void testFullWithJavaPredefinedSignature() throws Exception { - runTest("idea/testData/fir/multiModule/fullWithJavaPredefinedSignature/"); - } - @TestMetadata("intersectionTypesProblem") public void testIntersectionTypesProblem() throws Exception { runTest("idea/testData/fir/multiModule/intersectionTypesProblem/");