diff --git a/analysis/low-level-api-fir/testData/lazyResolve/substitutionFakeOverride.kt b/analysis/low-level-api-fir/testData/lazyResolve/substitutionFakeOverride.kt index 8f327a36e60..4aa185aa683 100644 --- a/analysis/low-level-api-fir/testData/lazyResolve/substitutionFakeOverride.kt +++ b/analysis/low-level-api-fir/testData/lazyResolve/substitutionFakeOverride.kt @@ -2,5 +2,5 @@ abstract class SubClass: AbstractClass() abstract class AbstractClass { - abstract val property: T + abstract val T.property: T } diff --git a/analysis/low-level-api-fir/testData/lazyResolve/substitutionFakeOverride.txt b/analysis/low-level-api-fir/testData/lazyResolve/substitutionFakeOverride.txt index 18b92c55820..2decbd45144 100644 --- a/analysis/low-level-api-fir/testData/lazyResolve/substitutionFakeOverride.txt +++ b/analysis/low-level-api-fir/testData/lazyResolve/substitutionFakeOverride.txt @@ -1,5 +1,5 @@ RAW_FIR: -TARGET: public abstract [ResolvedTo(STATUS)] [SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: R|kotlin/Int| +TARGET: public abstract [ResolvedTo(STATUS)] [SubstitutedOverrideOriginalKey=/AbstractClass.property] val R|kotlin/Int|.property: R|kotlin/Int| FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverride.kt @@ -14,13 +14,13 @@ FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverride.kt LAZY_super } - public abstract [ResolvedTo(STATUS)] val property: R|T| + public abstract [ResolvedTo(STATUS)] val R|T|.property: R|T| public [ResolvedTo(STATUS)] [ContainingClassKey=AbstractClass] get(): R|T| } IMPORTS: -TARGET: public abstract [ResolvedTo(STATUS)] [SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: R|kotlin/Int| +TARGET: public abstract [ResolvedTo(STATUS)] [SubstitutedOverrideOriginalKey=/AbstractClass.property] val R|kotlin/Int|.property: R|kotlin/Int| FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverride.kt @@ -35,13 +35,13 @@ FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverride.kt LAZY_super } - public abstract [ResolvedTo(STATUS)] val property: R|T| + public abstract [ResolvedTo(STATUS)] val R|T|.property: R|T| public [ResolvedTo(STATUS)] [ContainingClassKey=AbstractClass] get(): R|T| } COMPILER_REQUIRED_ANNOTATIONS: -TARGET: public abstract [ResolvedTo(STATUS)] [SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: R|kotlin/Int| +TARGET: public abstract [ResolvedTo(STATUS)] [SubstitutedOverrideOriginalKey=/AbstractClass.property] val R|kotlin/Int|.property: R|kotlin/Int| FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverride.kt @@ -56,13 +56,13 @@ FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverride.kt LAZY_super } - public abstract [ResolvedTo(STATUS)] val property: R|T| + public abstract [ResolvedTo(STATUS)] val R|T|.property: R|T| public [ResolvedTo(STATUS)] [ContainingClassKey=AbstractClass] get(): R|T| } COMPANION_GENERATION: -TARGET: public abstract [ResolvedTo(STATUS)] [SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: R|kotlin/Int| +TARGET: public abstract [ResolvedTo(STATUS)] [SubstitutedOverrideOriginalKey=/AbstractClass.property] val R|kotlin/Int|.property: R|kotlin/Int| FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverride.kt @@ -77,13 +77,13 @@ FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverride.kt LAZY_super } - public abstract [ResolvedTo(STATUS)] val property: R|T| + public abstract [ResolvedTo(STATUS)] val R|T|.property: R|T| public [ResolvedTo(STATUS)] [ContainingClassKey=AbstractClass] get(): R|T| } SUPER_TYPES: -TARGET: public abstract [ResolvedTo(STATUS)] [SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: R|kotlin/Int| +TARGET: public abstract [ResolvedTo(STATUS)] [SubstitutedOverrideOriginalKey=/AbstractClass.property] val R|kotlin/Int|.property: R|kotlin/Int| FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverride.kt @@ -98,13 +98,13 @@ FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverride.kt LAZY_super } - public abstract [ResolvedTo(STATUS)] val property: R|T| + public abstract [ResolvedTo(STATUS)] val R|T|.property: R|T| public [ResolvedTo(STATUS)] [ContainingClassKey=AbstractClass] get(): R|T| } TYPES: -TARGET: public abstract [ResolvedTo(STATUS)] [SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: R|kotlin/Int| +TARGET: public abstract [ResolvedTo(STATUS)] [SubstitutedOverrideOriginalKey=/AbstractClass.property] val R|kotlin/Int|.property: R|kotlin/Int| FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverride.kt @@ -119,13 +119,13 @@ FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverride.kt LAZY_super } - public abstract [ResolvedTo(STATUS)] val property: R|T| + public abstract [ResolvedTo(STATUS)] val R|T|.property: R|T| public [ResolvedTo(STATUS)] [ContainingClassKey=AbstractClass] get(): R|T| } STATUS: -TARGET: public abstract [ResolvedTo(STATUS)] [SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: R|kotlin/Int| +TARGET: public abstract [ResolvedTo(STATUS)] [SubstitutedOverrideOriginalKey=/AbstractClass.property] val R|kotlin/Int|.property: R|kotlin/Int| FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverride.kt @@ -140,13 +140,13 @@ FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverride.kt LAZY_super } - public abstract [ResolvedTo(STATUS)] val property: R|T| + public abstract [ResolvedTo(STATUS)] val R|T|.property: R|T| public [ResolvedTo(STATUS)] [ContainingClassKey=AbstractClass] get(): R|T| } EXPECT_ACTUAL_MATCHING: -TARGET: public abstract [ResolvedTo(EXPECT_ACTUAL_MATCHING)] [SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: R|kotlin/Int| +TARGET: public abstract [ResolvedTo(EXPECT_ACTUAL_MATCHING)] [SubstitutedOverrideOriginalKey=/AbstractClass.property] val R|kotlin/Int|.property: R|kotlin/Int| FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverride.kt @@ -161,13 +161,13 @@ FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverride.kt LAZY_super } - public abstract [ResolvedTo(STATUS)] val property: R|T| + public abstract [ResolvedTo(STATUS)] val R|T|.property: R|T| public [ResolvedTo(STATUS)] [ContainingClassKey=AbstractClass] get(): R|T| } CONTRACTS: -TARGET: public abstract [ResolvedTo(CONTRACTS)] [SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: R|kotlin/Int| +TARGET: public abstract [ResolvedTo(CONTRACTS)] [SubstitutedOverrideOriginalKey=/AbstractClass.property] val R|kotlin/Int|.property: R|kotlin/Int| FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverride.kt @@ -182,13 +182,13 @@ FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverride.kt LAZY_super } - public abstract [ResolvedTo(STATUS)] val property: R|T| + public abstract [ResolvedTo(STATUS)] val R|T|.property: R|T| public [ResolvedTo(STATUS)] [ContainingClassKey=AbstractClass] get(): R|T| } IMPLICIT_TYPES_BODY_RESOLVE: -TARGET: public abstract [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: R|kotlin/Int| +TARGET: public abstract [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/AbstractClass.property] val R|kotlin/Int|.property: R|kotlin/Int| FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverride.kt @@ -203,13 +203,13 @@ FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverride.kt LAZY_super } - public abstract [ResolvedTo(STATUS)] val property: R|T| + public abstract [ResolvedTo(STATUS)] val R|T|.property: R|T| public [ResolvedTo(STATUS)] [ContainingClassKey=AbstractClass] get(): R|T| } ANNOTATION_ARGUMENTS: -TARGET: public abstract [ResolvedTo(ANNOTATION_ARGUMENTS)] [SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: R|kotlin/Int| +TARGET: public abstract [ResolvedTo(ANNOTATION_ARGUMENTS)] [SubstitutedOverrideOriginalKey=/AbstractClass.property] val R|kotlin/Int|.property: R|kotlin/Int| FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverride.kt @@ -224,13 +224,13 @@ FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverride.kt LAZY_super } - public abstract [ResolvedTo(STATUS)] val property: R|T| + public abstract [ResolvedTo(STATUS)] val R|T|.property: R|T| public [ResolvedTo(STATUS)] [ContainingClassKey=AbstractClass] get(): R|T| } BODY_RESOLVE: -TARGET: public abstract [ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: R|kotlin/Int| +TARGET: public abstract [ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/AbstractClass.property] val R|kotlin/Int|.property: R|kotlin/Int| FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverride.kt @@ -245,7 +245,7 @@ FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverride.kt LAZY_super } - public abstract [ResolvedTo(STATUS)] val property: R|T| + public abstract [ResolvedTo(STATUS)] val R|T|.property: R|T| public [ResolvedTo(STATUS)] [ContainingClassKey=AbstractClass] get(): R|T| } @@ -263,7 +263,7 @@ FILE: [ResolvedTo(BODY_RESOLVE)] substitutionFakeOverride.kt super() } - public abstract [ResolvedTo(BODY_RESOLVE)] val property: R|T| + public abstract [ResolvedTo(BODY_RESOLVE)] val R|T|.property: R|T| public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=AbstractClass] get(): R|T| } diff --git a/analysis/low-level-api-fir/testData/lazyResolve/substitutionFakeOverrideConstructor.kt b/analysis/low-level-api-fir/testData/lazyResolve/substitutionFakeOverrideConstructor.kt new file mode 100644 index 00000000000..ad40a280e5d --- /dev/null +++ b/analysis/low-level-api-fir/testData/lazyResolve/substitutionFakeOverrideConstructor.kt @@ -0,0 +1,8 @@ +// MEMBER_CLASS_FILTER: org.jetbrains.kotlin.fir.symbols.impl.FirConstructorSymbol +package second + +abstract class SubClass: AbstractClass(0) + +abstract class AbstractClass { + constructor(t: T) +} diff --git a/analysis/low-level-api-fir/testData/lazyResolve/substitutionFakeOverrideConstructor.txt b/analysis/low-level-api-fir/testData/lazyResolve/substitutionFakeOverrideConstructor.txt new file mode 100644 index 00000000000..ff80cf80b38 --- /dev/null +++ b/analysis/low-level-api-fir/testData/lazyResolve/substitutionFakeOverrideConstructor.txt @@ -0,0 +1,194 @@ +RAW_FIR: +FILE: [ResolvedTo(RAW_FIR)] substitutionFakeOverrideConstructor.kt + public? abstract [ResolvedTo(RAW_FIR)] class SubClass : AbstractClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SubClass] constructor(): R|second/SubClass| { + LAZY_super> + } + + } + public? abstract [ResolvedTo(RAW_FIR)] class AbstractClass<[ResolvedTo(RAW_FIR)] T> : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AbstractClass] constructor<[ResolvedTo(RAW_FIR)] T>([ResolvedTo(RAW_FIR)] t: T): R|second/AbstractClass| { + LAZY_super + } + + } + +IMPORTS: +FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideConstructor.kt + public? abstract [ResolvedTo(RAW_FIR)] class SubClass : AbstractClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SubClass] constructor(): R|second/SubClass| { + LAZY_super> + } + + } + public? abstract [ResolvedTo(RAW_FIR)] class AbstractClass<[ResolvedTo(RAW_FIR)] T> : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AbstractClass] constructor<[ResolvedTo(RAW_FIR)] T>([ResolvedTo(RAW_FIR)] t: T): R|second/AbstractClass| { + LAZY_super + } + + } + +COMPILER_REQUIRED_ANNOTATIONS: +FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideConstructor.kt + public? abstract [ResolvedTo(RAW_FIR)] class SubClass : AbstractClass { + public? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] [ContainingClassKey=SubClass] constructor(): R|second/SubClass| { + LAZY_super> + } + + } + public? abstract [ResolvedTo(RAW_FIR)] class AbstractClass<[ResolvedTo(RAW_FIR)] T> : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AbstractClass] constructor<[ResolvedTo(RAW_FIR)] T>([ResolvedTo(RAW_FIR)] t: T): R|second/AbstractClass| { + LAZY_super + } + + } + +COMPANION_GENERATION: +FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideConstructor.kt + public? abstract [ResolvedTo(RAW_FIR)] class SubClass : AbstractClass { + public? [ResolvedTo(COMPANION_GENERATION)] [ContainingClassKey=SubClass] constructor(): R|second/SubClass| { + LAZY_super> + } + + } + public? abstract [ResolvedTo(RAW_FIR)] class AbstractClass<[ResolvedTo(RAW_FIR)] T> : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AbstractClass] constructor<[ResolvedTo(RAW_FIR)] T>([ResolvedTo(RAW_FIR)] t: T): R|second/AbstractClass| { + LAZY_super + } + + } + +SUPER_TYPES: +FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideConstructor.kt + public? abstract [ResolvedTo(SUPER_TYPES)] class SubClass : R|second/AbstractClass| { + public? [ResolvedTo(SUPER_TYPES)] [ContainingClassKey=SubClass] constructor(): R|second/SubClass| { + LAZY_super> + } + + } + public? abstract [ResolvedTo(SUPER_TYPES)] class AbstractClass<[ResolvedTo(SUPER_TYPES)] T> : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AbstractClass] constructor<[ResolvedTo(SUPER_TYPES)] T>([ResolvedTo(RAW_FIR)] t: T): R|second/AbstractClass| { + LAZY_super + } + + } + +TYPES: +FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideConstructor.kt + public? abstract [ResolvedTo(TYPES)] class SubClass : R|second/AbstractClass| { + public? [ResolvedTo(TYPES)] [ContainingClassKey=SubClass] constructor(): R|second/SubClass| { + LAZY_super|> + } + + } + public? abstract [ResolvedTo(SUPER_TYPES)] class AbstractClass<[ResolvedTo(SUPER_TYPES)] T> : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AbstractClass] constructor<[ResolvedTo(SUPER_TYPES)] T>([ResolvedTo(RAW_FIR)] t: T): R|second/AbstractClass| { + LAZY_super + } + + } + +STATUS: +FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideConstructor.kt + public abstract [ResolvedTo(STATUS)] class SubClass : R|second/AbstractClass| { + public [ResolvedTo(STATUS)] [ContainingClassKey=SubClass] constructor(): R|second/SubClass| { + LAZY_super|> + } + + } + public abstract [ResolvedTo(STATUS)] class AbstractClass<[ResolvedTo(STATUS)] T> : R|kotlin/Any| { + public [ResolvedTo(STATUS)] [ContainingClassKey=AbstractClass] constructor<[ResolvedTo(STATUS)] T>([ResolvedTo(STATUS)] t: R|T|): R|second/AbstractClass| { + LAZY_super + } + + } + +EXPECT_ACTUAL_MATCHING: +FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideConstructor.kt + public abstract [ResolvedTo(STATUS)] class SubClass : R|second/AbstractClass| { + public [ResolvedTo(EXPECT_ACTUAL_MATCHING)] [ContainingClassKey=SubClass] constructor(): R|second/SubClass| { + LAZY_super|> + } + + } + public abstract [ResolvedTo(STATUS)] class AbstractClass<[ResolvedTo(STATUS)] T> : R|kotlin/Any| { + public [ResolvedTo(STATUS)] [ContainingClassKey=AbstractClass] constructor<[ResolvedTo(STATUS)] T>([ResolvedTo(STATUS)] t: R|T|): R|second/AbstractClass| { + LAZY_super + } + + } + +CONTRACTS: +FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideConstructor.kt + public abstract [ResolvedTo(STATUS)] class SubClass : R|second/AbstractClass| { + public [ResolvedTo(CONTRACTS)] [ContainingClassKey=SubClass] constructor(): R|second/SubClass| { + LAZY_super|> + } + + } + public abstract [ResolvedTo(STATUS)] class AbstractClass<[ResolvedTo(STATUS)] T> : R|kotlin/Any| { + public [ResolvedTo(STATUS)] [ContainingClassKey=AbstractClass] constructor<[ResolvedTo(STATUS)] T>([ResolvedTo(STATUS)] t: R|T|): R|second/AbstractClass| { + LAZY_super + } + + } + +IMPLICIT_TYPES_BODY_RESOLVE: +FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideConstructor.kt + public abstract [ResolvedTo(STATUS)] class SubClass : R|second/AbstractClass| { + public [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] [ContainingClassKey=SubClass] constructor(): R|second/SubClass| { + LAZY_super|> + } + + } + public abstract [ResolvedTo(STATUS)] class AbstractClass<[ResolvedTo(STATUS)] T> : R|kotlin/Any| { + public [ResolvedTo(STATUS)] [ContainingClassKey=AbstractClass] constructor<[ResolvedTo(STATUS)] T>([ResolvedTo(STATUS)] t: R|T|): R|second/AbstractClass| { + LAZY_super + } + + } + +ANNOTATION_ARGUMENTS: +FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideConstructor.kt + public abstract [ResolvedTo(STATUS)] class SubClass : R|second/AbstractClass| { + public [ResolvedTo(ANNOTATION_ARGUMENTS)] [ContainingClassKey=SubClass] constructor(): R|second/SubClass| { + LAZY_super|> + } + + } + public abstract [ResolvedTo(STATUS)] class AbstractClass<[ResolvedTo(STATUS)] T> : R|kotlin/Any| { + public [ResolvedTo(STATUS)] [ContainingClassKey=AbstractClass] constructor<[ResolvedTo(STATUS)] T>([ResolvedTo(STATUS)] t: R|T|): R|second/AbstractClass| { + LAZY_super + } + + } + +BODY_RESOLVE: +FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideConstructor.kt + public abstract [ResolvedTo(STATUS)] class SubClass : R|second/AbstractClass| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=SubClass] constructor(): R|second/SubClass| { + super|>(Int(0)) + } + + } + public abstract [ResolvedTo(STATUS)] class AbstractClass<[ResolvedTo(STATUS)] T> : R|kotlin/Any| { + public [ResolvedTo(STATUS)] [ContainingClassKey=AbstractClass] constructor<[ResolvedTo(STATUS)] T>([ResolvedTo(STATUS)] t: R|T|): R|second/AbstractClass| { + LAZY_super + } + + } + +FILE RAW TO BODY: +FILE: [ResolvedTo(BODY_RESOLVE)] substitutionFakeOverrideConstructor.kt + public abstract [ResolvedTo(BODY_RESOLVE)] class SubClass : R|second/AbstractClass| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=SubClass] constructor(): R|second/SubClass| { + super|>(Int(0)) + } + + } + public abstract [ResolvedTo(BODY_RESOLVE)] class AbstractClass<[ResolvedTo(BODY_RESOLVE)] T> : R|kotlin/Any| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=AbstractClass] constructor<[ResolvedTo(BODY_RESOLVE)] T>([ResolvedTo(BODY_RESOLVE)] t: R|T|): R|second/AbstractClass| { + super() + } + + } diff --git a/analysis/low-level-api-fir/testData/lazyResolve/substitutionFakeOverrideConstructorScript.kts b/analysis/low-level-api-fir/testData/lazyResolve/substitutionFakeOverrideConstructorScript.kts new file mode 100644 index 00000000000..ad40a280e5d --- /dev/null +++ b/analysis/low-level-api-fir/testData/lazyResolve/substitutionFakeOverrideConstructorScript.kts @@ -0,0 +1,8 @@ +// MEMBER_CLASS_FILTER: org.jetbrains.kotlin.fir.symbols.impl.FirConstructorSymbol +package second + +abstract class SubClass: AbstractClass(0) + +abstract class AbstractClass { + constructor(t: T) +} diff --git a/analysis/low-level-api-fir/testData/lazyResolve/substitutionFakeOverrideConstructorScript.txt b/analysis/low-level-api-fir/testData/lazyResolve/substitutionFakeOverrideConstructorScript.txt new file mode 100644 index 00000000000..d07d6c8e4b0 --- /dev/null +++ b/analysis/low-level-api-fir/testData/lazyResolve/substitutionFakeOverrideConstructorScript.txt @@ -0,0 +1,271 @@ +RAW_FIR: +FILE: [ResolvedTo(RAW_FIR)] substitutionFakeOverrideConstructorScript.kts + context(