From e127ea3dadd54dda622115af8899649489f62d3e Mon Sep 17 00:00:00 2001 From: Roman Golyshev Date: Fri, 27 Nov 2020 18:08:40 +0300 Subject: [PATCH] FIR IDE: Add tests for resolving from nested types references Some of those tests are failing in the FIR IDE --- .../FirReferenceResolveTestGenerated.java | 58 +++++++++++++++++++ .../ResolveCompanionInCompanionType.kt | 11 ++++ .../nestedTypes/ResolveEndOfPackageInType.kt | 11 ++++ .../ResolveMiddleOfPackageInType.kt | 11 ++++ .../ResolveStartOfPackageInType.kt | 11 ++++ .../nestedTypes/ResolveTypeInTheEndOfType.kt | 11 ++++ .../ResolveTypeInTheMiddleOfCompanionType.kt | 11 ++++ .../ResolveTypeInTheMiddleOfType.kt | 11 ++++ .../ResolveTypeInTheStartOfCompanionType.kt | 11 ++++ .../ResolveTypeInTheStartOfType.kt | 11 ++++ .../ReferenceResolveTestGenerated.java | 58 +++++++++++++++++++ 11 files changed, 215 insertions(+) create mode 100644 idea/testData/resolve/references/nestedTypes/ResolveCompanionInCompanionType.kt create mode 100644 idea/testData/resolve/references/nestedTypes/ResolveEndOfPackageInType.kt create mode 100644 idea/testData/resolve/references/nestedTypes/ResolveMiddleOfPackageInType.kt create mode 100644 idea/testData/resolve/references/nestedTypes/ResolveStartOfPackageInType.kt create mode 100644 idea/testData/resolve/references/nestedTypes/ResolveTypeInTheEndOfType.kt create mode 100644 idea/testData/resolve/references/nestedTypes/ResolveTypeInTheMiddleOfCompanionType.kt create mode 100644 idea/testData/resolve/references/nestedTypes/ResolveTypeInTheMiddleOfType.kt create mode 100644 idea/testData/resolve/references/nestedTypes/ResolveTypeInTheStartOfCompanionType.kt create mode 100644 idea/testData/resolve/references/nestedTypes/ResolveTypeInTheStartOfType.kt diff --git a/idea/idea-fir/tests/org/jetbrains/kotlin/idea/resolve/FirReferenceResolveTestGenerated.java b/idea/idea-fir/tests/org/jetbrains/kotlin/idea/resolve/FirReferenceResolveTestGenerated.java index c7b1ae98e91..0a7e14a1134 100644 --- a/idea/idea-fir/tests/org/jetbrains/kotlin/idea/resolve/FirReferenceResolveTestGenerated.java +++ b/idea/idea-fir/tests/org/jetbrains/kotlin/idea/resolve/FirReferenceResolveTestGenerated.java @@ -707,4 +707,62 @@ public class FirReferenceResolveTestGenerated extends AbstractFirReferenceResolv runTest("idea/testData/resolve/references/invoke/oneParamRPar.kt"); } } + + @TestMetadata("idea/testData/resolve/references/nestedTypes") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class NestedTypes extends AbstractFirReferenceResolveTest { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, this, testDataFilePath); + } + + public void testAllFilesPresentInNestedTypes() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/testData/resolve/references/nestedTypes"), Pattern.compile("^([^.]+)\\.kt$"), null, true); + } + + @TestMetadata("ResolveCompanionInCompanionType.kt") + public void testResolveCompanionInCompanionType() throws Exception { + runTest("idea/testData/resolve/references/nestedTypes/ResolveCompanionInCompanionType.kt"); + } + + @TestMetadata("ResolveEndOfPackageInType.kt") + public void testResolveEndOfPackageInType() throws Exception { + runTest("idea/testData/resolve/references/nestedTypes/ResolveEndOfPackageInType.kt"); + } + + @TestMetadata("ResolveMiddleOfPackageInType.kt") + public void testResolveMiddleOfPackageInType() throws Exception { + runTest("idea/testData/resolve/references/nestedTypes/ResolveMiddleOfPackageInType.kt"); + } + + @TestMetadata("ResolveStartOfPackageInType.kt") + public void testResolveStartOfPackageInType() throws Exception { + runTest("idea/testData/resolve/references/nestedTypes/ResolveStartOfPackageInType.kt"); + } + + @TestMetadata("ResolveTypeInTheEndOfType.kt") + public void testResolveTypeInTheEndOfType() throws Exception { + runTest("idea/testData/resolve/references/nestedTypes/ResolveTypeInTheEndOfType.kt"); + } + + @TestMetadata("ResolveTypeInTheMiddleOfCompanionType.kt") + public void testResolveTypeInTheMiddleOfCompanionType() throws Exception { + runTest("idea/testData/resolve/references/nestedTypes/ResolveTypeInTheMiddleOfCompanionType.kt"); + } + + @TestMetadata("ResolveTypeInTheMiddleOfType.kt") + public void testResolveTypeInTheMiddleOfType() throws Exception { + runTest("idea/testData/resolve/references/nestedTypes/ResolveTypeInTheMiddleOfType.kt"); + } + + @TestMetadata("ResolveTypeInTheStartOfCompanionType.kt") + public void testResolveTypeInTheStartOfCompanionType() throws Exception { + runTest("idea/testData/resolve/references/nestedTypes/ResolveTypeInTheStartOfCompanionType.kt"); + } + + @TestMetadata("ResolveTypeInTheStartOfType.kt") + public void testResolveTypeInTheStartOfType() throws Exception { + runTest("idea/testData/resolve/references/nestedTypes/ResolveTypeInTheStartOfType.kt"); + } + } } diff --git a/idea/testData/resolve/references/nestedTypes/ResolveCompanionInCompanionType.kt b/idea/testData/resolve/references/nestedTypes/ResolveCompanionInCompanionType.kt new file mode 100644 index 00000000000..1ecc8f1bb2c --- /dev/null +++ b/idea/testData/resolve/references/nestedTypes/ResolveCompanionInCompanionType.kt @@ -0,0 +1,11 @@ +package foo.bar.baz + +class AA { + class BB { + companion object + } +} + +fun test(param: foo.bar.baz.AA.BB.Companion) {} + +// REF: companion object of (in foo.bar.baz.AA).BB diff --git a/idea/testData/resolve/references/nestedTypes/ResolveEndOfPackageInType.kt b/idea/testData/resolve/references/nestedTypes/ResolveEndOfPackageInType.kt new file mode 100644 index 00000000000..25e22c34f2e --- /dev/null +++ b/idea/testData/resolve/references/nestedTypes/ResolveEndOfPackageInType.kt @@ -0,0 +1,11 @@ +package foo.bar.baz + +class AA { + class BB { + class CC + } +} + +fun test(param: foo.bar.baz.AA.BB.CC) {} + +// REF: baz diff --git a/idea/testData/resolve/references/nestedTypes/ResolveMiddleOfPackageInType.kt b/idea/testData/resolve/references/nestedTypes/ResolveMiddleOfPackageInType.kt new file mode 100644 index 00000000000..9edddf26708 --- /dev/null +++ b/idea/testData/resolve/references/nestedTypes/ResolveMiddleOfPackageInType.kt @@ -0,0 +1,11 @@ +package foo.bar.baz + +class AA { + class BB { + class CC + } +} + +fun test(param: foo.bar.baz.AA.BB.CC) {} + +// REF: bar diff --git a/idea/testData/resolve/references/nestedTypes/ResolveStartOfPackageInType.kt b/idea/testData/resolve/references/nestedTypes/ResolveStartOfPackageInType.kt new file mode 100644 index 00000000000..ae9e8f72537 --- /dev/null +++ b/idea/testData/resolve/references/nestedTypes/ResolveStartOfPackageInType.kt @@ -0,0 +1,11 @@ +package foo.bar.baz + +class AA { + class BB { + class CC + } +} + +fun test(param: foo.bar.baz.AA.BB.CC) {} + +// REF: foo diff --git a/idea/testData/resolve/references/nestedTypes/ResolveTypeInTheEndOfType.kt b/idea/testData/resolve/references/nestedTypes/ResolveTypeInTheEndOfType.kt new file mode 100644 index 00000000000..bea01a7ff4f --- /dev/null +++ b/idea/testData/resolve/references/nestedTypes/ResolveTypeInTheEndOfType.kt @@ -0,0 +1,11 @@ +package foo.bar.baz + +class AA { + class BB { + class CC + } +} + +fun test(param: foo.bar.baz.AA.BB.CC) {} + +// REF: (in foo.bar.baz.AA.BB).CC diff --git a/idea/testData/resolve/references/nestedTypes/ResolveTypeInTheMiddleOfCompanionType.kt b/idea/testData/resolve/references/nestedTypes/ResolveTypeInTheMiddleOfCompanionType.kt new file mode 100644 index 00000000000..949027b0929 --- /dev/null +++ b/idea/testData/resolve/references/nestedTypes/ResolveTypeInTheMiddleOfCompanionType.kt @@ -0,0 +1,11 @@ +package foo.bar.baz + +class AA { + class BB { + companion object + } +} + +fun test(param: foo.bar.baz.AA.BB.Companion) {} + +// REF: (in foo.bar.baz.AA).BB diff --git a/idea/testData/resolve/references/nestedTypes/ResolveTypeInTheMiddleOfType.kt b/idea/testData/resolve/references/nestedTypes/ResolveTypeInTheMiddleOfType.kt new file mode 100644 index 00000000000..7ca35182527 --- /dev/null +++ b/idea/testData/resolve/references/nestedTypes/ResolveTypeInTheMiddleOfType.kt @@ -0,0 +1,11 @@ +package foo.bar.baz + +class AA { + class BB { + class CC + } +} + +fun test(param: foo.bar.baz.AA.BB.CC) {} + +// REF: (in foo.bar.baz.AA).BB diff --git a/idea/testData/resolve/references/nestedTypes/ResolveTypeInTheStartOfCompanionType.kt b/idea/testData/resolve/references/nestedTypes/ResolveTypeInTheStartOfCompanionType.kt new file mode 100644 index 00000000000..3880d38de40 --- /dev/null +++ b/idea/testData/resolve/references/nestedTypes/ResolveTypeInTheStartOfCompanionType.kt @@ -0,0 +1,11 @@ +package foo.bar.baz + +class AA { + class BB { + companion object + } +} + +fun test(param: foo.bar.baz.AA.BB.Companion) {} + +// REF: (foo.bar.baz).AA diff --git a/idea/testData/resolve/references/nestedTypes/ResolveTypeInTheStartOfType.kt b/idea/testData/resolve/references/nestedTypes/ResolveTypeInTheStartOfType.kt new file mode 100644 index 00000000000..893a7422c6f --- /dev/null +++ b/idea/testData/resolve/references/nestedTypes/ResolveTypeInTheStartOfType.kt @@ -0,0 +1,11 @@ +package foo.bar.baz + +class AA { + class BB { + class CC + } +} + +fun test(param: foo.bar.baz.AA.BB.CC) {} + +// REF: (foo.bar.baz).AA diff --git a/idea/tests/org/jetbrains/kotlin/idea/resolve/ReferenceResolveTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/resolve/ReferenceResolveTestGenerated.java index d927be17c0d..e4aa13781e5 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/resolve/ReferenceResolveTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/resolve/ReferenceResolveTestGenerated.java @@ -707,4 +707,62 @@ public class ReferenceResolveTestGenerated extends AbstractReferenceResolveTest runTest("idea/testData/resolve/references/invoke/oneParamRPar.kt"); } } + + @TestMetadata("idea/testData/resolve/references/nestedTypes") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class NestedTypes extends AbstractReferenceResolveTest { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, this, testDataFilePath); + } + + public void testAllFilesPresentInNestedTypes() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/testData/resolve/references/nestedTypes"), Pattern.compile("^([^.]+)\\.kt$"), null, true); + } + + @TestMetadata("ResolveCompanionInCompanionType.kt") + public void testResolveCompanionInCompanionType() throws Exception { + runTest("idea/testData/resolve/references/nestedTypes/ResolveCompanionInCompanionType.kt"); + } + + @TestMetadata("ResolveEndOfPackageInType.kt") + public void testResolveEndOfPackageInType() throws Exception { + runTest("idea/testData/resolve/references/nestedTypes/ResolveEndOfPackageInType.kt"); + } + + @TestMetadata("ResolveMiddleOfPackageInType.kt") + public void testResolveMiddleOfPackageInType() throws Exception { + runTest("idea/testData/resolve/references/nestedTypes/ResolveMiddleOfPackageInType.kt"); + } + + @TestMetadata("ResolveStartOfPackageInType.kt") + public void testResolveStartOfPackageInType() throws Exception { + runTest("idea/testData/resolve/references/nestedTypes/ResolveStartOfPackageInType.kt"); + } + + @TestMetadata("ResolveTypeInTheEndOfType.kt") + public void testResolveTypeInTheEndOfType() throws Exception { + runTest("idea/testData/resolve/references/nestedTypes/ResolveTypeInTheEndOfType.kt"); + } + + @TestMetadata("ResolveTypeInTheMiddleOfCompanionType.kt") + public void testResolveTypeInTheMiddleOfCompanionType() throws Exception { + runTest("idea/testData/resolve/references/nestedTypes/ResolveTypeInTheMiddleOfCompanionType.kt"); + } + + @TestMetadata("ResolveTypeInTheMiddleOfType.kt") + public void testResolveTypeInTheMiddleOfType() throws Exception { + runTest("idea/testData/resolve/references/nestedTypes/ResolveTypeInTheMiddleOfType.kt"); + } + + @TestMetadata("ResolveTypeInTheStartOfCompanionType.kt") + public void testResolveTypeInTheStartOfCompanionType() throws Exception { + runTest("idea/testData/resolve/references/nestedTypes/ResolveTypeInTheStartOfCompanionType.kt"); + } + + @TestMetadata("ResolveTypeInTheStartOfType.kt") + public void testResolveTypeInTheStartOfType() throws Exception { + runTest("idea/testData/resolve/references/nestedTypes/ResolveTypeInTheStartOfType.kt"); + } + } }