From 51f6525238e61fd80d5937556e6d45370154b6a7 Mon Sep 17 00:00:00 2001 From: Dmitrii Gridin Date: Tue, 19 Dec 2023 15:12:52 +0100 Subject: [PATCH] [LL FIR] LLFirCompilerAnnotationsLazyResolver: pass correct ScopeSession We should use the declaration-site session to have stable resolution order. The same scheme is applicable during regular lazy resolution calls. ^KT-63547 Fixed --- .../diagnostics/annotationWithEnumFromDuplicatedLibrary.txt | 3 --- .../fir/transformers/LLFirCompilerAnnotationsLazyResolver.kt | 5 +++-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/analysis/analysis-api/testData/components/diagnosticsProvider/diagnostics/annotationWithEnumFromDuplicatedLibrary.txt b/analysis/analysis-api/testData/components/diagnosticsProvider/diagnostics/annotationWithEnumFromDuplicatedLibrary.txt index 53e48e6d260..9f370a89565 100644 --- a/analysis/analysis-api/testData/components/diagnosticsProvider/diagnostics/annotationWithEnumFromDuplicatedLibrary.txt +++ b/analysis/analysis-api/testData/components/diagnosticsProvider/diagnostics/annotationWithEnumFromDuplicatedLibrary.txt @@ -1,4 +1 @@ Diagnostics from elements: - for PSI element of type KtAnnotationEntry at (34,1-12) - WRONG_ANNOTATION_TARGET text ranges: [(114,125)] - PSI: KtAnnotationEntry at (34,1-12) diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirCompilerAnnotationsLazyResolver.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirCompilerAnnotationsLazyResolver.kt index 9a4666715a5..f2539f5c5ba 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirCompilerAnnotationsLazyResolver.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirCompilerAnnotationsLazyResolver.kt @@ -69,11 +69,12 @@ private class LLFirCompilerRequiredAnnotationsTargetResolver( symbol.lazyResolveToPhase(resolverPhase.previous) val designation = regularClass.collectDesignationWithFile().asResolveTarget() + val targetSession = designation.target.llFirSession val resolver = LLFirCompilerRequiredAnnotationsTargetResolver( designation, lockProvider, - designation.target.llFirSession, - scopeSession, + targetSession, + targetSession.getScopeSession(), this, )