[LL FIR] avoid body resolve during getOrBuildFir for super types

This also covers a case with annotations on a super type entry

^KT-61789 Fixed
This commit is contained in:
Dmitrii Gridin
2023-10-10 16:02:04 +02:00
committed by Space Team
parent 515e05cd94
commit 90102ad8b7
14 changed files with 97 additions and 86 deletions
@@ -7,11 +7,11 @@ R|A|
FIR FILE:
FILE: [ResolvedTo(IMPORTS)] superType.kt
public abstract [ResolvedTo(STATUS)] interface A : R|kotlin/Any| {
public? final? [ResolvedTo(SUPER_TYPES)] interface A : R|kotlin/Any| {
}
public final [ResolvedTo(BODY_RESOLVE)] class C : R|A| {
public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=C] constructor(): R|C| {
super<R|kotlin/Any|>()
public final [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] class C : R|A| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=C] constructor(): R|C| {
LAZY_super<<implicit>>
}
}
}
@@ -11,12 +11,12 @@ FILE: [ResolvedTo(IMPORTS)] superTypeScript.kts
SCRIPT: [ResolvedTo(TYPES)] <script-superTypeScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
public abstract [ResolvedTo(STATUS)] interface A : R|kotlin/Any| {
public? final? [ResolvedTo(SUPER_TYPES)] interface A : R|kotlin/Any| {
}
public final [ResolvedTo(BODY_RESOLVE)] class C : R|A| {
public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=C] constructor(): R|C| {
super<R|kotlin/Any|>()
public final [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] class C : R|A| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=C] constructor(): R|C| {
LAZY_super<<implicit>>
}
}
}