From 256d83b0058ca144f97e207b3f071f41a13ae93f Mon Sep 17 00:00:00 2001 From: Dmitrii Gridin Date: Fri, 9 Feb 2024 19:55:03 +0100 Subject: [PATCH] [LL FIR] support lazy resolve of script declaration But support for entries still is not implemented yet ^KT-62840 --- .../level/api/fir/util/declarationUtils.kt | 2 + .../annotations/destructuringAnnotation.txt | 38 +++++++++---------- .../destructionWithNoRValueScript.txt | 8 ++-- .../declarations/destructuringScript.txt | 24 ++++++------ 4 files changed, 37 insertions(+), 35 deletions(-) diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/util/declarationUtils.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/util/declarationUtils.kt index b15755e2212..4e514491356 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/util/declarationUtils.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/util/declarationUtils.kt @@ -235,6 +235,8 @@ internal val FirCallableSymbol<*>.isLocalForLazyResolutionPurposes: Boolean // We should treat result$$ property as non-local explicitly as its CallableId is local // TODO: can be dropped after KT-65523 fir.origin == FirDeclarationOrigin.ScriptCustomization.ResultProperty -> false + // Destructuring declaration container should be treated as a non-local as it is a top-level script declaration + fir.origin == FirDeclarationOrigin.Synthetic.ScriptTopLevelDestructuringDeclarationContainer -> false else -> callableId.isLocal || fir.status.visibility == Visibilities.Local } diff --git a/analysis/low-level-api-fir/testData/getOrBuildFir/annotations/destructuringAnnotation.txt b/analysis/low-level-api-fir/testData/getOrBuildFir/annotations/destructuringAnnotation.txt index 1fdd8e2a837..16685a81702 100644 --- a/analysis/low-level-api-fir/testData/getOrBuildFir/annotations/destructuringAnnotation.txt +++ b/analysis/low-level-api-fir/testData/getOrBuildFir/annotations/destructuringAnnotation.txt @@ -3,47 +3,47 @@ FIR element: FirAnnotationCallImpl FIR source kind: KtRealSourceElementKind FIR element rendered: -@DestrAnno[Unresolved](LAZY_EXPRESSION) +@R|DestrAnno|[Types](s = (String(destr 1 ), R|/prop|)) FIR FILE: FILE: [ResolvedTo(IMPORTS)] destructuringAnnotation.kts - context(