[LL FIR] LLFirTargetResolver: introduce resolveDependencyTarget step

This entry point is required to be able to pre-resolve dependency
declarations.
E.g., fake override declaration shares annotation instances between
the original and the fake one, so we should resolve the original
firstly to avoid concurrent modification and correct context.
This will be done later.

This commit effectively only drops body resolution for a file annotation
container if the target element is not a file because this
is not required for correct resolution

^KT-63042
This commit is contained in:
Dmitrii Gridin
2023-11-20 16:23:55 +01:00
committed by Space Team
parent 0b07b86ec9
commit bc1e9fd2ea
7 changed files with 44 additions and 27 deletions
@@ -125,7 +125,7 @@ FILE: [ResolvedTo(IMPORTS)] annotationsScript.kts
BODY_RESOLVE:
FILE: [ResolvedTo(IMPORTS)] annotationsScript.kts
@FILE:R|kotlin/Suppress|[Types](names = vararg(String(1)))
[ResolvedTo(BODY_RESOLVE)] annotations container
[ResolvedTo(ANNOTATION_ARGUMENTS)] annotations container
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(TYPES)] <script-annotationsScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
@@ -144,3 +144,4 @@ FILE: [ResolvedTo(BODY_RESOLVE)] annotationsScript.kts
@R|kotlin/Suppress|[Types](names = vararg(String(2))) public final [ResolvedTo(BODY_RESOLVE)] fun resolveMe(): R|kotlin/Unit| {
}