diff --git a/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/class/classAnnotationsInLocalClass.after.txt b/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/class/classAnnotationsInLocalClass.after.txt new file mode 100644 index 00000000000..344c9741c0d --- /dev/null +++ b/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/class/classAnnotationsInLocalClass.after.txt @@ -0,0 +1,100 @@ +@R|Anno|(position = (String(bound ), R|/localProp|)) kotlin/collections/List<@R|Anno|(position = (String(nested bound ), R|/localProp|)) kotlin/Int> + context -> FirTypeParameterSymbol T from FirRegularClassSymbol /OriginalClass + anchor -> [] + +@R|Anno|(position = (String(nested bound ), R|/localProp|)) kotlin/Int + context -> FirTypeParameterSymbol T from FirRegularClassSymbol /OriginalClass + anchor -> [] + +@R|Anno|(position = (String(super type ), R|/localProp|)) A<@R|Anno|(position = (String(nested super type ), R|/localProp|)) kotlin/collections/List<@R|Anno|(position = (String(nested nested super type ), R|/localProp|)) kotlin/Int>> + context -> FirConstructorSymbol /OriginalClass.OriginalClass + anchor -> [] + +@R|Anno|(position = (String(nested super type ), R|/localProp|)) kotlin/collections/List<@R|Anno|(position = (String(nested nested super type ), R|/localProp|)) kotlin/Int> + context -> FirConstructorSymbol /OriginalClass.OriginalClass + anchor -> [FirRegularClassSymbol /OriginalClass] + +@R|Anno|(position = (String(nested nested super type ), R|/localProp|)) kotlin/Int + context -> FirConstructorSymbol /OriginalClass.OriginalClass + anchor -> [FirRegularClassSymbol /OriginalClass] + +@R|Anno|(position = (String(bound ), #)) kotlin/collections/List<@R|Anno|(position = (String(nested bound ), #)) kotlin/Int> + context -> FirTypeParameterSymbol T from FirRegularClassSymbol /OriginalClass.InnerClass + anchor -> [] + +@R|Anno|(position = (String(nested bound ), #)) kotlin/Int + context -> FirTypeParameterSymbol T from FirRegularClassSymbol /OriginalClass.InnerClass + anchor -> [] + +@R|Anno|(position = (String(super type ), #)) A<@R|Anno|(position = (String(nested super type ), #)) kotlin/collections/List<@R|Anno|(position = (String(nested nested super type ), #)) kotlin/Int>> + context -> FirConstructorSymbol /OriginalClass.InnerClass.InnerClass + anchor -> [] + +@R|Anno|(position = (String(nested super type ), #)) kotlin/collections/List<@R|Anno|(position = (String(nested nested super type ), #)) kotlin/Int> + context -> FirConstructorSymbol /OriginalClass.InnerClass.InnerClass + anchor -> [FirRegularClassSymbol /OriginalClass.InnerClass] + +@R|Anno|(position = (String(nested nested super type ), #)) kotlin/Int + context -> FirConstructorSymbol /OriginalClass.InnerClass.InnerClass + anchor -> [FirRegularClassSymbol /OriginalClass.InnerClass] + +@R|Anno|(position = (String(super type ), #)) A<@R|Anno|(position = (String(nested super type ), #)) kotlin/collections/List<@R|Anno|(position = (String(nested nested super type ), #)) kotlin/Int>> + context -> FirRegularClassSymbol /OriginalClass.InnerClass + anchor -> [FirRegularClassSymbol /OriginalClass.InnerClass] + +@R|Anno|(position = (String(nested super type ), #)) kotlin/collections/List<@R|Anno|(position = (String(nested nested super type ), #)) kotlin/Int> + context -> FirRegularClassSymbol /OriginalClass.InnerClass + anchor -> [FirRegularClassSymbol /OriginalClass.InnerClass] + +@R|Anno|(position = (String(nested nested super type ), #)) kotlin/Int + context -> FirRegularClassSymbol /OriginalClass.InnerClass + anchor -> [FirRegularClassSymbol /OriginalClass.InnerClass] + +@R|Anno|(position = (String(super type ), R|/localProp|)) A<@R|Anno|(position = (String(nested super type ), R|/localProp|)) kotlin/collections/List<@R|Anno|(position = (String(nested nested super type ), R|/localProp|)) kotlin/Int>> + context -> FirRegularClassSymbol /OriginalClass + anchor -> [FirRegularClassSymbol /OriginalClass] + +@R|Anno|(position = (String(nested super type ), R|/localProp|)) kotlin/collections/List<@R|Anno|(position = (String(nested nested super type ), R|/localProp|)) kotlin/Int> + context -> FirRegularClassSymbol /OriginalClass + anchor -> [FirRegularClassSymbol /OriginalClass] + +@R|Anno|(position = (String(nested nested super type ), R|/localProp|)) kotlin/Int + context -> FirRegularClassSymbol /OriginalClass + anchor -> [FirRegularClassSymbol /OriginalClass] + +FILE: [ResolvedTo(IMPORTS)] classAnnotationsInLocalClass.kt + @R|kotlin/annotation/Target|[Types](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.CLASS|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.VALUE_PARAMETER|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE_PARAMETER|) public final [ResolvedTo(STATUS)] annotation class Anno : R|kotlin/Annotation| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Anno] constructor([ResolvedTo(STATUS)] [CorrespondingProperty=/Anno.position] position: R|kotlin/String|): R|Anno| { + LAZY_super + } + + public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val position: R|kotlin/String| = R|/position| + public [ResolvedTo(STATUS)] [ContainingClassKey=Anno] get(): R|kotlin/String| + + } + public open [ResolvedTo(STATUS)] class A<[ResolvedTo(STATUS)] T> : R|kotlin/Any| { + public [ResolvedTo(STATUS)] [ContainingClassKey=A] constructor<[ResolvedTo(STATUS)] T>(): R|A| { + LAZY_super + } + + } + public final [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| { + [ResolvedTo(BODY_RESOLVE)] lval localProp: R|kotlin/Int| = Int(1) + @R|Anno|[Types](position = (String(class ), R|/localProp|)) local final [ResolvedTo(BODY_RESOLVE)] class OriginalClass<@R|Anno|[Types](position = (String(type param ), R|/localProp|)) [ResolvedTo(BODY_RESOLVE)] T : R|@R|Anno|(position = (String(bound ), R|/localProp|)) kotlin/collections/List<@R|Anno|(position = (String(nested bound ), R|/localProp|)) kotlin/Int>|> : R|@R|Anno|(position = (String(super type ), R|/localProp|)) A<@R|Anno|(position = (String(nested super type ), R|/localProp|)) kotlin/collections/List<@R|Anno|(position = (String(nested nested super type ), R|/localProp|)) kotlin/Int>>| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=OriginalClass] constructor<@R|Anno|[Types](position = (String(type param ), R|/localProp|)) [ResolvedTo(BODY_RESOLVE)] T : R|@R|Anno|(position = (String(bound ), R|/localProp|)) kotlin/collections/List<@R|Anno|(position = (String(nested bound ), R|/localProp|)) kotlin/Int>|>(): R|/OriginalClass| { + super(String(super type ), R|/localProp|)) A<@R|Anno|(position = (String(nested super type ), R|/localProp|)) kotlin/collections/List<@R|Anno|(position = (String(nested nested super type ), R|/localProp|)) kotlin/Int>>|>() + } + + public final [ResolvedTo(BODY_RESOLVE)] val prop: R|kotlin/Int| = Int(0) + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=OriginalClass] get(): R|kotlin/Int| + + @R|Anno|[Types](position = (String(class ), #)) local final [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=OriginalClass] class InnerClass<@R|Anno|[Types](position = (String(type param ), #)) [ResolvedTo(BODY_RESOLVE)] T : R|@R|Anno|(position = (String(bound ), #)) kotlin/collections/List<@R|Anno|(position = (String(nested bound ), #)) kotlin/Int>|, @R|Anno|[Types](position = (String(type param ), R|/localProp|)) [ResolvedTo(BODY_RESOLVE)] Outer(T) : R|@R|Anno|(position = (String(bound ), R|/localProp|)) kotlin/collections/List<@R|Anno|(position = (String(nested bound ), R|/localProp|)) kotlin/Int>|> : R|@R|Anno|(position = (String(super type ), #)) A<@R|Anno|(position = (String(nested super type ), #)) kotlin/collections/List<@R|Anno|(position = (String(nested nested super type ), #)) kotlin/Int>>| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=InnerClass] constructor<@R|Anno|[Types](position = (String(type param ), #)) [ResolvedTo(BODY_RESOLVE)] T : R|@R|Anno|(position = (String(bound ), #)) kotlin/collections/List<@R|Anno|(position = (String(nested bound ), #)) kotlin/Int>|>(): R|/OriginalClass.InnerClass| { + super(String(super type ), #)) A<@R|Anno|(position = (String(nested super type ), #)) kotlin/collections/List<@R|Anno|(position = (String(nested nested super type ), #)) kotlin/Int>>|>() + } + + } + + } + + } diff --git a/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/class/classAnnotationsInLocalClass.before.txt b/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/class/classAnnotationsInLocalClass.before.txt new file mode 100644 index 00000000000..344c9741c0d --- /dev/null +++ b/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/class/classAnnotationsInLocalClass.before.txt @@ -0,0 +1,100 @@ +@R|Anno|(position = (String(bound ), R|/localProp|)) kotlin/collections/List<@R|Anno|(position = (String(nested bound ), R|/localProp|)) kotlin/Int> + context -> FirTypeParameterSymbol T from FirRegularClassSymbol /OriginalClass + anchor -> [] + +@R|Anno|(position = (String(nested bound ), R|/localProp|)) kotlin/Int + context -> FirTypeParameterSymbol T from FirRegularClassSymbol /OriginalClass + anchor -> [] + +@R|Anno|(position = (String(super type ), R|/localProp|)) A<@R|Anno|(position = (String(nested super type ), R|/localProp|)) kotlin/collections/List<@R|Anno|(position = (String(nested nested super type ), R|/localProp|)) kotlin/Int>> + context -> FirConstructorSymbol /OriginalClass.OriginalClass + anchor -> [] + +@R|Anno|(position = (String(nested super type ), R|/localProp|)) kotlin/collections/List<@R|Anno|(position = (String(nested nested super type ), R|/localProp|)) kotlin/Int> + context -> FirConstructorSymbol /OriginalClass.OriginalClass + anchor -> [FirRegularClassSymbol /OriginalClass] + +@R|Anno|(position = (String(nested nested super type ), R|/localProp|)) kotlin/Int + context -> FirConstructorSymbol /OriginalClass.OriginalClass + anchor -> [FirRegularClassSymbol /OriginalClass] + +@R|Anno|(position = (String(bound ), #)) kotlin/collections/List<@R|Anno|(position = (String(nested bound ), #)) kotlin/Int> + context -> FirTypeParameterSymbol T from FirRegularClassSymbol /OriginalClass.InnerClass + anchor -> [] + +@R|Anno|(position = (String(nested bound ), #)) kotlin/Int + context -> FirTypeParameterSymbol T from FirRegularClassSymbol /OriginalClass.InnerClass + anchor -> [] + +@R|Anno|(position = (String(super type ), #)) A<@R|Anno|(position = (String(nested super type ), #)) kotlin/collections/List<@R|Anno|(position = (String(nested nested super type ), #)) kotlin/Int>> + context -> FirConstructorSymbol /OriginalClass.InnerClass.InnerClass + anchor -> [] + +@R|Anno|(position = (String(nested super type ), #)) kotlin/collections/List<@R|Anno|(position = (String(nested nested super type ), #)) kotlin/Int> + context -> FirConstructorSymbol /OriginalClass.InnerClass.InnerClass + anchor -> [FirRegularClassSymbol /OriginalClass.InnerClass] + +@R|Anno|(position = (String(nested nested super type ), #)) kotlin/Int + context -> FirConstructorSymbol /OriginalClass.InnerClass.InnerClass + anchor -> [FirRegularClassSymbol /OriginalClass.InnerClass] + +@R|Anno|(position = (String(super type ), #)) A<@R|Anno|(position = (String(nested super type ), #)) kotlin/collections/List<@R|Anno|(position = (String(nested nested super type ), #)) kotlin/Int>> + context -> FirRegularClassSymbol /OriginalClass.InnerClass + anchor -> [FirRegularClassSymbol /OriginalClass.InnerClass] + +@R|Anno|(position = (String(nested super type ), #)) kotlin/collections/List<@R|Anno|(position = (String(nested nested super type ), #)) kotlin/Int> + context -> FirRegularClassSymbol /OriginalClass.InnerClass + anchor -> [FirRegularClassSymbol /OriginalClass.InnerClass] + +@R|Anno|(position = (String(nested nested super type ), #)) kotlin/Int + context -> FirRegularClassSymbol /OriginalClass.InnerClass + anchor -> [FirRegularClassSymbol /OriginalClass.InnerClass] + +@R|Anno|(position = (String(super type ), R|/localProp|)) A<@R|Anno|(position = (String(nested super type ), R|/localProp|)) kotlin/collections/List<@R|Anno|(position = (String(nested nested super type ), R|/localProp|)) kotlin/Int>> + context -> FirRegularClassSymbol /OriginalClass + anchor -> [FirRegularClassSymbol /OriginalClass] + +@R|Anno|(position = (String(nested super type ), R|/localProp|)) kotlin/collections/List<@R|Anno|(position = (String(nested nested super type ), R|/localProp|)) kotlin/Int> + context -> FirRegularClassSymbol /OriginalClass + anchor -> [FirRegularClassSymbol /OriginalClass] + +@R|Anno|(position = (String(nested nested super type ), R|/localProp|)) kotlin/Int + context -> FirRegularClassSymbol /OriginalClass + anchor -> [FirRegularClassSymbol /OriginalClass] + +FILE: [ResolvedTo(IMPORTS)] classAnnotationsInLocalClass.kt + @R|kotlin/annotation/Target|[Types](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.CLASS|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.VALUE_PARAMETER|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE_PARAMETER|) public final [ResolvedTo(STATUS)] annotation class Anno : R|kotlin/Annotation| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Anno] constructor([ResolvedTo(STATUS)] [CorrespondingProperty=/Anno.position] position: R|kotlin/String|): R|Anno| { + LAZY_super + } + + public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val position: R|kotlin/String| = R|/position| + public [ResolvedTo(STATUS)] [ContainingClassKey=Anno] get(): R|kotlin/String| + + } + public open [ResolvedTo(STATUS)] class A<[ResolvedTo(STATUS)] T> : R|kotlin/Any| { + public [ResolvedTo(STATUS)] [ContainingClassKey=A] constructor<[ResolvedTo(STATUS)] T>(): R|A| { + LAZY_super + } + + } + public final [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| { + [ResolvedTo(BODY_RESOLVE)] lval localProp: R|kotlin/Int| = Int(1) + @R|Anno|[Types](position = (String(class ), R|/localProp|)) local final [ResolvedTo(BODY_RESOLVE)] class OriginalClass<@R|Anno|[Types](position = (String(type param ), R|/localProp|)) [ResolvedTo(BODY_RESOLVE)] T : R|@R|Anno|(position = (String(bound ), R|/localProp|)) kotlin/collections/List<@R|Anno|(position = (String(nested bound ), R|/localProp|)) kotlin/Int>|> : R|@R|Anno|(position = (String(super type ), R|/localProp|)) A<@R|Anno|(position = (String(nested super type ), R|/localProp|)) kotlin/collections/List<@R|Anno|(position = (String(nested nested super type ), R|/localProp|)) kotlin/Int>>| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=OriginalClass] constructor<@R|Anno|[Types](position = (String(type param ), R|/localProp|)) [ResolvedTo(BODY_RESOLVE)] T : R|@R|Anno|(position = (String(bound ), R|/localProp|)) kotlin/collections/List<@R|Anno|(position = (String(nested bound ), R|/localProp|)) kotlin/Int>|>(): R|/OriginalClass| { + super(String(super type ), R|/localProp|)) A<@R|Anno|(position = (String(nested super type ), R|/localProp|)) kotlin/collections/List<@R|Anno|(position = (String(nested nested super type ), R|/localProp|)) kotlin/Int>>|>() + } + + public final [ResolvedTo(BODY_RESOLVE)] val prop: R|kotlin/Int| = Int(0) + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=OriginalClass] get(): R|kotlin/Int| + + @R|Anno|[Types](position = (String(class ), #)) local final [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=OriginalClass] class InnerClass<@R|Anno|[Types](position = (String(type param ), #)) [ResolvedTo(BODY_RESOLVE)] T : R|@R|Anno|(position = (String(bound ), #)) kotlin/collections/List<@R|Anno|(position = (String(nested bound ), #)) kotlin/Int>|, @R|Anno|[Types](position = (String(type param ), R|/localProp|)) [ResolvedTo(BODY_RESOLVE)] Outer(T) : R|@R|Anno|(position = (String(bound ), R|/localProp|)) kotlin/collections/List<@R|Anno|(position = (String(nested bound ), R|/localProp|)) kotlin/Int>|> : R|@R|Anno|(position = (String(super type ), #)) A<@R|Anno|(position = (String(nested super type ), #)) kotlin/collections/List<@R|Anno|(position = (String(nested nested super type ), #)) kotlin/Int>>| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=InnerClass] constructor<@R|Anno|[Types](position = (String(type param ), #)) [ResolvedTo(BODY_RESOLVE)] T : R|@R|Anno|(position = (String(bound ), #)) kotlin/collections/List<@R|Anno|(position = (String(nested bound ), #)) kotlin/Int>|>(): R|/OriginalClass.InnerClass| { + super(String(super type ), #)) A<@R|Anno|(position = (String(nested super type ), #)) kotlin/collections/List<@R|Anno|(position = (String(nested nested super type ), #)) kotlin/Int>>|>() + } + + } + + } + + } diff --git a/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/class/classAnnotationsInLocalClass.kt b/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/class/classAnnotationsInLocalClass.kt new file mode 100644 index 00000000000..f38dd51afd7 --- /dev/null +++ b/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/class/classAnnotationsInLocalClass.kt @@ -0,0 +1,16 @@ +// BODY_RESOLVE +@Target(AnnotationTarget.TYPE, AnnotationTarget.CLASS, AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.TYPE_PARAMETER) +annotation class Anno(val position: String) + +open class A + +fun foo() { + val localProp = 1 + @Anno("class $localProp") + class OriginalClass<@Anno("type param $localProp") T : @Anno("bound $localProp") List<@Anno("nested bound $localProp") Int>> : @Anno("super type $localProp") A<@Anno("nested super type $localProp") List<@Anno("nested nested super type $localProp") Int>>() { + val prop = 0 + + @Anno("class $prop") + class InnerClass<@Anno("type param $prop") T : @Anno("bound $prop") List<@Anno("nested bound $prop") Int>> : @Anno("super type $prop") A<@Anno("nested super type $prop") List<@Anno("nested nested super type $prop") Int>>() + } +} diff --git a/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/class/classAnnotationsInLocalClass.lazyResolve.txt b/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/class/classAnnotationsInLocalClass.lazyResolve.txt new file mode 100644 index 00000000000..6cf872175e9 --- /dev/null +++ b/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/class/classAnnotationsInLocalClass.lazyResolve.txt @@ -0,0 +1,341 @@ +RAW_FIR: +FILE: [ResolvedTo(RAW_FIR)] classAnnotationsInLocalClass.kt + @Target[Unresolved](LAZY_EXPRESSION, LAZY_EXPRESSION, LAZY_EXPRESSION, LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.position] position: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val position: String = R|/position| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? open [ResolvedTo(RAW_FIR)] class A<[ResolvedTo(RAW_FIR)] T> : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=A] constructor<[ResolvedTo(RAW_FIR)] T>(): R|A| { + LAZY_super + } + + } + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + +IMPORTS: +FILE: [ResolvedTo(IMPORTS)] classAnnotationsInLocalClass.kt + @Target[Unresolved](LAZY_EXPRESSION, LAZY_EXPRESSION, LAZY_EXPRESSION, LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.position] position: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val position: String = R|/position| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? open [ResolvedTo(RAW_FIR)] class A<[ResolvedTo(RAW_FIR)] T> : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=A] constructor<[ResolvedTo(RAW_FIR)] T>(): R|A| { + LAZY_super + } + + } + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + +COMPILER_REQUIRED_ANNOTATIONS: +FILE: [ResolvedTo(IMPORTS)] classAnnotationsInLocalClass.kt + @Target[Unresolved](LAZY_EXPRESSION, LAZY_EXPRESSION, LAZY_EXPRESSION, LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.position] position: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val position: String = R|/position| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? open [ResolvedTo(RAW_FIR)] class A<[ResolvedTo(RAW_FIR)] T> : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=A] constructor<[ResolvedTo(RAW_FIR)] T>(): R|A| { + LAZY_super + } + + } + public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + +COMPANION_GENERATION: +FILE: [ResolvedTo(IMPORTS)] classAnnotationsInLocalClass.kt + @Target[Unresolved](LAZY_EXPRESSION, LAZY_EXPRESSION, LAZY_EXPRESSION, LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.position] position: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val position: String = R|/position| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? open [ResolvedTo(RAW_FIR)] class A<[ResolvedTo(RAW_FIR)] T> : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=A] constructor<[ResolvedTo(RAW_FIR)] T>(): R|A| { + LAZY_super + } + + } + public? final? [ResolvedTo(COMPANION_GENERATION)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + +SUPER_TYPES: +FILE: [ResolvedTo(IMPORTS)] classAnnotationsInLocalClass.kt + @Target[Unresolved](LAZY_EXPRESSION, LAZY_EXPRESSION, LAZY_EXPRESSION, LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.position] position: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val position: String = R|/position| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? open [ResolvedTo(RAW_FIR)] class A<[ResolvedTo(RAW_FIR)] T> : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=A] constructor<[ResolvedTo(RAW_FIR)] T>(): R|A| { + LAZY_super + } + + } + public? final? [ResolvedTo(SUPER_TYPES)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + +TYPES: +FILE: [ResolvedTo(IMPORTS)] classAnnotationsInLocalClass.kt + @Target[Unresolved](LAZY_EXPRESSION, LAZY_EXPRESSION, LAZY_EXPRESSION, LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.position] position: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val position: String = R|/position| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? open [ResolvedTo(RAW_FIR)] class A<[ResolvedTo(RAW_FIR)] T> : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=A] constructor<[ResolvedTo(RAW_FIR)] T>(): R|A| { + LAZY_super + } + + } + public? final? [ResolvedTo(TYPES)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + +STATUS: +FILE: [ResolvedTo(IMPORTS)] classAnnotationsInLocalClass.kt + @Target[Unresolved](LAZY_EXPRESSION, LAZY_EXPRESSION, LAZY_EXPRESSION, LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.position] position: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val position: String = R|/position| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? open [ResolvedTo(RAW_FIR)] class A<[ResolvedTo(RAW_FIR)] T> : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=A] constructor<[ResolvedTo(RAW_FIR)] T>(): R|A| { + LAZY_super + } + + } + public final [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + +EXPECT_ACTUAL_MATCHING: +FILE: [ResolvedTo(IMPORTS)] classAnnotationsInLocalClass.kt + @Target[Unresolved](LAZY_EXPRESSION, LAZY_EXPRESSION, LAZY_EXPRESSION, LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.position] position: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val position: String = R|/position| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? open [ResolvedTo(RAW_FIR)] class A<[ResolvedTo(RAW_FIR)] T> : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=A] constructor<[ResolvedTo(RAW_FIR)] T>(): R|A| { + LAZY_super + } + + } + public final [ResolvedTo(EXPECT_ACTUAL_MATCHING)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + +CONTRACTS: +FILE: [ResolvedTo(IMPORTS)] classAnnotationsInLocalClass.kt + @Target[Unresolved](LAZY_EXPRESSION, LAZY_EXPRESSION, LAZY_EXPRESSION, LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.position] position: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val position: String = R|/position| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? open [ResolvedTo(RAW_FIR)] class A<[ResolvedTo(RAW_FIR)] T> : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=A] constructor<[ResolvedTo(RAW_FIR)] T>(): R|A| { + LAZY_super + } + + } + public final [ResolvedTo(CONTRACTS)] fun foo(): R|kotlin/Unit| { + [ResolvedTo(RAW_FIR)] lval localProp: = IntegerLiteral(1) + @Anno[Unresolved]((String(class ), localProp#)) local final? [ResolvedTo(RAW_FIR)] class OriginalClass<@Anno[Unresolved]((String(type param ), localProp#)) [ResolvedTo(RAW_FIR)] T : @Anno[Unresolved]((String(bound ), localProp#)) List<@Anno[Unresolved]((String(nested bound ), localProp#)) Int>> : @Anno[Unresolved]((String(super type ), localProp#)) A<@Anno[Unresolved]((String(nested super type ), localProp#)) List<@Anno[Unresolved]((String(nested nested super type ), localProp#)) Int>> { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OriginalClass] constructor<@Anno[Unresolved]((String(type param ), localProp#)) [ResolvedTo(RAW_FIR)] T : @Anno[Unresolved]((String(bound ), localProp#)) List<@Anno[Unresolved]((String(nested bound ), localProp#)) Int>>(): R|/OriginalClass| { + super<@Anno[Unresolved]((String(super type ), localProp#)) A<@Anno[Unresolved]((String(nested super type ), localProp#)) List<@Anno[Unresolved]((String(nested nested super type ), localProp#)) Int>>>() + } + + public? final? [ResolvedTo(RAW_FIR)] val prop: = IntegerLiteral(0) + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OriginalClass] get(): + + @Anno[Unresolved]((String(class ), prop#)) local final? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OriginalClass] class InnerClass<@Anno[Unresolved]((String(type param ), prop#)) [ResolvedTo(RAW_FIR)] T : @Anno[Unresolved]((String(bound ), prop#)) List<@Anno[Unresolved]((String(nested bound ), prop#)) Int>, @Anno[Unresolved]((String(type param ), localProp#)) [ResolvedTo(RAW_FIR)] Outer(T) : @Anno[Unresolved]((String(bound ), localProp#)) List<@Anno[Unresolved]((String(nested bound ), localProp#)) Int>> : @Anno[Unresolved]((String(super type ), prop#)) A<@Anno[Unresolved]((String(nested super type ), prop#)) List<@Anno[Unresolved]((String(nested nested super type ), prop#)) Int>> { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=InnerClass] constructor<@Anno[Unresolved]((String(type param ), prop#)) [ResolvedTo(RAW_FIR)] T : @Anno[Unresolved]((String(bound ), prop#)) List<@Anno[Unresolved]((String(nested bound ), prop#)) Int>>(): R|/OriginalClass.InnerClass| { + super<@Anno[Unresolved]((String(super type ), prop#)) A<@Anno[Unresolved]((String(nested super type ), prop#)) List<@Anno[Unresolved]((String(nested nested super type ), prop#)) Int>>>() + } + + } + + } + + } + +IMPLICIT_TYPES_BODY_RESOLVE: +FILE: [ResolvedTo(IMPORTS)] classAnnotationsInLocalClass.kt + @Target[Unresolved](LAZY_EXPRESSION, LAZY_EXPRESSION, LAZY_EXPRESSION, LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.position] position: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val position: String = R|/position| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? open [ResolvedTo(RAW_FIR)] class A<[ResolvedTo(RAW_FIR)] T> : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=A] constructor<[ResolvedTo(RAW_FIR)] T>(): R|A| { + LAZY_super + } + + } + public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fun foo(): R|kotlin/Unit| { + [ResolvedTo(RAW_FIR)] lval localProp: = IntegerLiteral(1) + @Anno[Unresolved]((String(class ), localProp#)) local final? [ResolvedTo(RAW_FIR)] class OriginalClass<@Anno[Unresolved]((String(type param ), localProp#)) [ResolvedTo(RAW_FIR)] T : @Anno[Unresolved]((String(bound ), localProp#)) List<@Anno[Unresolved]((String(nested bound ), localProp#)) Int>> : @Anno[Unresolved]((String(super type ), localProp#)) A<@Anno[Unresolved]((String(nested super type ), localProp#)) List<@Anno[Unresolved]((String(nested nested super type ), localProp#)) Int>> { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OriginalClass] constructor<@Anno[Unresolved]((String(type param ), localProp#)) [ResolvedTo(RAW_FIR)] T : @Anno[Unresolved]((String(bound ), localProp#)) List<@Anno[Unresolved]((String(nested bound ), localProp#)) Int>>(): R|/OriginalClass| { + super<@Anno[Unresolved]((String(super type ), localProp#)) A<@Anno[Unresolved]((String(nested super type ), localProp#)) List<@Anno[Unresolved]((String(nested nested super type ), localProp#)) Int>>>() + } + + public? final? [ResolvedTo(RAW_FIR)] val prop: = IntegerLiteral(0) + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OriginalClass] get(): + + @Anno[Unresolved]((String(class ), prop#)) local final? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OriginalClass] class InnerClass<@Anno[Unresolved]((String(type param ), prop#)) [ResolvedTo(RAW_FIR)] T : @Anno[Unresolved]((String(bound ), prop#)) List<@Anno[Unresolved]((String(nested bound ), prop#)) Int>, @Anno[Unresolved]((String(type param ), localProp#)) [ResolvedTo(RAW_FIR)] Outer(T) : @Anno[Unresolved]((String(bound ), localProp#)) List<@Anno[Unresolved]((String(nested bound ), localProp#)) Int>> : @Anno[Unresolved]((String(super type ), prop#)) A<@Anno[Unresolved]((String(nested super type ), prop#)) List<@Anno[Unresolved]((String(nested nested super type ), prop#)) Int>> { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=InnerClass] constructor<@Anno[Unresolved]((String(type param ), prop#)) [ResolvedTo(RAW_FIR)] T : @Anno[Unresolved]((String(bound ), prop#)) List<@Anno[Unresolved]((String(nested bound ), prop#)) Int>>(): R|/OriginalClass.InnerClass| { + super<@Anno[Unresolved]((String(super type ), prop#)) A<@Anno[Unresolved]((String(nested super type ), prop#)) List<@Anno[Unresolved]((String(nested nested super type ), prop#)) Int>>>() + } + + } + + } + + } + +ANNOTATION_ARGUMENTS: +FILE: [ResolvedTo(IMPORTS)] classAnnotationsInLocalClass.kt + @Target[Unresolved](LAZY_EXPRESSION, LAZY_EXPRESSION, LAZY_EXPRESSION, LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] annotation class Anno : R|kotlin/Annotation| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.position] position: String): R|Anno| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val position: String = R|/position| + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String + + } + public? open [ResolvedTo(RAW_FIR)] class A<[ResolvedTo(RAW_FIR)] T> : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=A] constructor<[ResolvedTo(RAW_FIR)] T>(): R|A| { + LAZY_super + } + + } + public final [ResolvedTo(ANNOTATION_ARGUMENTS)] fun foo(): R|kotlin/Unit| { + [ResolvedTo(RAW_FIR)] lval localProp: = IntegerLiteral(1) + @Anno[Unresolved]((String(class ), localProp#)) local final? [ResolvedTo(RAW_FIR)] class OriginalClass<@Anno[Unresolved]((String(type param ), localProp#)) [ResolvedTo(RAW_FIR)] T : @Anno[Unresolved]((String(bound ), localProp#)) List<@Anno[Unresolved]((String(nested bound ), localProp#)) Int>> : @Anno[Unresolved]((String(super type ), localProp#)) A<@Anno[Unresolved]((String(nested super type ), localProp#)) List<@Anno[Unresolved]((String(nested nested super type ), localProp#)) Int>> { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OriginalClass] constructor<@Anno[Unresolved]((String(type param ), localProp#)) [ResolvedTo(RAW_FIR)] T : @Anno[Unresolved]((String(bound ), localProp#)) List<@Anno[Unresolved]((String(nested bound ), localProp#)) Int>>(): R|/OriginalClass| { + super<@Anno[Unresolved]((String(super type ), localProp#)) A<@Anno[Unresolved]((String(nested super type ), localProp#)) List<@Anno[Unresolved]((String(nested nested super type ), localProp#)) Int>>>() + } + + public? final? [ResolvedTo(RAW_FIR)] val prop: = IntegerLiteral(0) + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OriginalClass] get(): + + @Anno[Unresolved]((String(class ), prop#)) local final? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OriginalClass] class InnerClass<@Anno[Unresolved]((String(type param ), prop#)) [ResolvedTo(RAW_FIR)] T : @Anno[Unresolved]((String(bound ), prop#)) List<@Anno[Unresolved]((String(nested bound ), prop#)) Int>, @Anno[Unresolved]((String(type param ), localProp#)) [ResolvedTo(RAW_FIR)] Outer(T) : @Anno[Unresolved]((String(bound ), localProp#)) List<@Anno[Unresolved]((String(nested bound ), localProp#)) Int>> : @Anno[Unresolved]((String(super type ), prop#)) A<@Anno[Unresolved]((String(nested super type ), prop#)) List<@Anno[Unresolved]((String(nested nested super type ), prop#)) Int>> { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=InnerClass] constructor<@Anno[Unresolved]((String(type param ), prop#)) [ResolvedTo(RAW_FIR)] T : @Anno[Unresolved]((String(bound ), prop#)) List<@Anno[Unresolved]((String(nested bound ), prop#)) Int>>(): R|/OriginalClass.InnerClass| { + super<@Anno[Unresolved]((String(super type ), prop#)) A<@Anno[Unresolved]((String(nested super type ), prop#)) List<@Anno[Unresolved]((String(nested nested super type ), prop#)) Int>>>() + } + + } + + } + + } + +BODY_RESOLVE: +FILE: [ResolvedTo(IMPORTS)] classAnnotationsInLocalClass.kt + @R|kotlin/annotation/Target|[Types](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.CLASS|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.VALUE_PARAMETER|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE_PARAMETER|) public final [ResolvedTo(STATUS)] annotation class Anno : R|kotlin/Annotation| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Anno] constructor([ResolvedTo(STATUS)] [CorrespondingProperty=/Anno.position] position: R|kotlin/String|): R|Anno| { + LAZY_super + } + + public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val position: R|kotlin/String| = R|/position| + public [ResolvedTo(STATUS)] [ContainingClassKey=Anno] get(): R|kotlin/String| + + } + public open [ResolvedTo(STATUS)] class A<[ResolvedTo(STATUS)] T> : R|kotlin/Any| { + public [ResolvedTo(STATUS)] [ContainingClassKey=A] constructor<[ResolvedTo(STATUS)] T>(): R|A| { + LAZY_super + } + + } + public final [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| { + [ResolvedTo(BODY_RESOLVE)] lval localProp: R|kotlin/Int| = Int(1) + @R|Anno|[Types](position = (String(class ), R|/localProp|)) local final [ResolvedTo(BODY_RESOLVE)] class OriginalClass<@R|Anno|[Types](position = (String(type param ), R|/localProp|)) [ResolvedTo(BODY_RESOLVE)] T : R|@R|Anno|(position = (String(bound ), R|/localProp|)) kotlin/collections/List<@R|Anno|(position = (String(nested bound ), R|/localProp|)) kotlin/Int>|> : R|@R|Anno|(position = (String(super type ), R|/localProp|)) A<@R|Anno|(position = (String(nested super type ), R|/localProp|)) kotlin/collections/List<@R|Anno|(position = (String(nested nested super type ), R|/localProp|)) kotlin/Int>>| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=OriginalClass] constructor<@R|Anno|[Types](position = (String(type param ), R|/localProp|)) [ResolvedTo(BODY_RESOLVE)] T : R|@R|Anno|(position = (String(bound ), R|/localProp|)) kotlin/collections/List<@R|Anno|(position = (String(nested bound ), R|/localProp|)) kotlin/Int>|>(): R|/OriginalClass| { + super(String(super type ), R|/localProp|)) A<@R|Anno|(position = (String(nested super type ), R|/localProp|)) kotlin/collections/List<@R|Anno|(position = (String(nested nested super type ), R|/localProp|)) kotlin/Int>>|>() + } + + public final [ResolvedTo(BODY_RESOLVE)] val prop: R|kotlin/Int| = Int(0) + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=OriginalClass] get(): R|kotlin/Int| + + @R|Anno|[Types](position = (String(class ), #)) local final [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=OriginalClass] class InnerClass<@R|Anno|[Types](position = (String(type param ), #)) [ResolvedTo(BODY_RESOLVE)] T : R|@R|Anno|(position = (String(bound ), #)) kotlin/collections/List<@R|Anno|(position = (String(nested bound ), #)) kotlin/Int>|, @R|Anno|[Types](position = (String(type param ), R|/localProp|)) [ResolvedTo(BODY_RESOLVE)] Outer(T) : R|@R|Anno|(position = (String(bound ), R|/localProp|)) kotlin/collections/List<@R|Anno|(position = (String(nested bound ), R|/localProp|)) kotlin/Int>|> : R|@R|Anno|(position = (String(super type ), #)) A<@R|Anno|(position = (String(nested super type ), #)) kotlin/collections/List<@R|Anno|(position = (String(nested nested super type ), #)) kotlin/Int>>| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=InnerClass] constructor<@R|Anno|[Types](position = (String(type param ), #)) [ResolvedTo(BODY_RESOLVE)] T : R|@R|Anno|(position = (String(bound ), #)) kotlin/collections/List<@R|Anno|(position = (String(nested bound ), #)) kotlin/Int>|>(): R|/OriginalClass.InnerClass| { + super(String(super type ), #)) A<@R|Anno|(position = (String(nested super type ), #)) kotlin/collections/List<@R|Anno|(position = (String(nested nested super type ), #)) kotlin/Int>>|>() + } + + } + + } + + } + +FILE RAW TO BODY: +FILE: [ResolvedTo(BODY_RESOLVE)] classAnnotationsInLocalClass.kt + @R|kotlin/annotation/Target|[Types](allowedTargets = vararg(Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.CLASS|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.VALUE_PARAMETER|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE_PARAMETER|)) public final [ResolvedTo(BODY_RESOLVE)] annotation class Anno : R|kotlin/Annotation| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Anno] constructor([ResolvedTo(BODY_RESOLVE)] [CorrespondingProperty=/Anno.position] position: R|kotlin/String|): R|Anno| { + super() + } + + public final [ResolvedTo(BODY_RESOLVE)] [IsFromPrimaryConstructor=true] val position: R|kotlin/String| = R|/position| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Anno] get(): R|kotlin/String| + + } + public open [ResolvedTo(BODY_RESOLVE)] class A<[ResolvedTo(BODY_RESOLVE)] T> : R|kotlin/Any| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] constructor<[ResolvedTo(BODY_RESOLVE)] T>(): R|A| { + super() + } + + } + public final [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| { + [ResolvedTo(BODY_RESOLVE)] lval localProp: R|kotlin/Int| = Int(1) + @R|Anno|[Types](position = (String(class ), R|/localProp|)) local final [ResolvedTo(BODY_RESOLVE)] class OriginalClass<@R|Anno|[Types](position = (String(type param ), R|/localProp|)) [ResolvedTo(BODY_RESOLVE)] T : R|@R|Anno|(position = (String(bound ), R|/localProp|)) kotlin/collections/List<@R|Anno|(position = (String(nested bound ), R|/localProp|)) kotlin/Int>|> : R|@R|Anno|(position = (String(super type ), R|/localProp|)) A<@R|Anno|(position = (String(nested super type ), R|/localProp|)) kotlin/collections/List<@R|Anno|(position = (String(nested nested super type ), R|/localProp|)) kotlin/Int>>| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=OriginalClass] constructor<@R|Anno|[Types](position = (String(type param ), R|/localProp|)) [ResolvedTo(BODY_RESOLVE)] T : R|@R|Anno|(position = (String(bound ), R|/localProp|)) kotlin/collections/List<@R|Anno|(position = (String(nested bound ), R|/localProp|)) kotlin/Int>|>(): R|/OriginalClass| { + super(String(super type ), R|/localProp|)) A<@R|Anno|(position = (String(nested super type ), R|/localProp|)) kotlin/collections/List<@R|Anno|(position = (String(nested nested super type ), R|/localProp|)) kotlin/Int>>|>() + } + + public final [ResolvedTo(BODY_RESOLVE)] val prop: R|kotlin/Int| = Int(0) + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=OriginalClass] get(): R|kotlin/Int| + + @R|Anno|[Types](position = (String(class ), #)) local final [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=OriginalClass] class InnerClass<@R|Anno|[Types](position = (String(type param ), #)) [ResolvedTo(BODY_RESOLVE)] T : R|@R|Anno|(position = (String(bound ), #)) kotlin/collections/List<@R|Anno|(position = (String(nested bound ), #)) kotlin/Int>|, @R|Anno|[Types](position = (String(type param ), R|/localProp|)) [ResolvedTo(BODY_RESOLVE)] Outer(T) : R|@R|Anno|(position = (String(bound ), R|/localProp|)) kotlin/collections/List<@R|Anno|(position = (String(nested bound ), R|/localProp|)) kotlin/Int>|> : R|@R|Anno|(position = (String(super type ), #)) A<@R|Anno|(position = (String(nested super type ), #)) kotlin/collections/List<@R|Anno|(position = (String(nested nested super type ), #)) kotlin/Int>>| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=InnerClass] constructor<@R|Anno|[Types](position = (String(type param ), #)) [ResolvedTo(BODY_RESOLVE)] T : R|@R|Anno|(position = (String(bound ), #)) kotlin/collections/List<@R|Anno|(position = (String(nested bound ), #)) kotlin/Int>|>(): R|/OriginalClass.InnerClass| { + super(String(super type ), #)) A<@R|Anno|(position = (String(nested super type ), #)) kotlin/collections/List<@R|Anno|(position = (String(nested nested super type ), #)) kotlin/Int>>|>() + } + + } + + } + + } diff --git a/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/class/classAnnotationsInLocalClassScript.after.txt b/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/class/classAnnotationsInLocalClassScript.after.txt new file mode 100644 index 00000000000..29821ade8f8 --- /dev/null +++ b/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/class/classAnnotationsInLocalClassScript.after.txt @@ -0,0 +1,106 @@ +@R|Anno|(position = (String(bound ), R|/localProp|)) kotlin/collections/List<@R|Anno|(position = (String(nested bound ), R|/localProp|)) kotlin/Int> + context -> FirTypeParameterSymbol T from FirRegularClassSymbol /OriginalClass + anchor -> [] + +@R|Anno|(position = (String(nested bound ), R|/localProp|)) kotlin/Int + context -> FirTypeParameterSymbol T from FirRegularClassSymbol /OriginalClass + anchor -> [] + +@R|Anno|(position = (String(super type ), R|/localProp|)) A<@R|Anno|(position = (String(nested super type ), R|/localProp|)) kotlin/collections/List<@R|Anno|(position = (String(nested nested super type ), R|/localProp|)) kotlin/Int>> + context -> FirConstructorSymbol /OriginalClass.OriginalClass + anchor -> [] + +@R|Anno|(position = (String(nested super type ), R|/localProp|)) kotlin/collections/List<@R|Anno|(position = (String(nested nested super type ), R|/localProp|)) kotlin/Int> + context -> FirConstructorSymbol /OriginalClass.OriginalClass + anchor -> [FirRegularClassSymbol /OriginalClass] + +@R|Anno|(position = (String(nested nested super type ), R|/localProp|)) kotlin/Int + context -> FirConstructorSymbol /OriginalClass.OriginalClass + anchor -> [FirRegularClassSymbol /OriginalClass] + +@R|Anno|(position = (String(bound ), #)) kotlin/collections/List<@R|Anno|(position = (String(nested bound ), #)) kotlin/Int> + context -> FirTypeParameterSymbol T from FirRegularClassSymbol /OriginalClass.InnerClass + anchor -> [] + +@R|Anno|(position = (String(nested bound ), #)) kotlin/Int + context -> FirTypeParameterSymbol T from FirRegularClassSymbol /OriginalClass.InnerClass + anchor -> [] + +@R|Anno|(position = (String(super type ), #)) A<@R|Anno|(position = (String(nested super type ), #)) kotlin/collections/List<@R|Anno|(position = (String(nested nested super type ), #)) kotlin/Int>> + context -> FirConstructorSymbol /OriginalClass.InnerClass.InnerClass + anchor -> [] + +@R|Anno|(position = (String(nested super type ), #)) kotlin/collections/List<@R|Anno|(position = (String(nested nested super type ), #)) kotlin/Int> + context -> FirConstructorSymbol /OriginalClass.InnerClass.InnerClass + anchor -> [FirRegularClassSymbol /OriginalClass.InnerClass] + +@R|Anno|(position = (String(nested nested super type ), #)) kotlin/Int + context -> FirConstructorSymbol /OriginalClass.InnerClass.InnerClass + anchor -> [FirRegularClassSymbol /OriginalClass.InnerClass] + +@R|Anno|(position = (String(super type ), #)) A<@R|Anno|(position = (String(nested super type ), #)) kotlin/collections/List<@R|Anno|(position = (String(nested nested super type ), #)) kotlin/Int>> + context -> FirRegularClassSymbol /OriginalClass.InnerClass + anchor -> [FirRegularClassSymbol /OriginalClass.InnerClass] + +@R|Anno|(position = (String(nested super type ), #)) kotlin/collections/List<@R|Anno|(position = (String(nested nested super type ), #)) kotlin/Int> + context -> FirRegularClassSymbol /OriginalClass.InnerClass + anchor -> [FirRegularClassSymbol /OriginalClass.InnerClass] + +@R|Anno|(position = (String(nested nested super type ), #)) kotlin/Int + context -> FirRegularClassSymbol /OriginalClass.InnerClass + anchor -> [FirRegularClassSymbol /OriginalClass.InnerClass] + +@R|Anno|(position = (String(super type ), R|/localProp|)) A<@R|Anno|(position = (String(nested super type ), R|/localProp|)) kotlin/collections/List<@R|Anno|(position = (String(nested nested super type ), R|/localProp|)) kotlin/Int>> + context -> FirRegularClassSymbol /OriginalClass + anchor -> [FirRegularClassSymbol /OriginalClass] + +@R|Anno|(position = (String(nested super type ), R|/localProp|)) kotlin/collections/List<@R|Anno|(position = (String(nested nested super type ), R|/localProp|)) kotlin/Int> + context -> FirRegularClassSymbol /OriginalClass + anchor -> [FirRegularClassSymbol /OriginalClass] + +@R|Anno|(position = (String(nested nested super type ), R|/localProp|)) kotlin/Int + context -> FirRegularClassSymbol /OriginalClass + anchor -> [FirRegularClassSymbol /OriginalClass] + +FILE: [ResolvedTo(IMPORTS)] classAnnotationsInLocalClassScript.kts + context(