From 2dae7ce6c1a26a73e070c66aa3db29325cf789af Mon Sep 17 00:00:00 2001 From: Roman Efremov Date: Fri, 8 Sep 2023 16:44:25 +0200 Subject: [PATCH] [LT2FIR] Fix missing "expect" modifier on members of nested classes For members of nested classes inside expect class `classWrapper.hasExpect()` would be false, because it only reflects modifiers of nested class itself and not aware of "expect" modifier inherited from the parent class. Fix is done in same way in PSI2FIR, see `PsiRawFirBuilder.Visitor.toFirProperty`. This fix now makes it possible to add test for functionality from previous commit. Review: KT-MR-12107 ^KT-61784 --- ...RootLazyBodiesCalculatorTestGenerated.java | 18 ++++++++++++++++++ ...urceLazyBodiesCalculatorTestGenerated.java | 18 ++++++++++++++++++ ...DiagnosticsWithLightTreeTestGenerated.java | 6 ++++++ ...endMPPDiagnosticsWithPsiTestGenerated.java | 6 ++++++ .../LightTreeRawFirDeclarationBuilder.kt | 8 ++++---- ...ghtTree2FirConverterTestCaseGenerated.java | 15 +++++++++++++++ ...AnnotationClassWithConstructorParameter.kt | 3 +++ ...assWithConstructorParameter.lazyBodies.txt | 11 +++++++++++ ...nnotationClassWithConstructorParameter.txt | 11 +++++++++++ .../declarations/expectNestedClassMembers.kt | 7 +++++++ .../expectNestedClassMembers.lazyBodies.txt | 12 ++++++++++++ .../declarations/expectNestedClassMembers.txt | 12 ++++++++++++ .../expectNestedEnumClassGeneratedMembers.kt | 5 +++++ ...edEnumClassGeneratedMembers.lazyBodies.txt | 19 +++++++++++++++++++ .../expectNestedEnumClassGeneratedMembers.txt | 19 +++++++++++++++++++ ...FirBuilderLazyBodiesTestCaseGenerated.java | 15 +++++++++++++++ .../RawFirBuilderTestCaseGenerated.java | 15 +++++++++++++++ ...edAnnotationClassViaActualTypealias.fir.kt | 15 +++++++++++++++ ...nestedAnnotationClassViaActualTypealias.kt | 15 +++++++++++++++ .../test/runners/DiagnosticTestGenerated.java | 6 ++++++ .../FirVisualizerForRawFirDataGenerated.java | 18 ++++++++++++++++++ .../PsiVisualizerForRawFirDataGenerated.java | 18 ++++++++++++++++++ 22 files changed, 268 insertions(+), 4 deletions(-) create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedAnnotationClassWithConstructorParameter.kt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedAnnotationClassWithConstructorParameter.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedAnnotationClassWithConstructorParameter.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedClassMembers.kt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedClassMembers.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedClassMembers.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedEnumClassGeneratedMembers.kt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedEnumClassGeneratedMembers.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedEnumClassGeneratedMembers.txt create mode 100644 compiler/testData/diagnostics/tests/multiplatform/defaultArguments/nestedAnnotationClassViaActualTypealias.fir.kt create mode 100644 compiler/testData/diagnostics/tests/multiplatform/defaultArguments/nestedAnnotationClassViaActualTypealias.kt diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirOutOfContentRootLazyBodiesCalculatorTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirOutOfContentRootLazyBodiesCalculatorTestGenerated.java index 77697728bda..179b4426c30 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirOutOfContentRootLazyBodiesCalculatorTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirOutOfContentRootLazyBodiesCalculatorTestGenerated.java @@ -153,6 +153,24 @@ public class FirOutOfContentRootLazyBodiesCalculatorTestGenerated extends Abstra runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectClassesAndFunctions.kt"); } + @Test + @TestMetadata("expectNestedAnnotationClassWithConstructorParameter.kt") + public void testExpectNestedAnnotationClassWithConstructorParameter() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedAnnotationClassWithConstructorParameter.kt"); + } + + @Test + @TestMetadata("expectNestedClassMembers.kt") + public void testExpectNestedClassMembers() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedClassMembers.kt"); + } + + @Test + @TestMetadata("expectNestedEnumClassGeneratedMembers.kt") + public void testExpectNestedEnumClassGeneratedMembers() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedEnumClassGeneratedMembers.kt"); + } + @Test @TestMetadata("external.kt") public void testExternal() throws Exception { diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirSourceLazyBodiesCalculatorTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirSourceLazyBodiesCalculatorTestGenerated.java index f99939ceddd..b4514b02c83 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirSourceLazyBodiesCalculatorTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirSourceLazyBodiesCalculatorTestGenerated.java @@ -153,6 +153,24 @@ public class FirSourceLazyBodiesCalculatorTestGenerated extends AbstractFirSourc runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectClassesAndFunctions.kt"); } + @Test + @TestMetadata("expectNestedAnnotationClassWithConstructorParameter.kt") + public void testExpectNestedAnnotationClassWithConstructorParameter() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedAnnotationClassWithConstructorParameter.kt"); + } + + @Test + @TestMetadata("expectNestedClassMembers.kt") + public void testExpectNestedClassMembers() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedClassMembers.kt"); + } + + @Test + @TestMetadata("expectNestedEnumClassGeneratedMembers.kt") + public void testExpectNestedEnumClassGeneratedMembers() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedEnumClassGeneratedMembers.kt"); + } + @Test @TestMetadata("external.kt") public void testExternal() throws Exception { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendMPPDiagnosticsWithLightTreeTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendMPPDiagnosticsWithLightTreeTestGenerated.java index c8c5a916cd5..12d1383433d 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendMPPDiagnosticsWithLightTreeTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendMPPDiagnosticsWithLightTreeTestGenerated.java @@ -1036,6 +1036,12 @@ public class FirOldFrontendMPPDiagnosticsWithLightTreeTestGenerated extends Abst runTest("compiler/testData/diagnostics/tests/multiplatform/defaultArguments/methodDefaultArgsViaActualTypealias_oldLanguageVersion.kt"); } + @Test + @TestMetadata("nestedAnnotationClassViaActualTypealias.kt") + public void testNestedAnnotationClassViaActualTypealias() throws Exception { + runTest("compiler/testData/diagnostics/tests/multiplatform/defaultArguments/nestedAnnotationClassViaActualTypealias.kt"); + } + @Test @TestMetadata("nestedClassMethodsViaActualTypealias.kt") public void testNestedClassMethodsViaActualTypealias() throws Exception { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendMPPDiagnosticsWithPsiTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendMPPDiagnosticsWithPsiTestGenerated.java index eda7d5248c1..645aee0a2c7 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendMPPDiagnosticsWithPsiTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendMPPDiagnosticsWithPsiTestGenerated.java @@ -1036,6 +1036,12 @@ public class FirOldFrontendMPPDiagnosticsWithPsiTestGenerated extends AbstractFi runTest("compiler/testData/diagnostics/tests/multiplatform/defaultArguments/methodDefaultArgsViaActualTypealias_oldLanguageVersion.kt"); } + @Test + @TestMetadata("nestedAnnotationClassViaActualTypealias.kt") + public void testNestedAnnotationClassViaActualTypealias() throws Exception { + runTest("compiler/testData/diagnostics/tests/multiplatform/defaultArguments/nestedAnnotationClassViaActualTypealias.kt"); + } + @Test @TestMetadata("nestedClassMethodsViaActualTypealias.kt") public void testNestedClassMethodsViaActualTypealias() throws Exception { diff --git a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/LightTreeRawFirDeclarationBuilder.kt b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/LightTreeRawFirDeclarationBuilder.kt index abc876ffdfc..aef03963156 100644 --- a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/LightTreeRawFirDeclarationBuilder.kt +++ b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/LightTreeRawFirDeclarationBuilder.kt @@ -572,7 +572,7 @@ class LightTreeRawFirDeclarationBuilder( it.toFirPropertyFromPrimaryConstructor( baseModuleData, callableIdForName(it.firValueParameter.name), - classWrapper.hasExpect(), + classIsExpect, currentDispatchReceiverType(), context ) @@ -611,19 +611,19 @@ class LightTreeRawFirDeclarationBuilder( baseModuleData, context.packageFqName, context.className, - modifiers.hasExpect() + classIsExpect ) generateValueOfFunction( baseModuleData, context.packageFqName, context.className, - modifiers.hasExpect() + classIsExpect ) generateEntriesGetter( baseModuleData, context.packageFqName, context.className, - modifiers.hasExpect() + classIsExpect ) } initCompanionObjectSymbolAttr() diff --git a/compiler/fir/raw-fir/light-tree2fir/tests-gen/org/jetbrains/kotlin/fir/lightTree/LightTree2FirConverterTestCaseGenerated.java b/compiler/fir/raw-fir/light-tree2fir/tests-gen/org/jetbrains/kotlin/fir/lightTree/LightTree2FirConverterTestCaseGenerated.java index 29ffbd5226e..33c3907ef03 100644 --- a/compiler/fir/raw-fir/light-tree2fir/tests-gen/org/jetbrains/kotlin/fir/lightTree/LightTree2FirConverterTestCaseGenerated.java +++ b/compiler/fir/raw-fir/light-tree2fir/tests-gen/org/jetbrains/kotlin/fir/lightTree/LightTree2FirConverterTestCaseGenerated.java @@ -141,6 +141,21 @@ public class LightTree2FirConverterTestCaseGenerated extends AbstractLightTree2F runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectClassesAndFunctions.kt"); } + @TestMetadata("expectNestedAnnotationClassWithConstructorParameter.kt") + public void testExpectNestedAnnotationClassWithConstructorParameter() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedAnnotationClassWithConstructorParameter.kt"); + } + + @TestMetadata("expectNestedClassMembers.kt") + public void testExpectNestedClassMembers() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedClassMembers.kt"); + } + + @TestMetadata("expectNestedEnumClassGeneratedMembers.kt") + public void testExpectNestedEnumClassGeneratedMembers() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedEnumClassGeneratedMembers.kt"); + } + @TestMetadata("external.kt") public void testExternal() throws Exception { runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/external.kt"); diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedAnnotationClassWithConstructorParameter.kt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedAnnotationClassWithConstructorParameter.kt new file mode 100644 index 00000000000..019a9e18ad3 --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedAnnotationClassWithConstructorParameter.kt @@ -0,0 +1,3 @@ +expect class Outer { + annotation class AnnotationNested(val p: String = "") +} diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedAnnotationClassWithConstructorParameter.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedAnnotationClassWithConstructorParameter.lazyBodies.txt new file mode 100644 index 00000000000..9fafe4e22d7 --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedAnnotationClassWithConstructorParameter.lazyBodies.txt @@ -0,0 +1,11 @@ +FILE: expectNestedAnnotationClassWithConstructorParameter.kt + public? final? expect class Outer : R|kotlin/Any| { + public? final? expect annotation class AnnotationNested : R|kotlin/Annotation| { + public? expect constructor(p: String = LAZY_EXPRESSION): R|Outer.AnnotationNested| + + public? final? expect val p: String = R|/p| + public? get(): String + + } + + } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedAnnotationClassWithConstructorParameter.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedAnnotationClassWithConstructorParameter.txt new file mode 100644 index 00000000000..fb7adb64cdb --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedAnnotationClassWithConstructorParameter.txt @@ -0,0 +1,11 @@ +FILE: expectNestedAnnotationClassWithConstructorParameter.kt + public? final? expect class Outer : R|kotlin/Any| { + public? final? expect annotation class AnnotationNested : R|kotlin/Annotation| { + public? expect [ContainingClassKey=AnnotationNested] constructor([CorrespondingProperty=/Outer.AnnotationNested.p] p: String = String()): R|Outer.AnnotationNested| + + public? final? expect [IsFromPrimaryConstructor=true] val p: String = R|/p| + public? [ContainingClassKey=AnnotationNested] get(): String + + } + + } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedClassMembers.kt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedClassMembers.kt new file mode 100644 index 00000000000..6c84666cd8a --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedClassMembers.kt @@ -0,0 +1,7 @@ +expect class Outer { + class Nested { + fun function() + + var property: Any + } +} diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedClassMembers.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedClassMembers.lazyBodies.txt new file mode 100644 index 00000000000..3c383d23e0b --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedClassMembers.lazyBodies.txt @@ -0,0 +1,12 @@ +FILE: expectNestedClassMembers.kt + public? final? expect class Outer : R|kotlin/Any| { + public? final? expect class Nested : R|kotlin/Any| { + public? final? expect fun function(): R|kotlin/Unit| + + public? final? expect var property: Any + public? get(): Any + public? set(value: Any): R|kotlin/Unit| + + } + + } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedClassMembers.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedClassMembers.txt new file mode 100644 index 00000000000..b69e1181ea1 --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedClassMembers.txt @@ -0,0 +1,12 @@ +FILE: expectNestedClassMembers.kt + public? final? expect class Outer : R|kotlin/Any| { + public? final? expect class Nested : R|kotlin/Any| { + public? final? expect fun function(): R|kotlin/Unit| + + public? final? expect var property: Any + public? [ContainingClassKey=Nested] get(): Any + public? [ContainingClassKey=Nested] set(value: Any): R|kotlin/Unit| + + } + + } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedEnumClassGeneratedMembers.kt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedEnumClassGeneratedMembers.kt new file mode 100644 index 00000000000..6cd1d761801 --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedEnumClassGeneratedMembers.kt @@ -0,0 +1,5 @@ +expect class Outer { + enum class NestedEnum { + ONE, TWO + } +} diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedEnumClassGeneratedMembers.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedEnumClassGeneratedMembers.lazyBodies.txt new file mode 100644 index 00000000000..2ed3ba2f129 --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedEnumClassGeneratedMembers.lazyBodies.txt @@ -0,0 +1,19 @@ +FILE: expectNestedEnumClassGeneratedMembers.kt + public? final? expect class Outer : R|kotlin/Any| { + public? final? expect enum class NestedEnum : R|kotlin/Enum| { + private expect constructor(): R|Outer.NestedEnum| + + public final expect static enum entry ONE: R|Outer.NestedEnum| + public final expect static enum entry TWO: R|Outer.NestedEnum| + public final expect static fun values(): R|kotlin/Array| { + } + + public final expect static fun valueOf(value: R|kotlin/String|): R|Outer.NestedEnum| { + } + + public final expect static val entries: R|kotlin/enums/EnumEntries| + public get(): R|kotlin/enums/EnumEntries| + + } + + } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedEnumClassGeneratedMembers.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedEnumClassGeneratedMembers.txt new file mode 100644 index 00000000000..e5202f7149c --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedEnumClassGeneratedMembers.txt @@ -0,0 +1,19 @@ +FILE: expectNestedEnumClassGeneratedMembers.kt + public? final? expect class Outer : R|kotlin/Any| { + public? final? expect enum class NestedEnum : R|kotlin/Enum| { + private expect [ContainingClassKey=NestedEnum] constructor(): R|Outer.NestedEnum| + + public final expect static [ContainingClassKey=NestedEnum] enum entry ONE: R|Outer.NestedEnum| + public final expect static [ContainingClassKey=NestedEnum] enum entry TWO: R|Outer.NestedEnum| + public final expect static [ContainingClassKey=NestedEnum] fun values(): R|kotlin/Array| { + } + + public final expect static [ContainingClassKey=NestedEnum] fun valueOf(value: R|kotlin/String|): R|Outer.NestedEnum| { + } + + public final expect static [ContainingClassKey=NestedEnum] val entries: R|kotlin/enums/EnumEntries| + public get(): R|kotlin/enums/EnumEntries| + + } + + } diff --git a/compiler/fir/raw-fir/psi2fir/tests-gen/org/jetbrains/kotlin/fir/builder/RawFirBuilderLazyBodiesTestCaseGenerated.java b/compiler/fir/raw-fir/psi2fir/tests-gen/org/jetbrains/kotlin/fir/builder/RawFirBuilderLazyBodiesTestCaseGenerated.java index 078e2eb61b5..c23a741e900 100644 --- a/compiler/fir/raw-fir/psi2fir/tests-gen/org/jetbrains/kotlin/fir/builder/RawFirBuilderLazyBodiesTestCaseGenerated.java +++ b/compiler/fir/raw-fir/psi2fir/tests-gen/org/jetbrains/kotlin/fir/builder/RawFirBuilderLazyBodiesTestCaseGenerated.java @@ -141,6 +141,21 @@ public class RawFirBuilderLazyBodiesTestCaseGenerated extends AbstractRawFirBuil runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectClassesAndFunctions.kt"); } + @TestMetadata("expectNestedAnnotationClassWithConstructorParameter.kt") + public void testExpectNestedAnnotationClassWithConstructorParameter() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedAnnotationClassWithConstructorParameter.kt"); + } + + @TestMetadata("expectNestedClassMembers.kt") + public void testExpectNestedClassMembers() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedClassMembers.kt"); + } + + @TestMetadata("expectNestedEnumClassGeneratedMembers.kt") + public void testExpectNestedEnumClassGeneratedMembers() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedEnumClassGeneratedMembers.kt"); + } + @TestMetadata("external.kt") public void testExternal() throws Exception { runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/external.kt"); diff --git a/compiler/fir/raw-fir/psi2fir/tests-gen/org/jetbrains/kotlin/fir/builder/RawFirBuilderTestCaseGenerated.java b/compiler/fir/raw-fir/psi2fir/tests-gen/org/jetbrains/kotlin/fir/builder/RawFirBuilderTestCaseGenerated.java index bb3e9547c1d..0a619c6b057 100644 --- a/compiler/fir/raw-fir/psi2fir/tests-gen/org/jetbrains/kotlin/fir/builder/RawFirBuilderTestCaseGenerated.java +++ b/compiler/fir/raw-fir/psi2fir/tests-gen/org/jetbrains/kotlin/fir/builder/RawFirBuilderTestCaseGenerated.java @@ -141,6 +141,21 @@ public class RawFirBuilderTestCaseGenerated extends AbstractRawFirBuilderTestCas runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectClassesAndFunctions.kt"); } + @TestMetadata("expectNestedAnnotationClassWithConstructorParameter.kt") + public void testExpectNestedAnnotationClassWithConstructorParameter() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedAnnotationClassWithConstructorParameter.kt"); + } + + @TestMetadata("expectNestedClassMembers.kt") + public void testExpectNestedClassMembers() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedClassMembers.kt"); + } + + @TestMetadata("expectNestedEnumClassGeneratedMembers.kt") + public void testExpectNestedEnumClassGeneratedMembers() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedEnumClassGeneratedMembers.kt"); + } + @TestMetadata("external.kt") public void testExternal() throws Exception { runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/external.kt"); diff --git a/compiler/testData/diagnostics/tests/multiplatform/defaultArguments/nestedAnnotationClassViaActualTypealias.fir.kt b/compiler/testData/diagnostics/tests/multiplatform/defaultArguments/nestedAnnotationClassViaActualTypealias.fir.kt new file mode 100644 index 00000000000..55e5b61a44c --- /dev/null +++ b/compiler/testData/diagnostics/tests/multiplatform/defaultArguments/nestedAnnotationClassViaActualTypealias.fir.kt @@ -0,0 +1,15 @@ +// TODO: test fails, fix in subsequent commits +// MODULE: m1-common +// FILE: common.kt +expect class DefaultArgsInNestedClass { + annotation class Nested(val p: String = "") +} + +// MODULE: m2-jvm()()(m1-common) +// FILE: jvm.kt +class DefaultArgsInNestedClassImpl { + annotation class Nested(val p: String = "") +} + +// Incompatible because of bug KT-31636 +actual typealias DefaultArgsInNestedClass = DefaultArgsInNestedClassImpl diff --git a/compiler/testData/diagnostics/tests/multiplatform/defaultArguments/nestedAnnotationClassViaActualTypealias.kt b/compiler/testData/diagnostics/tests/multiplatform/defaultArguments/nestedAnnotationClassViaActualTypealias.kt new file mode 100644 index 00000000000..ff5538832fb --- /dev/null +++ b/compiler/testData/diagnostics/tests/multiplatform/defaultArguments/nestedAnnotationClassViaActualTypealias.kt @@ -0,0 +1,15 @@ +// TODO: test fails, fix in subsequent commits +// MODULE: m1-common +// FILE: common.kt +expect class DefaultArgsInNestedClass { + annotation class Nested(val p: String = "") +} + +// MODULE: m2-jvm()()(m1-common) +// FILE: jvm.kt +class DefaultArgsInNestedClassImpl { + annotation class Nested(val p: String = "") +} + +// Incompatible because of bug KT-31636 +actual typealias DefaultArgsInNestedClass = DefaultArgsInNestedClassImpl diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java index cc91cb7aa90..5d18b77a419 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java @@ -24031,6 +24031,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/tests/multiplatform/defaultArguments/methodDefaultArgsViaActualTypealias_oldLanguageVersion.kt"); } + @Test + @TestMetadata("nestedAnnotationClassViaActualTypealias.kt") + public void testNestedAnnotationClassViaActualTypealias() throws Exception { + runTest("compiler/testData/diagnostics/tests/multiplatform/defaultArguments/nestedAnnotationClassViaActualTypealias.kt"); + } + @Test @TestMetadata("nestedClassMethodsViaActualTypealias.kt") public void testNestedClassMethodsViaActualTypealias() throws Exception { diff --git a/compiler/visualizer/tests-gen/org/jetbrains/kotlin/visualizer/fir/FirVisualizerForRawFirDataGenerated.java b/compiler/visualizer/tests-gen/org/jetbrains/kotlin/visualizer/fir/FirVisualizerForRawFirDataGenerated.java index 9181ba74130..514b924a756 100644 --- a/compiler/visualizer/tests-gen/org/jetbrains/kotlin/visualizer/fir/FirVisualizerForRawFirDataGenerated.java +++ b/compiler/visualizer/tests-gen/org/jetbrains/kotlin/visualizer/fir/FirVisualizerForRawFirDataGenerated.java @@ -153,6 +153,24 @@ public class FirVisualizerForRawFirDataGenerated extends AbstractFirVisualizerTe runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectClassesAndFunctions.kt"); } + @Test + @TestMetadata("expectNestedAnnotationClassWithConstructorParameter.kt") + public void testExpectNestedAnnotationClassWithConstructorParameter() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedAnnotationClassWithConstructorParameter.kt"); + } + + @Test + @TestMetadata("expectNestedClassMembers.kt") + public void testExpectNestedClassMembers() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedClassMembers.kt"); + } + + @Test + @TestMetadata("expectNestedEnumClassGeneratedMembers.kt") + public void testExpectNestedEnumClassGeneratedMembers() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedEnumClassGeneratedMembers.kt"); + } + @Test @TestMetadata("external.kt") public void testExternal() throws Exception { diff --git a/compiler/visualizer/tests-gen/org/jetbrains/kotlin/visualizer/psi/PsiVisualizerForRawFirDataGenerated.java b/compiler/visualizer/tests-gen/org/jetbrains/kotlin/visualizer/psi/PsiVisualizerForRawFirDataGenerated.java index 0e17cfc9e41..59d23fc4bda 100644 --- a/compiler/visualizer/tests-gen/org/jetbrains/kotlin/visualizer/psi/PsiVisualizerForRawFirDataGenerated.java +++ b/compiler/visualizer/tests-gen/org/jetbrains/kotlin/visualizer/psi/PsiVisualizerForRawFirDataGenerated.java @@ -153,6 +153,24 @@ public class PsiVisualizerForRawFirDataGenerated extends AbstractPsiVisualizerTe runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectClassesAndFunctions.kt"); } + @Test + @TestMetadata("expectNestedAnnotationClassWithConstructorParameter.kt") + public void testExpectNestedAnnotationClassWithConstructorParameter() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedAnnotationClassWithConstructorParameter.kt"); + } + + @Test + @TestMetadata("expectNestedClassMembers.kt") + public void testExpectNestedClassMembers() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedClassMembers.kt"); + } + + @Test + @TestMetadata("expectNestedEnumClassGeneratedMembers.kt") + public void testExpectNestedEnumClassGeneratedMembers() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectNestedEnumClassGeneratedMembers.kt"); + } + @Test @TestMetadata("external.kt") public void testExternal() throws Exception {