diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/FirDesignation.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/FirDesignation.kt index d7785b70e00..44657597dc4 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/FirDesignation.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/FirDesignation.kt @@ -165,7 +165,7 @@ private fun tryCollectDesignation(providedFile: FirFile?, target: FirElementWith return collectDesignationPathWithContainingClass(providedFile, target, containingClassId) } - is FirFileAnnotationsContainer -> return FirDesignation(path = listOf(target.containingFileSymbol.fir), target = target) + is FirFile -> return FirDesignation(target) is FirScript, is FirCodeFragment -> { requireIsInstance(target) @@ -365,7 +365,7 @@ fun FirElementWithResolveState.tryCollectDesignationWithOptionalFile(providedFil */ fun FirElementWithResolveState.tryCollectDesignation(providedFile: FirFile? = null): FirDesignation? = when (this) { is FirSyntheticProperty, is FirSyntheticPropertyAccessor -> unexpectedElementError(this) - is FirFileAnnotationsContainer, is FirDeclaration -> { + is FirDeclaration -> { val designation = tryCollectDesignation(providedFile = providedFile, target = this) designation?.takeIf { it.fileOrNull != null } } diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/targets/LLFirResolveTarget.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/targets/LLFirResolveTarget.kt index 48bff68ba20..58c3967d763 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/targets/LLFirResolveTarget.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/targets/LLFirResolveTarget.kt @@ -8,7 +8,6 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir.api.targets import org.jetbrains.kotlin.analysis.low.level.api.fir.api.FirDesignation import org.jetbrains.kotlin.analysis.low.level.api.fir.util.errorWithFirSpecificEntries import org.jetbrains.kotlin.fir.FirElementWithResolveState -import org.jetbrains.kotlin.fir.FirFileAnnotationsContainer import org.jetbrains.kotlin.fir.declarations.FirAnonymousInitializer import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration import org.jetbrains.kotlin.fir.declarations.FirClassLikeDeclaration @@ -130,7 +129,7 @@ internal sealed class LLFirResolveTarget(val designation: FirDesignation) { is FirClassLikeDeclaration -> fir.symbol.name.asString() is FirCallableDeclaration -> fir.symbol.name.asString() is FirAnonymousInitializer -> ("") - is FirFileAnnotationsContainer -> "" + is FirFile -> fir.name is FirScript -> fir.name.asString() else -> "???" } diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/element/builder/FirElementBuilder.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/element/builder/FirElementBuilder.kt index bf099ab2b36..9589b925d6b 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/element/builder/FirElementBuilder.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/element/builder/FirElementBuilder.kt @@ -76,6 +76,7 @@ internal class FirElementBuilder(private val moduleComponents: LLFirModuleResolv private fun doKtElementHasCorrespondingFirElement(ktElement: KtElement): Boolean = when (ktElement) { is KtImportList -> false + is KtFileAnnotationList -> false else -> true } } @@ -208,7 +209,6 @@ internal class FirElementBuilder(private val moduleComponents: LLFirModuleResolv when (anchor) { is KtPackageDirective -> declaration.packageDirective - is KtFileAnnotationList -> declaration.annotationsContainer?.also { it.lazyResolveToPhase(FirResolvePhase.ANNOTATION_ARGUMENTS) } is KtImportDirective -> { declaration.lazyResolveToPhase(FirResolvePhase.IMPORTS) declaration.imports.find { it.psi == anchor } @@ -221,11 +221,6 @@ internal class FirElementBuilder(private val moduleComponents: LLFirModuleResolv ) private fun KtElement.fileHeaderAnchorElement(): KtElement? { - /** - * File annotations already covered by [getFirForElementInsideAnnotations], but we have to cover the list itself - */ - if (this is KtFileAnnotationList) return this - return parentsWithSelf.find { it is KtPackageDirective || it is KtImportDirective } as? KtElement } diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/lazy/resolve/LLFirResolveDesignationCollector.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/lazy/resolve/LLFirResolveDesignationCollector.kt index 1585da54fba..5160de119d2 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/lazy/resolve/LLFirResolveDesignationCollector.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/lazy/resolve/LLFirResolveDesignationCollector.kt @@ -13,7 +13,6 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.api.targets.asResolveTarg import org.jetbrains.kotlin.analysis.low.level.api.fir.api.throwUnexpectedFirElementError import org.jetbrains.kotlin.analysis.low.level.api.fir.api.tryCollectDesignation import org.jetbrains.kotlin.fir.FirElementWithResolveState -import org.jetbrains.kotlin.fir.FirFileAnnotationsContainer import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.synthetic.FirSyntheticProperty import org.jetbrains.kotlin.fir.declarations.synthetic.FirSyntheticPropertyAccessor @@ -67,7 +66,6 @@ internal object LLFirResolveDesignationCollector { */ private fun FirElementWithResolveState.shouldBeResolved() = when (this) { is FirDeclaration -> shouldBeResolved() - is FirFileAnnotationsContainer -> annotations.isNotEmpty() else -> throwUnexpectedFirElementError(this) } diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/lazy/resolve/NonLocalAnnotationVisitor.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/lazy/resolve/NonLocalAnnotationVisitor.kt index 7d33d39523d..616f9a187b7 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/lazy/resolve/NonLocalAnnotationVisitor.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/lazy/resolve/NonLocalAnnotationVisitor.kt @@ -8,7 +8,6 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve import org.jetbrains.kotlin.fir.FirAnnotationContainer import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirElementWithResolveState -import org.jetbrains.kotlin.fir.FirFileAnnotationsContainer import org.jetbrains.kotlin.fir.declarations.FirAnonymousInitializer import org.jetbrains.kotlin.fir.declarations.FirBackingField import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration @@ -18,6 +17,7 @@ import org.jetbrains.kotlin.fir.declarations.FirDanglingModifierList import org.jetbrains.kotlin.fir.declarations.FirEnumEntry import org.jetbrains.kotlin.fir.declarations.FirErrorPrimaryConstructor import org.jetbrains.kotlin.fir.declarations.FirErrorProperty +import org.jetbrains.kotlin.fir.declarations.FirFile import org.jetbrains.kotlin.fir.declarations.FirFunction import org.jetbrains.kotlin.fir.declarations.FirMemberDeclaration import org.jetbrains.kotlin.fir.declarations.FirProperty @@ -102,8 +102,8 @@ internal abstract class NonLocalAnnotationVisitor : FirVisitor() { visitAnnotation(errorAnnotationCall, data) } - override fun visitFileAnnotationsContainer(fileAnnotationsContainer: FirFileAnnotationsContainer, data: T) { - visitAnnotationContainer(fileAnnotationsContainer, data) + override fun visitFile(file: FirFile, data: T) { + visitAnnotationContainer(file, data) } override fun visitDanglingModifierList(danglingModifierList: FirDanglingModifierList, data: T) { diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/lazy/resolve/RecursiveNonLocalAnnotationVisitor.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/lazy/resolve/RecursiveNonLocalAnnotationVisitor.kt index 5f4f6616cb9..2136807b12b 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/lazy/resolve/RecursiveNonLocalAnnotationVisitor.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/lazy/resolve/RecursiveNonLocalAnnotationVisitor.kt @@ -20,7 +20,6 @@ internal abstract class RecursiveNonLocalAnnotationVisitor : NonLocalAnnotati override fun visitFile(file: FirFile, data: T) { super.visitFile(file, data) - file.annotationsContainer?.accept(this, data) file.forEachDeclaration { it.accept(this, data) } } 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 3c7036e4ad7..00335697319 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 @@ -187,8 +187,12 @@ private class LLFirAnnotationArgumentsTargetResolver(resolveTarget: LLFirResolve } target is FirScript -> target.transformAnnotations(transformer.declarationsTransformer, ResolutionMode.ContextIndependent) + target is FirFile -> transformer.declarationsTransformer.withFile(target) { + target.transformAnnotations(transformer.declarationsTransformer, ResolutionMode.ContextIndependent) + } + target.isRegularDeclarationWithAnnotation -> target.transformSingle(transformer, ResolutionMode.ContextIndependent) - target is FirCodeFragment || target is FirFile -> {} + target is FirCodeFragment -> {} else -> throwUnexpectedFirElementError(target) } } @@ -199,7 +203,6 @@ internal val FirElementWithResolveState.isRegularDeclarationWithAnnotation: Bool is FirCallableDeclaration, is FirAnonymousInitializer, is FirDanglingModifierList, - is FirFileAnnotationsContainer, is FirTypeAlias, -> 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 5a684ba64b8..3a19c6af47b 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 @@ -139,8 +139,6 @@ private class LLFirBodyTargetResolver(target: LLFirResolveTarget) : LLFirAbstrac is FirFile -> { if (target.resolvePhase >= resolverPhase) return true - target.annotationsContainer?.lazyResolveToPhase(resolverPhase) - // resolve file CFG graph here, to do this we need to have property blocks resoled resolveMembersForControlFlowGraph(target) performCustomResolveUnderLock(target) { @@ -311,7 +309,6 @@ private class LLFirBodyTargetResolver(target: LLFirResolveTarget) : LLFirAbstrac is FirVariable -> resolve(target, BodyStateKeepers.VARIABLE) is FirAnonymousInitializer -> resolve(target, BodyStateKeepers.ANONYMOUS_INITIALIZER) is FirDanglingModifierList, - is FirFileAnnotationsContainer, is FirTypeAlias, -> { // No bodies here 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 57e13af6da8..f65ebc1478b 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 @@ -15,7 +15,6 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.util.checkDeprecationProv import org.jetbrains.kotlin.analysis.utils.errors.requireIsInstance import org.jetbrains.kotlin.fir.FirAnnotationContainer import org.jetbrains.kotlin.fir.FirElementWithResolveState -import org.jetbrains.kotlin.fir.FirFileAnnotationsContainer import org.jetbrains.kotlin.fir.caches.firCachesFactory import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.annotationPlatformSupport @@ -97,8 +96,7 @@ private class LLFirCompilerRequiredAnnotationsTargetResolver( override fun doResolveWithoutLock(target: FirElementWithResolveState): Boolean { when (target) { - is FirFile -> return false - is FirRegularClass, is FirScript, is FirCodeFragment -> {} + is FirFile, is FirScript, is FirRegularClass, is FirCodeFragment -> {} else -> { if (!target.isRegularDeclarationWithAnnotation) { throwUnexpectedFirElementError(target) @@ -107,13 +105,18 @@ private class LLFirCompilerRequiredAnnotationsTargetResolver( } requireIsInstance(target) - resolveTargetDeclaration(target) + if (target is FirFile) { + transformer.annotationTransformer.withFileAndFileScopes(target) { + resolveTargetDeclaration(target) + } + } else { + resolveTargetDeclaration(target) + } return true } override fun doLazyResolveUnderLock(target: FirElementWithResolveState) { - if (target is FirFile) return throwUnexpectedFirElementError(target) } @@ -211,7 +214,7 @@ private class LLFirCompilerRequiredAnnotationsTargetResolver( } for ((declaration, annotations) in annotationMap) { - if (declaration is FirProperty || declaration is FirFileAnnotationsContainer) continue + if (declaration is FirProperty || declaration is FirFile) continue requireIsInstance(declaration) deprecations[declaration] = declaration.extractDeprecationInfoPerUseSite( diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirContractsLazyResolver.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirContractsLazyResolver.kt index 1e251970d17..679e8dfa5fa 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirContractsLazyResolver.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirContractsLazyResolver.kt @@ -12,7 +12,6 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.util.blockGuard import org.jetbrains.kotlin.analysis.low.level.api.fir.util.checkContractDescriptionIsResolved import org.jetbrains.kotlin.analysis.low.level.api.fir.util.isCallableWithSpecialBody import org.jetbrains.kotlin.fir.FirElementWithResolveState -import org.jetbrains.kotlin.fir.FirFileAnnotationsContainer import org.jetbrains.kotlin.fir.contracts.FirRawContractDescription import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.impl.FirPrimaryConstructor @@ -80,7 +79,6 @@ private class LLFirContractsTargetResolver(target: LLFirResolveTarget) : LLFirAb is FirFile, is FirScript, is FirCodeFragment, - is FirFileAnnotationsContainer, is FirDanglingModifierList, -> { // No contracts here diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirImplicitTypesLazyResolver.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirImplicitTypesLazyResolver.kt index ec689ce2ff1..6012eacf72a 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirImplicitTypesLazyResolver.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirImplicitTypesLazyResolver.kt @@ -10,7 +10,6 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.api.throwUnexpectedFirEle import org.jetbrains.kotlin.analysis.low.level.api.fir.file.structure.LLFirDeclarationModificationService import org.jetbrains.kotlin.analysis.low.level.api.fir.util.checkReturnTypeRefIsResolved import org.jetbrains.kotlin.fir.FirElementWithResolveState -import org.jetbrains.kotlin.fir.FirFileAnnotationsContainer import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.isCopyCreatedInScope @@ -198,7 +197,6 @@ internal class LLFirImplicitBodyTargetResolver( target is FirCodeFragment || target is FirAnonymousInitializer || target is FirDanglingModifierList || - target is FirFileAnnotationsContainer || target is FirEnumEntry || target is FirErrorProperty || target is FirScript @@ -208,9 +206,8 @@ internal class LLFirImplicitBodyTargetResolver( else -> throwUnexpectedFirElementError(target) } - if (target is FirDeclaration) { - target.forEachDeclarationWhichCanHavePostponedSymbols(::publishPostponedSymbols) - } + @Suppress("USELESS_CAST") // K2 warning suppression, TODO: KT-62472 + (target as FirDeclaration).forEachDeclarationWhichCanHavePostponedSymbols(::publishPostponedSymbols) } private fun publishPostponedSymbols(target: FirCallableDeclaration) { diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirTargetResolver.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirTargetResolver.kt index dadfeb23c3d..ab4da792ac8 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirTargetResolver.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirTargetResolver.kt @@ -158,9 +158,6 @@ internal abstract class LLFirTargetResolver( target is FirField && target.origin == FirDeclarationOrigin.Synthetic.DelegateField || target is FirConstructor -> { containingClass(target).lazyResolveToPhase(resolverPhase) } - - // Effectively, file annotation container is a part of FirFile, so we have to resolve it before - target is FirFile -> target.annotationsContainer?.lazyResolveToPhase(resolverPhase) } } 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 032d2952467..e307aa9228b 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 @@ -15,7 +15,6 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.util.checkTypeRefIsResolv import org.jetbrains.kotlin.analysis.low.level.api.fir.util.errorWithFirSpecificEntries import org.jetbrains.kotlin.fir.FirAnnotationContainer import org.jetbrains.kotlin.fir.FirElementWithResolveState -import org.jetbrains.kotlin.fir.FirFileAnnotationsContainer import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.resolve.transformers.FirTypeResolveTransformer import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase @@ -105,14 +104,14 @@ private class LLFirTypeTargetResolver(target: LLFirResolveTarget) : LLFirTargetR is FirProperty -> resolve(target, TypeStateKeepers.PROPERTY) is FirCallableDeclaration, is FirDanglingModifierList, - is FirFileAnnotationsContainer, + is FirFile, is FirTypeAlias, is FirScript, is FirRegularClass, is FirAnonymousInitializer, -> rawResolve(target) - is FirFile, is FirCodeFragment -> {} + is FirCodeFragment -> {} else -> errorWithAttachment("Unknown declaration ${target::class.simpleName}") { withFirEntry("declaration", target) } @@ -132,9 +131,7 @@ private class LLFirTypeTargetResolver(target: LLFirResolveTarget) : LLFirTargetR resolveOutsideClassBody(target, transformer::transformDelegatedConstructorCall) } is FirScript -> resolveScriptTypes(target) - is FirDanglingModifierList, is FirFileAnnotationsContainer, is FirCallableDeclaration, is FirTypeAlias, - is FirAnonymousInitializer, - -> { + is FirDanglingModifierList, is FirCallableDeclaration, is FirTypeAlias, is FirAnonymousInitializer -> { if (target is FirField && target.origin == FirDeclarationOrigin.Synthetic.DelegateField) { // delegated field should be resolved in the same context as super types resolveOutsideClassBody(target, transformer::transformDelegateField) @@ -143,6 +140,7 @@ private class LLFirTypeTargetResolver(target: LLFirResolveTarget) : LLFirTargetR } } + is FirFile -> transformer.withFileScope(target) { target.transformAnnotations(transformer, null) } is FirRegularClass -> resolveClassTypes(target) else -> errorWithAttachment("Unknown declaration ${target::class.simpleName}") { withFirEntry("declaration", target) diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/util/ContextCollector.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/util/ContextCollector.kt index 3fae8c6ae84..cfb92ca570f 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/util/ContextCollector.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/util/ContextCollector.kt @@ -452,7 +452,7 @@ private class ContextCollectorVisitor( private fun Processor.processFileHeader(file: FirFile) { process(file.packageDirective) processList(file.imports) - process(file.annotationsContainer) + processList(file.annotations) } /** diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/util/containingFileUtils.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/util/containingFileUtils.kt index 721ba33e7c3..08c66910039 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/util/containingFileUtils.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/util/containingFileUtils.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ @@ -7,7 +7,6 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir.util import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.llFirResolvableSession import org.jetbrains.kotlin.fir.FirElementWithResolveState -import org.jetbrains.kotlin.fir.FirFileAnnotationsContainer import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.psi import org.jetbrains.kotlin.fir.resolve.providers.firProvider @@ -18,7 +17,6 @@ fun FirElementWithResolveState.getContainingFile(): FirFile? { return when (this) { is FirFile -> this is FirScript -> provider.getFirScriptContainerFile(symbol) - is FirFileAnnotationsContainer -> containingFileSymbol.fir is FirTypeParameter -> containingDeclarationSymbol.fir.getContainingFile() is FirPropertyAccessor -> propertySymbol.fir.getContainingFile() is FirValueParameter -> containingFunctionSymbol.fir.getContainingFile() diff --git a/analysis/low-level-api-fir/testData/contextCollector/fileAnnotation.txt b/analysis/low-level-api-fir/testData/contextCollector/fileAnnotation.txt index 6e658c8a28a..a21dfde6686 100644 --- a/analysis/low-level-api-fir/testData/contextCollector/fileAnnotation.txt +++ b/analysis/low-level-api-fir/testData/contextCollector/fileAnnotation.txt @@ -14,7 +14,6 @@ Tower Data Context: FILE: [ResolvedTo(IMPORTS)] fileAnnotation.kt @FILE:Anno[Unresolved]() - [ResolvedTo(RAW_FIR)] annotations container @Target[Unresolved](LAZY_EXPRESSION) public final? [ResolvedTo(RAW_FIR)] annotation class Anno : R|kotlin/Annotation| { public? [ResolvedTo(RAW_FIR)] constructor(): R|Anno| { LAZY_super diff --git a/analysis/low-level-api-fir/testData/getOrBuildFir/annotations/fileAnnotation.txt b/analysis/low-level-api-fir/testData/getOrBuildFir/annotations/fileAnnotation.txt index 3539865b5dc..cb32890c820 100644 --- a/analysis/low-level-api-fir/testData/getOrBuildFir/annotations/fileAnnotation.txt +++ b/analysis/low-level-api-fir/testData/getOrBuildFir/annotations/fileAnnotation.txt @@ -8,4 +8,3 @@ FIR element rendered: FIR FILE: FILE: [ResolvedTo(ANNOTATION_ARGUMENTS)] fileAnnotation.kt @FILE:R|kotlin/Suppress|[Types](names = vararg(String())) - [ResolvedTo(ANNOTATION_ARGUMENTS)] annotations container diff --git a/analysis/low-level-api-fir/testData/getOrBuildFir/annotations/fileAnnotationScript.txt b/analysis/low-level-api-fir/testData/getOrBuildFir/annotations/fileAnnotationScript.txt index ca635e1c183..d4f0c53c1e8 100644 --- a/analysis/low-level-api-fir/testData/getOrBuildFir/annotations/fileAnnotationScript.txt +++ b/analysis/low-level-api-fir/testData/getOrBuildFir/annotations/fileAnnotationScript.txt @@ -8,7 +8,6 @@ FIR element rendered: FIR FILE: FILE: [ResolvedTo(ANNOTATION_ARGUMENTS)] fileAnnotationScript.kts @FILE:R|kotlin/Suppress|[Types](names = vararg(String())) - [ResolvedTo(ANNOTATION_ARGUMENTS)] annotations container context(