[LL FIR] resolve class before delegate field

This is required to have stable resolution order to avoid concurrent
modifications and correct resolution context.
E.g., this commit fixes the resolution behavior of delegate field for
ANNOTATION_ARGUMENTS phase – now annotation argument resolves in the
correct scope

^KT-63042
This commit is contained in:
Dmitrii Gridin
2023-11-21 18:08:07 +01:00
committed by Space Team
parent 5a54520723
commit e3d91741ca
21 changed files with 198 additions and 261 deletions
@@ -39,7 +39,7 @@ FILE: [ResolvedTo(IMPORTS)] superTypeDelegatedExpression.kt
}
}
public final [ResolvedTo(STATUS)] class Child : R|test/Base|, R|test/MyInterface| {
public final [ResolvedTo(ANNOTATION_ARGUMENTS)] class Child : R|test/Base|, R|test/MyInterface| {
public [ResolvedTo(BODY_RESOLVE)] constructor([ResolvedTo(BODY_RESOLVE)] constructorParam: R|test/MyInterface|): R|test/Child| {
super<R|test/Base|>()
}
@@ -30,11 +30,11 @@ FILE: [ResolvedTo(IMPORTS)] superTypeDelegatedTypeRef.kt
}
}
public final [ResolvedTo(STATUS)] class Child : R|test/Base|, R|test/MyInterface| {
public final [ResolvedTo(ANNOTATION_ARGUMENTS)] class Child : R|test/Base|, R|test/MyInterface| {
private final [ResolvedTo(BODY_RESOLVE)] field $$delegate_0: R|test/MyInterface| = R|test/Base.Nested.Nested|()
public [ResolvedTo(BODY_RESOLVE)] constructor(): R|test/Child| {
super<R|test/Base|>()
}
}
}