diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirAnnotationArgumentsLazyResolver.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirAnnotationArgumentsLazyResolver.kt index 238b423294f..4908ff2d889 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirAnnotationArgumentsLazyResolver.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirAnnotationArgumentsLazyResolver.kt @@ -113,6 +113,8 @@ internal fun LLFirAbstractBodyTargetResolver.transformAnnotations(target: FirEle target.transformSingle(transformer, ResolutionMode.ContextIndependent) } + target is FirScript -> {} + else -> throwUnexpectedFirElementError(target) } } @@ -124,7 +126,6 @@ internal val FirElementWithResolveState.isRegularDeclarationWithAnnotation: Bool is FirDanglingModifierList, is FirFileAnnotationsContainer, is FirTypeAlias, - is FirScript, -> true else -> false } diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirBodyLazyResolver.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirBodyLazyResolver.kt index 33e635bd7f7..c474a60bf0e 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirBodyLazyResolver.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirBodyLazyResolver.kt @@ -142,7 +142,7 @@ private class LLFirBodyTargetResolver( is FirField -> resolve(target, BodyStateKeepers.FIELD) is FirVariable -> resolve(target, BodyStateKeepers.VARIABLE) is FirAnonymousInitializer -> resolve(target, BodyStateKeepers.ANONYMOUS_INITIALIZER) - is FirScript -> resolve(target, BodyStateKeepers.SCRIPT) + is FirScript, is FirDanglingModifierList, is FirFileAnnotationsContainer, is FirTypeAlias, 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 2dff3bbb362..3d76905f4fe 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 @@ -104,8 +104,10 @@ private class LLFirCompilerRequiredAnnotationsTargetResolver( } override fun doResolveWithoutLock(target: FirElementWithResolveState): Boolean { - if (target !is FirRegularClass && !target.isRegularDeclarationWithAnnotation) { - throwUnexpectedFirElementError(target) + when { + target is FirScript -> return false + target is FirRegularClass || target.isRegularDeclarationWithAnnotation -> {} + else -> throwUnexpectedFirElementError(target) } requireIsInstance(target) @@ -295,6 +297,7 @@ private class LLFirCompilerRequiredAnnotationsTargetResolver( } override fun doLazyResolveUnderLock(target: FirElementWithResolveState) { + if (target is FirScript) return throwUnexpectedFirElementError(target) } } diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirStatusLazyResolver.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirStatusLazyResolver.kt index 6774a8ee106..7d3d3ba5714 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirStatusLazyResolver.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirStatusLazyResolver.kt @@ -173,6 +173,7 @@ private class LLFirStatusTargetResolver( is FirRegularClass -> { error("should be resolved in doResolveWithoutLock") } + is FirScript -> {} else -> { target.transformSingle(transformer, data = null) } diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirTypeLazyResolver.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirTypeLazyResolver.kt index 26b07482341..2b097726491 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirTypeLazyResolver.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirTypeLazyResolver.kt @@ -123,7 +123,8 @@ private class LLFirTypeTargetResolver( target.accept(transformer, null) } - is FirDanglingModifierList, is FirFileAnnotationsContainer, is FirCallableDeclaration, is FirTypeAlias, is FirScript -> { + is FirScript -> {} + is FirDanglingModifierList, is FirFileAnnotationsContainer, is FirCallableDeclaration, is FirTypeAlias -> { target.accept(transformer, null) } is FirRegularClass -> { diff --git a/analysis/low-level-api-fir/testdata/fileStructure/classMemberPropertyScript.lazy.resolve.txt b/analysis/low-level-api-fir/testdata/fileStructure/classMemberPropertyScript.lazy.resolve.txt index b4e854bbd13..456ed439829 100644 --- a/analysis/low-level-api-fir/testdata/fileStructure/classMemberPropertyScript.lazy.resolve.txt +++ b/analysis/low-level-api-fir/testdata/fileStructure/classMemberPropertyScript.lazy.resolve.txt @@ -1,27 +1,27 @@ FILE: [ResolvedTo(IMPORTS)] classMemberPropertyScript.kts - context(