From a9aa0e020a250a062b06e04c8760a72e96649c68 Mon Sep 17 00:00:00 2001 From: Dmitrii Gridin Date: Thu, 16 Nov 2023 18:12:41 +0100 Subject: [PATCH] [LL FIR] add tests for constructors We are resolving delegated constructor call in the wrong context ``` TYPES: FILE: [ResolvedTo(IMPORTS)] superTypeCallNameClash.kt public? open [ResolvedTo(SUPER_TYPES)] class Base : R|kotlin/Any| public? final? [ResolvedTo(TYPES)] class MyClass : R|second/Base| { public? [ResolvedTo(TYPES)] [ContainingClassKey=MyClass] constructor(): R|second/MyClass| { LAZY_super // should be R|second/Base| } public? open [ResolvedTo(RAW_FIR)] class Base : R|kotlin/Any| } ``` ^KT-63042 --- .../classes/superTypeCallNameClash.kt | 7 + .../classes/superTypeCallNameClash.txt | 285 +++++++ ...perTypeCallNameClashImplicitConstructor.kt | 7 + ...erTypeCallNameClashImplicitConstructor.txt | 285 +++++++ ...CallNameClashImplicitConstructorScript.kts | 7 + ...CallNameClashImplicitConstructorScript.txt | 362 +++++++++ .../classes/superTypeCallNameClashScript.kts | 7 + .../classes/superTypeCallNameClashScript.txt | 362 +++++++++ .../superTypeCallNameClashWithAnnotation.kt | 18 + .../superTypeCallNameClashWithAnnotation.txt | 623 +++++++++++++++ ...eClashWithAnnotationImplicitConstructor.kt | 18 + ...ClashWithAnnotationImplicitConstructor.txt | 623 +++++++++++++++ ...ithAnnotationImplicitConstructorScript.kts | 18 + ...ithAnnotationImplicitConstructorScript.txt | 739 ++++++++++++++++++ ...rTypeCallNameClashWithAnnotationScript.kts | 18 + ...rTypeCallNameClashWithAnnotationScript.txt | 739 ++++++++++++++++++ .../classes/superTypeCallNestedNameClash.kt | 7 + .../classes/superTypeCallNestedNameClash.txt | 285 +++++++ ...eCallNestedNameClashImplicitConstructor.kt | 7 + ...CallNestedNameClashImplicitConstructor.txt | 285 +++++++ ...stedNameClashImplicitConstructorScript.kts | 7 + ...stedNameClashImplicitConstructorScript.txt | 362 +++++++++ .../superTypeCallNestedNameClashScript.kts | 7 + .../superTypeCallNestedNameClashScript.txt | 362 +++++++++ ...erTypeCallNestedNameClashWithAnnotation.kt | 18 + ...rTypeCallNestedNameClashWithAnnotation.txt | 623 +++++++++++++++ ...eClashWithAnnotationImplicitConstructor.kt | 18 + ...ClashWithAnnotationImplicitConstructor.txt | 623 +++++++++++++++ ...ithAnnotationImplicitConstructorScript.kts | 18 + ...ithAnnotationImplicitConstructorScript.txt | 739 ++++++++++++++++++ ...allNestedNameClashWithAnnotationScript.kts | 18 + ...allNestedNameClashWithAnnotationScript.txt | 739 ++++++++++++++++++ .../functions/superTypeCallNameClash.kt | 8 + .../functions/superTypeCallNameClash.txt | 285 +++++++ ...perTypeCallNameClashImplicitConstructor.kt | 8 + ...erTypeCallNameClashImplicitConstructor.txt | 285 +++++++ ...CallNameClashImplicitConstructorScript.kts | 8 + ...CallNameClashImplicitConstructorScript.txt | 362 +++++++++ .../superTypeCallNameClashScript.kts | 8 + .../superTypeCallNameClashScript.txt | 362 +++++++++ .../superTypeCallNameClashWithAnnotation.kt | 19 + .../superTypeCallNameClashWithAnnotation.txt | 623 +++++++++++++++ ...eClashWithAnnotationImplicitConstructor.kt | 19 + ...ClashWithAnnotationImplicitConstructor.txt | 623 +++++++++++++++ ...ithAnnotationImplicitConstructorScript.kts | 19 + ...ithAnnotationImplicitConstructorScript.txt | 739 ++++++++++++++++++ ...rTypeCallNameClashWithAnnotationScript.kts | 19 + ...rTypeCallNameClashWithAnnotationScript.txt | 739 ++++++++++++++++++ .../functions/superTypeCallNestedNameClash.kt | 8 + .../superTypeCallNestedNameClash.txt | 285 +++++++ ...eCallNestedNameClashImplicitConstructor.kt | 8 + ...CallNestedNameClashImplicitConstructor.txt | 285 +++++++ ...stedNameClashImplicitConstructorScript.kts | 8 + ...stedNameClashImplicitConstructorScript.txt | 362 +++++++++ .../superTypeCallNestedNameClashScript.kts | 8 + .../superTypeCallNestedNameClashScript.txt | 362 +++++++++ ...erTypeCallNestedNameClashWithAnnotation.kt | 19 + ...rTypeCallNestedNameClashWithAnnotation.txt | 623 +++++++++++++++ ...eClashWithAnnotationImplicitConstructor.kt | 19 + ...ClashWithAnnotationImplicitConstructor.txt | 623 +++++++++++++++ ...ithAnnotationImplicitConstructorScript.kts | 19 + ...ithAnnotationImplicitConstructorScript.txt | 739 ++++++++++++++++++ ...allNestedNameClashWithAnnotationScript.kts | 19 + ...allNestedNameClashWithAnnotationScript.txt | 739 ++++++++++++++++++ ...otLazyDeclarationResolveTestGenerated.java | 96 +++ ...ptLazyDeclarationResolveTestGenerated.java | 96 +++ ...ceLazyDeclarationResolveTestGenerated.java | 96 +++ 67 files changed, 16776 insertions(+) create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/classes/superTypeCallNameClash.kt create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/classes/superTypeCallNameClash.txt create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/classes/superTypeCallNameClashImplicitConstructor.kt create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/classes/superTypeCallNameClashImplicitConstructor.txt create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/classes/superTypeCallNameClashImplicitConstructorScript.kts create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/classes/superTypeCallNameClashImplicitConstructorScript.txt create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/classes/superTypeCallNameClashScript.kts create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/classes/superTypeCallNameClashScript.txt create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/classes/superTypeCallNameClashWithAnnotation.kt create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/classes/superTypeCallNameClashWithAnnotation.txt create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/classes/superTypeCallNameClashWithAnnotationImplicitConstructor.kt create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/classes/superTypeCallNameClashWithAnnotationImplicitConstructor.txt create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/classes/superTypeCallNameClashWithAnnotationImplicitConstructorScript.kts create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/classes/superTypeCallNameClashWithAnnotationImplicitConstructorScript.txt create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/classes/superTypeCallNameClashWithAnnotationScript.kts create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/classes/superTypeCallNameClashWithAnnotationScript.txt create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/classes/superTypeCallNestedNameClash.kt create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/classes/superTypeCallNestedNameClash.txt create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/classes/superTypeCallNestedNameClashImplicitConstructor.kt create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/classes/superTypeCallNestedNameClashImplicitConstructor.txt create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/classes/superTypeCallNestedNameClashImplicitConstructorScript.kts create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/classes/superTypeCallNestedNameClashImplicitConstructorScript.txt create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/classes/superTypeCallNestedNameClashScript.kts create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/classes/superTypeCallNestedNameClashScript.txt create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/classes/superTypeCallNestedNameClashWithAnnotation.kt create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/classes/superTypeCallNestedNameClashWithAnnotation.txt create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/classes/superTypeCallNestedNameClashWithAnnotationImplicitConstructor.kt create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/classes/superTypeCallNestedNameClashWithAnnotationImplicitConstructor.txt create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/classes/superTypeCallNestedNameClashWithAnnotationImplicitConstructorScript.kts create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/classes/superTypeCallNestedNameClashWithAnnotationImplicitConstructorScript.txt create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/classes/superTypeCallNestedNameClashWithAnnotationScript.kts create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/classes/superTypeCallNestedNameClashWithAnnotationScript.txt create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/functions/superTypeCallNameClash.kt create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/functions/superTypeCallNameClash.txt create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/functions/superTypeCallNameClashImplicitConstructor.kt create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/functions/superTypeCallNameClashImplicitConstructor.txt create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/functions/superTypeCallNameClashImplicitConstructorScript.kts create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/functions/superTypeCallNameClashImplicitConstructorScript.txt create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/functions/superTypeCallNameClashScript.kts create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/functions/superTypeCallNameClashScript.txt create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/functions/superTypeCallNameClashWithAnnotation.kt create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/functions/superTypeCallNameClashWithAnnotation.txt create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/functions/superTypeCallNameClashWithAnnotationImplicitConstructor.kt create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/functions/superTypeCallNameClashWithAnnotationImplicitConstructor.txt create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/functions/superTypeCallNameClashWithAnnotationImplicitConstructorScript.kts create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/functions/superTypeCallNameClashWithAnnotationImplicitConstructorScript.txt create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/functions/superTypeCallNameClashWithAnnotationScript.kts create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/functions/superTypeCallNameClashWithAnnotationScript.txt create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/functions/superTypeCallNestedNameClash.kt create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/functions/superTypeCallNestedNameClash.txt create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/functions/superTypeCallNestedNameClashImplicitConstructor.kt create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/functions/superTypeCallNestedNameClashImplicitConstructor.txt create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/functions/superTypeCallNestedNameClashImplicitConstructorScript.kts create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/functions/superTypeCallNestedNameClashImplicitConstructorScript.txt create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/functions/superTypeCallNestedNameClashScript.kts create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/functions/superTypeCallNestedNameClashScript.txt create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/functions/superTypeCallNestedNameClashWithAnnotation.kt create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/functions/superTypeCallNestedNameClashWithAnnotation.txt create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/functions/superTypeCallNestedNameClashWithAnnotationImplicitConstructor.kt create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/functions/superTypeCallNestedNameClashWithAnnotationImplicitConstructor.txt create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/functions/superTypeCallNestedNameClashWithAnnotationImplicitConstructorScript.kts create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/functions/superTypeCallNestedNameClashWithAnnotationImplicitConstructorScript.txt create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/functions/superTypeCallNestedNameClashWithAnnotationScript.kts create mode 100644 analysis/low-level-api-fir/testData/lazyResolve/functions/superTypeCallNestedNameClashWithAnnotationScript.txt diff --git a/analysis/low-level-api-fir/testData/lazyResolve/classes/superTypeCallNameClash.kt b/analysis/low-level-api-fir/testData/lazyResolve/classes/superTypeCallNameClash.kt new file mode 100644 index 00000000000..dd58bb7693c --- /dev/null +++ b/analysis/low-level-api-fir/testData/lazyResolve/classes/superTypeCallNameClash.kt @@ -0,0 +1,7 @@ +package second + +open class Base + +class MyClass() : Base() { + open class Base +} diff --git a/analysis/low-level-api-fir/testData/lazyResolve/classes/superTypeCallNameClash.txt b/analysis/low-level-api-fir/testData/lazyResolve/classes/superTypeCallNameClash.txt new file mode 100644 index 00000000000..de554ea234e --- /dev/null +++ b/analysis/low-level-api-fir/testData/lazyResolve/classes/superTypeCallNameClash.txt @@ -0,0 +1,285 @@ +RAW_FIR: +FILE: [ResolvedTo(RAW_FIR)] superTypeCallNameClash.kt + public? open [ResolvedTo(RAW_FIR)] class Base : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Base] constructor(): R|second/Base| { + LAZY_super + } + + } + public? final? [ResolvedTo(RAW_FIR)] class MyClass : Base { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=MyClass] constructor(): R|second/MyClass| { + LAZY_super + } + + public? open [ResolvedTo(RAW_FIR)] class Base : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Base] constructor(): R|second/MyClass.Base| { + LAZY_super + } + + } + + } + +IMPORTS: +FILE: [ResolvedTo(IMPORTS)] superTypeCallNameClash.kt + public? open [ResolvedTo(RAW_FIR)] class Base : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Base] constructor(): R|second/Base| { + LAZY_super + } + + } + public? final? [ResolvedTo(RAW_FIR)] class MyClass : Base { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=MyClass] constructor(): R|second/MyClass| { + LAZY_super + } + + public? open [ResolvedTo(RAW_FIR)] class Base : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Base] constructor(): R|second/MyClass.Base| { + LAZY_super + } + + } + + } + +COMPILER_REQUIRED_ANNOTATIONS: +FILE: [ResolvedTo(IMPORTS)] superTypeCallNameClash.kt + public? open [ResolvedTo(RAW_FIR)] class Base : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Base] constructor(): R|second/Base| { + LAZY_super + } + + } + public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] class MyClass : Base { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=MyClass] constructor(): R|second/MyClass| { + LAZY_super + } + + public? open [ResolvedTo(RAW_FIR)] class Base : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Base] constructor(): R|second/MyClass.Base| { + LAZY_super + } + + } + + } + +COMPANION_GENERATION: +FILE: [ResolvedTo(IMPORTS)] superTypeCallNameClash.kt + public? open [ResolvedTo(RAW_FIR)] class Base : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Base] constructor(): R|second/Base| { + LAZY_super + } + + } + public? final? [ResolvedTo(COMPANION_GENERATION)] class MyClass : Base { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=MyClass] constructor(): R|second/MyClass| { + LAZY_super + } + + public? open [ResolvedTo(RAW_FIR)] class Base : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Base] constructor(): R|second/MyClass.Base| { + LAZY_super + } + + } + + } + +SUPER_TYPES: +FILE: [ResolvedTo(IMPORTS)] superTypeCallNameClash.kt + public? open [ResolvedTo(SUPER_TYPES)] class Base : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Base] constructor(): R|second/Base| { + LAZY_super + } + + } + public? final? [ResolvedTo(SUPER_TYPES)] class MyClass : R|second/Base| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=MyClass] constructor(): R|second/MyClass| { + LAZY_super + } + + public? open [ResolvedTo(RAW_FIR)] class Base : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Base] constructor(): R|second/MyClass.Base| { + LAZY_super + } + + } + + } + +TYPES: +FILE: [ResolvedTo(IMPORTS)] superTypeCallNameClash.kt + public? open [ResolvedTo(SUPER_TYPES)] class Base : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Base] constructor(): R|second/Base| { + LAZY_super + } + + } + public? final? [ResolvedTo(TYPES)] class MyClass : R|second/Base| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=MyClass] constructor(): R|second/MyClass| { + LAZY_super + } + + public? open [ResolvedTo(RAW_FIR)] class Base : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Base] constructor(): R|second/MyClass.Base| { + LAZY_super + } + + } + + } + +STATUS: +FILE: [ResolvedTo(IMPORTS)] superTypeCallNameClash.kt + public? open [ResolvedTo(SUPER_TYPES)] class Base : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Base] constructor(): R|second/Base| { + LAZY_super + } + + } + public final [ResolvedTo(STATUS)] class MyClass : R|second/Base| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=MyClass] constructor(): R|second/MyClass| { + LAZY_super + } + + public? open [ResolvedTo(RAW_FIR)] class Base : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Base] constructor(): R|second/MyClass.Base| { + LAZY_super + } + + } + + } + +EXPECT_ACTUAL_MATCHING: +FILE: [ResolvedTo(IMPORTS)] superTypeCallNameClash.kt + public? open [ResolvedTo(SUPER_TYPES)] class Base : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Base] constructor(): R|second/Base| { + LAZY_super + } + + } + public final [ResolvedTo(EXPECT_ACTUAL_MATCHING)] class MyClass : R|second/Base| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=MyClass] constructor(): R|second/MyClass| { + LAZY_super + } + + public? open [ResolvedTo(RAW_FIR)] class Base : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Base] constructor(): R|second/MyClass.Base| { + LAZY_super + } + + } + + } + +CONTRACTS: +FILE: [ResolvedTo(IMPORTS)] superTypeCallNameClash.kt + public? open [ResolvedTo(SUPER_TYPES)] class Base : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Base] constructor(): R|second/Base| { + LAZY_super + } + + } + public final [ResolvedTo(CONTRACTS)] class MyClass : R|second/Base| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=MyClass] constructor(): R|second/MyClass| { + LAZY_super + } + + public? open [ResolvedTo(RAW_FIR)] class Base : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Base] constructor(): R|second/MyClass.Base| { + LAZY_super + } + + } + + } + +IMPLICIT_TYPES_BODY_RESOLVE: +FILE: [ResolvedTo(IMPORTS)] superTypeCallNameClash.kt + public? open [ResolvedTo(SUPER_TYPES)] class Base : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Base] constructor(): R|second/Base| { + LAZY_super + } + + } + public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] class MyClass : R|second/Base| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=MyClass] constructor(): R|second/MyClass| { + LAZY_super + } + + public? open [ResolvedTo(RAW_FIR)] class Base : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Base] constructor(): R|second/MyClass.Base| { + LAZY_super + } + + } + + } + +ANNOTATION_ARGUMENTS: +FILE: [ResolvedTo(IMPORTS)] superTypeCallNameClash.kt + public? open [ResolvedTo(SUPER_TYPES)] class Base : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Base] constructor(): R|second/Base| { + LAZY_super + } + + } + public final [ResolvedTo(ANNOTATION_ARGUMENTS)] class MyClass : R|second/Base| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=MyClass] constructor(): R|second/MyClass| { + LAZY_super + } + + public? open [ResolvedTo(RAW_FIR)] class Base : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Base] constructor(): R|second/MyClass.Base| { + LAZY_super + } + + } + + } + +BODY_RESOLVE: +FILE: [ResolvedTo(IMPORTS)] superTypeCallNameClash.kt + public open [ResolvedTo(STATUS)] class Base : R|kotlin/Any| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Base] constructor(): R|second/Base| { + LAZY_super + } + + } + public final [ResolvedTo(BODY_RESOLVE)] class MyClass : R|second/Base| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=MyClass] constructor(): R|second/MyClass| { + super() + } + + public open [ResolvedTo(STATUS)] class Base : R|kotlin/Any| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Base] constructor(): R|second/MyClass.Base| { + LAZY_super + } + + } + + } + +FILE RAW TO BODY: +FILE: [ResolvedTo(BODY_RESOLVE)] superTypeCallNameClash.kt + public open [ResolvedTo(BODY_RESOLVE)] class Base : R|kotlin/Any| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Base] constructor(): R|second/Base| { + super() + } + + } + public final [ResolvedTo(BODY_RESOLVE)] class MyClass : R|second/Base| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=MyClass] constructor(): R|second/MyClass| { + super() + } + + public open [ResolvedTo(BODY_RESOLVE)] class Base : R|kotlin/Any| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Base] constructor(): R|second/MyClass.Base| { + super() + } + + } + + } diff --git a/analysis/low-level-api-fir/testData/lazyResolve/classes/superTypeCallNameClashImplicitConstructor.kt b/analysis/low-level-api-fir/testData/lazyResolve/classes/superTypeCallNameClashImplicitConstructor.kt new file mode 100644 index 00000000000..cfc7ea7c987 --- /dev/null +++ b/analysis/low-level-api-fir/testData/lazyResolve/classes/superTypeCallNameClashImplicitConstructor.kt @@ -0,0 +1,7 @@ +package second + +open class Base + +class MyClass : Base() { + open class Base +} diff --git a/analysis/low-level-api-fir/testData/lazyResolve/classes/superTypeCallNameClashImplicitConstructor.txt b/analysis/low-level-api-fir/testData/lazyResolve/classes/superTypeCallNameClashImplicitConstructor.txt new file mode 100644 index 00000000000..a551317bf5c --- /dev/null +++ b/analysis/low-level-api-fir/testData/lazyResolve/classes/superTypeCallNameClashImplicitConstructor.txt @@ -0,0 +1,285 @@ +RAW_FIR: +FILE: [ResolvedTo(RAW_FIR)] superTypeCallNameClashImplicitConstructor.kt + public? open [ResolvedTo(RAW_FIR)] class Base : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Base] constructor(): R|second/Base| { + LAZY_super + } + + } + public? final? [ResolvedTo(RAW_FIR)] class MyClass : Base { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=MyClass] constructor(): R|second/MyClass| { + LAZY_super + } + + public? open [ResolvedTo(RAW_FIR)] class Base : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Base] constructor(): R|second/MyClass.Base| { + LAZY_super + } + + } + + } + +IMPORTS: +FILE: [ResolvedTo(IMPORTS)] superTypeCallNameClashImplicitConstructor.kt + public? open [ResolvedTo(RAW_FIR)] class Base : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Base] constructor(): R|second/Base| { + LAZY_super + } + + } + public? final? [ResolvedTo(RAW_FIR)] class MyClass : Base { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=MyClass] constructor(): R|second/MyClass| { + LAZY_super + } + + public? open [ResolvedTo(RAW_FIR)] class Base : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Base] constructor(): R|second/MyClass.Base| { + LAZY_super + } + + } + + } + +COMPILER_REQUIRED_ANNOTATIONS: +FILE: [ResolvedTo(IMPORTS)] superTypeCallNameClashImplicitConstructor.kt + public? open [ResolvedTo(RAW_FIR)] class Base : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Base] constructor(): R|second/Base| { + LAZY_super + } + + } + public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] class MyClass : Base { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=MyClass] constructor(): R|second/MyClass| { + LAZY_super + } + + public? open [ResolvedTo(RAW_FIR)] class Base : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Base] constructor(): R|second/MyClass.Base| { + LAZY_super + } + + } + + } + +COMPANION_GENERATION: +FILE: [ResolvedTo(IMPORTS)] superTypeCallNameClashImplicitConstructor.kt + public? open [ResolvedTo(RAW_FIR)] class Base : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Base] constructor(): R|second/Base| { + LAZY_super + } + + } + public? final? [ResolvedTo(COMPANION_GENERATION)] class MyClass : Base { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=MyClass] constructor(): R|second/MyClass| { + LAZY_super + } + + public? open [ResolvedTo(RAW_FIR)] class Base : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Base] constructor(): R|second/MyClass.Base| { + LAZY_super + } + + } + + } + +SUPER_TYPES: +FILE: [ResolvedTo(IMPORTS)] superTypeCallNameClashImplicitConstructor.kt + public? open [ResolvedTo(SUPER_TYPES)] class Base : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Base] constructor(): R|second/Base| { + LAZY_super + } + + } + public? final? [ResolvedTo(SUPER_TYPES)] class MyClass : R|second/Base| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=MyClass] constructor(): R|second/MyClass| { + LAZY_super + } + + public? open [ResolvedTo(RAW_FIR)] class Base : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Base] constructor(): R|second/MyClass.Base| { + LAZY_super + } + + } + + } + +TYPES: +FILE: [ResolvedTo(IMPORTS)] superTypeCallNameClashImplicitConstructor.kt + public? open [ResolvedTo(SUPER_TYPES)] class Base : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Base] constructor(): R|second/Base| { + LAZY_super + } + + } + public? final? [ResolvedTo(TYPES)] class MyClass : R|second/Base| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=MyClass] constructor(): R|second/MyClass| { + LAZY_super + } + + public? open [ResolvedTo(RAW_FIR)] class Base : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Base] constructor(): R|second/MyClass.Base| { + LAZY_super + } + + } + + } + +STATUS: +FILE: [ResolvedTo(IMPORTS)] superTypeCallNameClashImplicitConstructor.kt + public? open [ResolvedTo(SUPER_TYPES)] class Base : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Base] constructor(): R|second/Base| { + LAZY_super + } + + } + public final [ResolvedTo(STATUS)] class MyClass : R|second/Base| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=MyClass] constructor(): R|second/MyClass| { + LAZY_super + } + + public? open [ResolvedTo(RAW_FIR)] class Base : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Base] constructor(): R|second/MyClass.Base| { + LAZY_super + } + + } + + } + +EXPECT_ACTUAL_MATCHING: +FILE: [ResolvedTo(IMPORTS)] superTypeCallNameClashImplicitConstructor.kt + public? open [ResolvedTo(SUPER_TYPES)] class Base : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Base] constructor(): R|second/Base| { + LAZY_super + } + + } + public final [ResolvedTo(EXPECT_ACTUAL_MATCHING)] class MyClass : R|second/Base| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=MyClass] constructor(): R|second/MyClass| { + LAZY_super + } + + public? open [ResolvedTo(RAW_FIR)] class Base : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Base] constructor(): R|second/MyClass.Base| { + LAZY_super + } + + } + + } + +CONTRACTS: +FILE: [ResolvedTo(IMPORTS)] superTypeCallNameClashImplicitConstructor.kt + public? open [ResolvedTo(SUPER_TYPES)] class Base : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Base] constructor(): R|second/Base| { + LAZY_super + } + + } + public final [ResolvedTo(CONTRACTS)] class MyClass : R|second/Base| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=MyClass] constructor(): R|second/MyClass| { + LAZY_super + } + + public? open [ResolvedTo(RAW_FIR)] class Base : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Base] constructor(): R|second/MyClass.Base| { + LAZY_super + } + + } + + } + +IMPLICIT_TYPES_BODY_RESOLVE: +FILE: [ResolvedTo(IMPORTS)] superTypeCallNameClashImplicitConstructor.kt + public? open [ResolvedTo(SUPER_TYPES)] class Base : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Base] constructor(): R|second/Base| { + LAZY_super + } + + } + public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] class MyClass : R|second/Base| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=MyClass] constructor(): R|second/MyClass| { + LAZY_super + } + + public? open [ResolvedTo(RAW_FIR)] class Base : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Base] constructor(): R|second/MyClass.Base| { + LAZY_super + } + + } + + } + +ANNOTATION_ARGUMENTS: +FILE: [ResolvedTo(IMPORTS)] superTypeCallNameClashImplicitConstructor.kt + public? open [ResolvedTo(SUPER_TYPES)] class Base : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Base] constructor(): R|second/Base| { + LAZY_super + } + + } + public final [ResolvedTo(ANNOTATION_ARGUMENTS)] class MyClass : R|second/Base| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=MyClass] constructor(): R|second/MyClass| { + LAZY_super + } + + public? open [ResolvedTo(RAW_FIR)] class Base : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Base] constructor(): R|second/MyClass.Base| { + LAZY_super + } + + } + + } + +BODY_RESOLVE: +FILE: [ResolvedTo(IMPORTS)] superTypeCallNameClashImplicitConstructor.kt + public open [ResolvedTo(STATUS)] class Base : R|kotlin/Any| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Base] constructor(): R|second/Base| { + LAZY_super + } + + } + public final [ResolvedTo(BODY_RESOLVE)] class MyClass : R|second/Base| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=MyClass] constructor(): R|second/MyClass| { + super() + } + + public open [ResolvedTo(STATUS)] class Base : R|kotlin/Any| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Base] constructor(): R|second/MyClass.Base| { + LAZY_super + } + + } + + } + +FILE RAW TO BODY: +FILE: [ResolvedTo(BODY_RESOLVE)] superTypeCallNameClashImplicitConstructor.kt + public open [ResolvedTo(BODY_RESOLVE)] class Base : R|kotlin/Any| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Base] constructor(): R|second/Base| { + super() + } + + } + public final [ResolvedTo(BODY_RESOLVE)] class MyClass : R|second/Base| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=MyClass] constructor(): R|second/MyClass| { + super() + } + + public open [ResolvedTo(BODY_RESOLVE)] class Base : R|kotlin/Any| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Base] constructor(): R|second/MyClass.Base| { + super() + } + + } + + } diff --git a/analysis/low-level-api-fir/testData/lazyResolve/classes/superTypeCallNameClashImplicitConstructorScript.kts b/analysis/low-level-api-fir/testData/lazyResolve/classes/superTypeCallNameClashImplicitConstructorScript.kts new file mode 100644 index 00000000000..cfc7ea7c987 --- /dev/null +++ b/analysis/low-level-api-fir/testData/lazyResolve/classes/superTypeCallNameClashImplicitConstructorScript.kts @@ -0,0 +1,7 @@ +package second + +open class Base + +class MyClass : Base() { + open class Base +} diff --git a/analysis/low-level-api-fir/testData/lazyResolve/classes/superTypeCallNameClashImplicitConstructorScript.txt b/analysis/low-level-api-fir/testData/lazyResolve/classes/superTypeCallNameClashImplicitConstructorScript.txt new file mode 100644 index 00000000000..83afb45f839 --- /dev/null +++ b/analysis/low-level-api-fir/testData/lazyResolve/classes/superTypeCallNameClashImplicitConstructorScript.txt @@ -0,0 +1,362 @@ +RAW_FIR: +FILE: [ResolvedTo(RAW_FIR)] superTypeCallNameClashImplicitConstructorScript.kts + context(