From 0c47d426592c07b2dffcbfdcac5b4eee732ae291 Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Wed, 2 Sep 2020 13:24:49 +0300 Subject: [PATCH] FIR IDE: add failing multiModuleLazyResolve test --- .../dependency/a/KtDeclaration.java | 5 +++++ .../dependency/a/KtElement.kt | 4 ++++ .../javaExtendsKotlinExtendsJava/dependency/a/KtFile.kt | 3 +++ .../dependency/a/KtPureElement.java | 6 ++++++ .../javaExtendsKotlinExtendsJava/expected.txt | 5 +++++ .../javaExtendsKotlinExtendsJava/main/main.kt | 4 ++++ .../javaExtendsKotlinExtendsJava/structure.json | 8 ++++++++ .../level/api/AbstractFirMultiModuleLazyResolveTest.kt | 4 ++-- .../level/api/FirMultiModuleLazyResolveTestGenerated.java | 5 +++++ 9 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 idea/idea-frontend-fir/idea-fir-low-level-api/testdata/multiModuleLazyResolve/javaExtendsKotlinExtendsJava/dependency/a/KtDeclaration.java create mode 100644 idea/idea-frontend-fir/idea-fir-low-level-api/testdata/multiModuleLazyResolve/javaExtendsKotlinExtendsJava/dependency/a/KtElement.kt create mode 100644 idea/idea-frontend-fir/idea-fir-low-level-api/testdata/multiModuleLazyResolve/javaExtendsKotlinExtendsJava/dependency/a/KtFile.kt create mode 100644 idea/idea-frontend-fir/idea-fir-low-level-api/testdata/multiModuleLazyResolve/javaExtendsKotlinExtendsJava/dependency/a/KtPureElement.java create mode 100644 idea/idea-frontend-fir/idea-fir-low-level-api/testdata/multiModuleLazyResolve/javaExtendsKotlinExtendsJava/expected.txt create mode 100644 idea/idea-frontend-fir/idea-fir-low-level-api/testdata/multiModuleLazyResolve/javaExtendsKotlinExtendsJava/main/main.kt create mode 100644 idea/idea-frontend-fir/idea-fir-low-level-api/testdata/multiModuleLazyResolve/javaExtendsKotlinExtendsJava/structure.json diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/multiModuleLazyResolve/javaExtendsKotlinExtendsJava/dependency/a/KtDeclaration.java b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/multiModuleLazyResolve/javaExtendsKotlinExtendsJava/dependency/a/KtDeclaration.java new file mode 100644 index 00000000000..568153beb89 --- /dev/null +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/multiModuleLazyResolve/javaExtendsKotlinExtendsJava/dependency/a/KtDeclaration.java @@ -0,0 +1,5 @@ +package a; + +public interface KtDeclaration extends KtElement { + +} diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/multiModuleLazyResolve/javaExtendsKotlinExtendsJava/dependency/a/KtElement.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/multiModuleLazyResolve/javaExtendsKotlinExtendsJava/dependency/a/KtElement.kt new file mode 100644 index 00000000000..9f75df65000 --- /dev/null +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/multiModuleLazyResolve/javaExtendsKotlinExtendsJava/dependency/a/KtElement.kt @@ -0,0 +1,4 @@ +package a + +interface KtElement : KtPureElement { +} \ No newline at end of file diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/multiModuleLazyResolve/javaExtendsKotlinExtendsJava/dependency/a/KtFile.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/multiModuleLazyResolve/javaExtendsKotlinExtendsJava/dependency/a/KtFile.kt new file mode 100644 index 00000000000..f7443d37491 --- /dev/null +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/multiModuleLazyResolve/javaExtendsKotlinExtendsJava/dependency/a/KtFile.kt @@ -0,0 +1,3 @@ +package a + +open class KtFile \ No newline at end of file diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/multiModuleLazyResolve/javaExtendsKotlinExtendsJava/dependency/a/KtPureElement.java b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/multiModuleLazyResolve/javaExtendsKotlinExtendsJava/dependency/a/KtPureElement.java new file mode 100644 index 00000000000..546330c7132 --- /dev/null +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/multiModuleLazyResolve/javaExtendsKotlinExtendsJava/dependency/a/KtPureElement.java @@ -0,0 +1,6 @@ +package a; + +public interface KtPureElement { + KtFile getContainingKtFile(); +} + diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/multiModuleLazyResolve/javaExtendsKotlinExtendsJava/expected.txt b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/multiModuleLazyResolve/javaExtendsKotlinExtendsJava/expected.txt new file mode 100644 index 00000000000..3ab22cc7ee6 --- /dev/null +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/multiModuleLazyResolve/javaExtendsKotlinExtendsJava/expected.txt @@ -0,0 +1,5 @@ +FILE: main.kt + public final val R|a/KtElement|.fqNameWithoutCompanions: R|a/KtFile| + public get(): R|a/KtFile| { + ^ this@R|/fqNameWithoutCompanions|.R|a/KtPureElement.containingKtFile| + } diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/multiModuleLazyResolve/javaExtendsKotlinExtendsJava/main/main.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/multiModuleLazyResolve/javaExtendsKotlinExtendsJava/main/main.kt new file mode 100644 index 00000000000..b16d1441330 --- /dev/null +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/multiModuleLazyResolve/javaExtendsKotlinExtendsJava/main/main.kt @@ -0,0 +1,4 @@ +import a.* + +val KtDeclaration.fqNameWithoutCompanions: KtFile + get() = containingKtFile \ No newline at end of file diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/multiModuleLazyResolve/javaExtendsKotlinExtendsJava/structure.json b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/multiModuleLazyResolve/javaExtendsKotlinExtendsJava/structure.json new file mode 100644 index 00000000000..3eb62dde3ec --- /dev/null +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/testdata/multiModuleLazyResolve/javaExtendsKotlinExtendsJava/structure.json @@ -0,0 +1,8 @@ +{ + "modules" : [ + { "name": "main", "dependsOn": ["dependency"] }, + { "name": "dependency" } + ], + "fileToResolve": { "module": "main", "file": "main.kt" }, + "fails": true +} \ No newline at end of file diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/AbstractFirMultiModuleLazyResolveTest.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/AbstractFirMultiModuleLazyResolveTest.kt index 89b19e63a88..9ad5cabe207 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/AbstractFirMultiModuleLazyResolveTest.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/AbstractFirMultiModuleLazyResolveTest.kt @@ -46,12 +46,12 @@ abstract class AbstractFirMultiModuleLazyResolveTest : AbstractMultiModuleTest() try { val fir = LowLevelFirApiFacade.getOrBuildFirFor(ktFileToAnalyse, resolveState, FirResolvePhase.BODY_RESOLVE) KotlinTestUtils.assertEqualsToFile(File("$path/expected.txt"), fir.render()) - } catch (e: Exception) { + } catch (e: Throwable) { if (!fails) throw e return } if (fails) { - throw AssertionError("Looks like test is passing, please remove // FAILS form the file") + throw AssertionError("Looks like test is passing, please remove `\"fails\": true` from structure.json") } } } diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/FirMultiModuleLazyResolveTestGenerated.java b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/FirMultiModuleLazyResolveTestGenerated.java index b523f4fd71b..f5bf00ed14b 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/FirMultiModuleLazyResolveTestGenerated.java +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/FirMultiModuleLazyResolveTestGenerated.java @@ -28,6 +28,11 @@ public class FirMultiModuleLazyResolveTestGenerated extends AbstractFirMultiModu KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/multiModuleLazyResolve"), Pattern.compile("^([^\\.]+)$"), null, false); } + @TestMetadata("javaExtendsKotlinExtendsJava") + public void testJavaExtendsKotlinExtendsJava() throws Exception { + runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/multiModuleLazyResolve/javaExtendsKotlinExtendsJava/"); + } + @TestMetadata("whenWithHeiarchy") public void testWhenWithHeiarchy() throws Exception { runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/multiModuleLazyResolve/whenWithHeiarchy/");