[FIR] get rid of FirFileAnnotationsContainer

This element has been introduced to simplify resolution logic in LL FIR,
but now this element is redundant and only complicates the code as after
KT-56683 `FirFile` has real phases

^KT-65876 Fixed
This commit is contained in:
Dmitrii Gridin
2024-02-20 00:38:31 +01:00
committed by Space Team
parent 24c91bbf56
commit 17c128adf2
55 changed files with 109 additions and 484 deletions
@@ -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<FirDeclaration>(target)
@@ -365,7 +365,7 @@ fun FirElementWithResolveState.tryCollectDesignationWithOptionalFile(providedFil
*/
fun FirElementWithResolveState.tryCollectDesignation(providedFile: FirFile? = null): FirDesignation? = when (this) {
is FirSyntheticProperty, is FirSyntheticPropertyAccessor -> unexpectedElementError<FirElementWithResolveState>(this)
is FirFileAnnotationsContainer, is FirDeclaration -> {
is FirDeclaration -> {
val designation = tryCollectDesignation(providedFile = providedFile, target = this)
designation?.takeIf { it.fileOrNull != null }
}
@@ -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 -> ("<init-block>")
is FirFileAnnotationsContainer -> "<file annotations>"
is FirFile -> fir.name
is FirScript -> fir.name.asString()
else -> "???"
}
@@ -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
}
@@ -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)
}
@@ -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<T> : FirVisitor<Unit, T>() {
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) {
@@ -20,7 +20,6 @@ internal abstract class RecursiveNonLocalAnnotationVisitor<T> : NonLocalAnnotati
override fun visitFile(file: FirFile, data: T) {
super.visitFile(file, data)
file.annotationsContainer?.accept(this, data)
file.forEachDeclaration { it.accept(this, data) }
}
@@ -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
@@ -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
@@ -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<FirAnnotationContainer>(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<FirAnnotationContainer>(declaration)
deprecations[declaration] = declaration.extractDeprecationInfoPerUseSite(
@@ -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
@@ -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) {
@@ -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)
}
}
@@ -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)
@@ -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)
}
/**
@@ -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()
@@ -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<R|kotlin/Any|>
@@ -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
@@ -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(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
SCRIPT: [ResolvedTo(RAW_FIR)] <script-fileAnnotationScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
@@ -8,7 +8,6 @@ FIR element rendered:
FIR FILE:
FILE: [ResolvedTo(ANNOTATION_ARGUMENTS)] file.kt
@FILE:R|Ann|[Types]()
[ResolvedTo(ANNOTATION_ARGUMENTS)] annotations container
public final [ResolvedTo(STATUS)] annotation class Ann : R|kotlin/Annotation| {
public [ResolvedTo(STATUS)] [ContainingClassKey=Ann] constructor(): R|Ann| {
LAZY_super<R|kotlin/Any|>
@@ -8,7 +8,6 @@ FIR element rendered:
FIR FILE:
FILE: [ResolvedTo(ANNOTATION_ARGUMENTS)] fileScript.kts
@FILE:R|Ann|[Types]()
[ResolvedTo(ANNOTATION_ARGUMENTS)] annotations container
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
SCRIPT: [ResolvedTo(RAW_FIR)] <script-fileScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
@@ -1,12 +1,10 @@
KT element: KtFileAnnotationList
FIR element: FirFileAnnotationsContainerImpl
FIR source kind: KtRealSourceElementKind
FIR element: null
FIR source kind: null
FIR element rendered:
@FILE:R|kotlin/Suppress|[Types](names = vararg(String()))
[ResolvedTo(ANNOTATION_ARGUMENTS)] annotations container
null
FIR FILE:
FILE: [ResolvedTo(IMPORTS)] fileAnnotationList.kt
@FILE:R|kotlin/Suppress|[Types](names = vararg(String()))
[ResolvedTo(ANNOTATION_ARGUMENTS)] annotations container
FILE: [ResolvedTo(RAW_FIR)] fileAnnotationList.kt
@FILE:Suppress[Unresolved](LAZY_EXPRESSION)
@@ -1,15 +1,13 @@
KT element: KtFileAnnotationList
FIR element: FirFileAnnotationsContainerImpl
FIR source kind: KtRealSourceElementKind
FIR element: null
FIR source kind: null
FIR element rendered:
@FILE:R|kotlin/Suppress|[Types](names = vararg(String()))
[ResolvedTo(ANNOTATION_ARGUMENTS)] annotations container
null
FIR FILE:
FILE: [ResolvedTo(IMPORTS)] fileAnnotationListScript.kts
@FILE:R|kotlin/Suppress|[Types](names = vararg(String()))
[ResolvedTo(ANNOTATION_ARGUMENTS)] annotations container
FILE: [ResolvedTo(RAW_FIR)] fileAnnotationListScript.kts
@FILE:Suppress[Unresolved](LAZY_EXPRESSION)
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
SCRIPT: [ResolvedTo(RAW_FIR)] <script-fileAnnotationListScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
@@ -1,82 +1,69 @@
RAW_FIR:
FILE: [ResolvedTo(RAW_FIR)] annotations.kt
@FILE:Suppress[Unresolved](LAZY_EXPRESSION)
[ResolvedTo(RAW_FIR)] annotations container
@Suppress[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] fun resolveMe(): R|kotlin/Unit| { LAZY_BLOCK }
IMPORTS:
FILE: [ResolvedTo(IMPORTS)] annotations.kt
@FILE:Suppress[Unresolved](LAZY_EXPRESSION)
[ResolvedTo(RAW_FIR)] annotations container
@Suppress[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] fun resolveMe(): R|kotlin/Unit| { LAZY_BLOCK }
COMPILER_REQUIRED_ANNOTATIONS:
FILE: [ResolvedTo(IMPORTS)] annotations.kt
@FILE:Suppress[Unresolved](LAZY_EXPRESSION)
[ResolvedTo(RAW_FIR)] annotations container
@Suppress[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] fun resolveMe(): R|kotlin/Unit| { LAZY_BLOCK }
COMPANION_GENERATION:
FILE: [ResolvedTo(IMPORTS)] annotations.kt
@FILE:Suppress[Unresolved](LAZY_EXPRESSION)
[ResolvedTo(RAW_FIR)] annotations container
@Suppress[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(COMPANION_GENERATION)] fun resolveMe(): R|kotlin/Unit| { LAZY_BLOCK }
SUPER_TYPES:
FILE: [ResolvedTo(IMPORTS)] annotations.kt
@FILE:Suppress[Unresolved](LAZY_EXPRESSION)
[ResolvedTo(RAW_FIR)] annotations container
@Suppress[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(SUPER_TYPES)] fun resolveMe(): R|kotlin/Unit| { LAZY_BLOCK }
TYPES:
FILE: [ResolvedTo(IMPORTS)] annotations.kt
@FILE:Suppress[Unresolved](LAZY_EXPRESSION)
[ResolvedTo(RAW_FIR)] annotations container
@R|kotlin/Suppress|[Types](LAZY_EXPRESSION) public? final? [ResolvedTo(TYPES)] fun resolveMe(): R|kotlin/Unit| { LAZY_BLOCK }
STATUS:
FILE: [ResolvedTo(IMPORTS)] annotations.kt
@FILE:Suppress[Unresolved](LAZY_EXPRESSION)
[ResolvedTo(RAW_FIR)] annotations container
@R|kotlin/Suppress|[Types](LAZY_EXPRESSION) public final [ResolvedTo(STATUS)] fun resolveMe(): R|kotlin/Unit| { LAZY_BLOCK }
EXPECT_ACTUAL_MATCHING:
FILE: [ResolvedTo(IMPORTS)] annotations.kt
@FILE:Suppress[Unresolved](LAZY_EXPRESSION)
[ResolvedTo(RAW_FIR)] annotations container
@R|kotlin/Suppress|[Types](LAZY_EXPRESSION) public final [ResolvedTo(EXPECT_ACTUAL_MATCHING)] fun resolveMe(): R|kotlin/Unit| { LAZY_BLOCK }
CONTRACTS:
FILE: [ResolvedTo(IMPORTS)] annotations.kt
@FILE:Suppress[Unresolved](LAZY_EXPRESSION)
[ResolvedTo(RAW_FIR)] annotations container
@R|kotlin/Suppress|[Types](LAZY_EXPRESSION) public final [ResolvedTo(CONTRACTS)] fun resolveMe(): R|kotlin/Unit| {
}
IMPLICIT_TYPES_BODY_RESOLVE:
FILE: [ResolvedTo(IMPORTS)] annotations.kt
@FILE:Suppress[Unresolved](LAZY_EXPRESSION)
[ResolvedTo(RAW_FIR)] annotations container
@R|kotlin/Suppress|[Types](LAZY_EXPRESSION) public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fun resolveMe(): R|kotlin/Unit| {
}
ANNOTATION_ARGUMENTS:
FILE: [ResolvedTo(IMPORTS)] annotations.kt
@FILE:Suppress[Unresolved](LAZY_EXPRESSION)
[ResolvedTo(RAW_FIR)] annotations container
@R|kotlin/Suppress|[Types](names = vararg(String(2))) public final [ResolvedTo(ANNOTATION_ARGUMENTS)] fun resolveMe(): R|kotlin/Unit| {
}
BODY_RESOLVE:
FILE: [ResolvedTo(IMPORTS)] annotations.kt
@FILE:Suppress[Unresolved](LAZY_EXPRESSION)
[ResolvedTo(RAW_FIR)] annotations container
@R|kotlin/Suppress|[Types](names = vararg(String(2))) public final [ResolvedTo(BODY_RESOLVE)] fun resolveMe(): R|kotlin/Unit| {
}
FILE RAW TO BODY:
FILE: [ResolvedTo(BODY_RESOLVE)] annotations.kt
@FILE:R|kotlin/Suppress|[Types](names = vararg(String(1)))
[ResolvedTo(BODY_RESOLVE)] annotations container
@R|kotlin/Suppress|[Types](names = vararg(String(2))) public final [ResolvedTo(BODY_RESOLVE)] fun resolveMe(): R|kotlin/Unit| {
}
@@ -1,7 +1,6 @@
RAW_FIR:
FILE: [ResolvedTo(RAW_FIR)] annotationsScript.kts
@FILE:Suppress[Unresolved](LAZY_EXPRESSION)
[ResolvedTo(RAW_FIR)] annotations container
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
SCRIPT: [ResolvedTo(RAW_FIR)] <script-annotationsScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
@@ -12,7 +11,6 @@ FILE: [ResolvedTo(RAW_FIR)] annotationsScript.kts
IMPORTS:
FILE: [ResolvedTo(IMPORTS)] annotationsScript.kts
@FILE:Suppress[Unresolved](LAZY_EXPRESSION)
[ResolvedTo(RAW_FIR)] annotations container
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
SCRIPT: [ResolvedTo(RAW_FIR)] <script-annotationsScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
@@ -23,7 +21,6 @@ FILE: [ResolvedTo(IMPORTS)] annotationsScript.kts
COMPILER_REQUIRED_ANNOTATIONS:
FILE: [ResolvedTo(IMPORTS)] annotationsScript.kts
@FILE:Suppress[Unresolved](LAZY_EXPRESSION)
[ResolvedTo(RAW_FIR)] annotations container
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
SCRIPT: [ResolvedTo(RAW_FIR)] <script-annotationsScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
@@ -34,7 +31,6 @@ FILE: [ResolvedTo(IMPORTS)] annotationsScript.kts
COMPANION_GENERATION:
FILE: [ResolvedTo(IMPORTS)] annotationsScript.kts
@FILE:Suppress[Unresolved](LAZY_EXPRESSION)
[ResolvedTo(RAW_FIR)] annotations container
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
SCRIPT: [ResolvedTo(RAW_FIR)] <script-annotationsScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
@@ -45,7 +41,6 @@ FILE: [ResolvedTo(IMPORTS)] annotationsScript.kts
SUPER_TYPES:
FILE: [ResolvedTo(IMPORTS)] annotationsScript.kts
@FILE:Suppress[Unresolved](LAZY_EXPRESSION)
[ResolvedTo(RAW_FIR)] annotations container
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
SCRIPT: [ResolvedTo(RAW_FIR)] <script-annotationsScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
@@ -56,7 +51,6 @@ FILE: [ResolvedTo(IMPORTS)] annotationsScript.kts
TYPES:
FILE: [ResolvedTo(IMPORTS)] annotationsScript.kts
@FILE:Suppress[Unresolved](LAZY_EXPRESSION)
[ResolvedTo(RAW_FIR)] annotations container
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
SCRIPT: [ResolvedTo(RAW_FIR)] <script-annotationsScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
@@ -67,7 +61,6 @@ FILE: [ResolvedTo(IMPORTS)] annotationsScript.kts
STATUS:
FILE: [ResolvedTo(IMPORTS)] annotationsScript.kts
@FILE:Suppress[Unresolved](LAZY_EXPRESSION)
[ResolvedTo(RAW_FIR)] annotations container
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
SCRIPT: [ResolvedTo(RAW_FIR)] <script-annotationsScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
@@ -78,7 +71,6 @@ FILE: [ResolvedTo(IMPORTS)] annotationsScript.kts
EXPECT_ACTUAL_MATCHING:
FILE: [ResolvedTo(IMPORTS)] annotationsScript.kts
@FILE:Suppress[Unresolved](LAZY_EXPRESSION)
[ResolvedTo(RAW_FIR)] annotations container
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
SCRIPT: [ResolvedTo(RAW_FIR)] <script-annotationsScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
@@ -89,7 +81,6 @@ FILE: [ResolvedTo(IMPORTS)] annotationsScript.kts
CONTRACTS:
FILE: [ResolvedTo(IMPORTS)] annotationsScript.kts
@FILE:Suppress[Unresolved](LAZY_EXPRESSION)
[ResolvedTo(RAW_FIR)] 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>|
@@ -101,7 +92,6 @@ FILE: [ResolvedTo(IMPORTS)] annotationsScript.kts
IMPLICIT_TYPES_BODY_RESOLVE:
FILE: [ResolvedTo(IMPORTS)] annotationsScript.kts
@FILE:Suppress[Unresolved](LAZY_EXPRESSION)
[ResolvedTo(RAW_FIR)] 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>|
@@ -113,7 +103,6 @@ FILE: [ResolvedTo(IMPORTS)] annotationsScript.kts
ANNOTATION_ARGUMENTS:
FILE: [ResolvedTo(IMPORTS)] annotationsScript.kts
@FILE:Suppress[Unresolved](LAZY_EXPRESSION)
[ResolvedTo(RAW_FIR)] 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>|
@@ -125,7 +114,6 @@ FILE: [ResolvedTo(IMPORTS)] annotationsScript.kts
BODY_RESOLVE:
FILE: [ResolvedTo(IMPORTS)] annotationsScript.kts
@FILE:Suppress[Unresolved](LAZY_EXPRESSION)
[ResolvedTo(RAW_FIR)] 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>|
@@ -137,7 +125,6 @@ FILE: [ResolvedTo(IMPORTS)] annotationsScript.kts
FILE RAW TO BODY:
FILE: [ResolvedTo(BODY_RESOLVE)] annotationsScript.kts
@FILE:R|kotlin/Suppress|[Types](names = vararg(String(1)))
[ResolvedTo(BODY_RESOLVE)] annotations container
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(BODY_RESOLVE)] <script-annotationsScript.kts>
[ResolvedTo(BODY_RESOLVE)] lval args: R|kotlin/Array<kotlin/String>|
@@ -4,4 +4,4 @@ package one
@Target(AnnotationTarget.FILE)
annotation class Anno(val s: String)
// RESOLVE_FILE_ANNOTATIONS
// RESOLVE_FILE
@@ -2,7 +2,6 @@ RAW_FIR:
FILE: [ResolvedTo(RAW_FIR)] fileAnnotations.kt
@FILE:Deprecated[Unresolved](LAZY_EXPRESSION)
@FILE:Anno[Unresolved](LAZY_EXPRESSION)
[ResolvedTo(RAW_FIR)] annotations container
@Target[Unresolved](LAZY_EXPRESSION) public final? [ResolvedTo(RAW_FIR)] annotation class Anno : R|kotlin/Annotation| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=one/Anno.s] s: String): R|one/Anno| {
LAZY_super<R|kotlin/Any|>
@@ -17,7 +16,6 @@ IMPORTS:
FILE: [ResolvedTo(IMPORTS)] fileAnnotations.kt
@FILE:Deprecated[Unresolved](LAZY_EXPRESSION)
@FILE:Anno[Unresolved](LAZY_EXPRESSION)
[ResolvedTo(RAW_FIR)] annotations container
@Target[Unresolved](LAZY_EXPRESSION) public final? [ResolvedTo(RAW_FIR)] annotation class Anno : R|kotlin/Annotation| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=one/Anno.s] s: String): R|one/Anno| {
LAZY_super<R|kotlin/Any|>
@@ -29,10 +27,9 @@ FILE: [ResolvedTo(IMPORTS)] fileAnnotations.kt
}
COMPILER_REQUIRED_ANNOTATIONS:
FILE: [ResolvedTo(IMPORTS)] fileAnnotations.kt
FILE: [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] fileAnnotations.kt
@FILE:R|kotlin/Deprecated|[CompilerRequiredAnnotations](String())
@FILE:Anno[Unresolved](LAZY_EXPRESSION)
[ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotations container
@Target[Unresolved](LAZY_EXPRESSION) public final? [ResolvedTo(RAW_FIR)] annotation class Anno : R|kotlin/Annotation| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=one/Anno.s] s: String): R|one/Anno| {
LAZY_super<R|kotlin/Any|>
@@ -44,10 +41,9 @@ FILE: [ResolvedTo(IMPORTS)] fileAnnotations.kt
}
COMPANION_GENERATION:
FILE: [ResolvedTo(IMPORTS)] fileAnnotations.kt
FILE: [ResolvedTo(COMPANION_GENERATION)] fileAnnotations.kt
@FILE:R|kotlin/Deprecated|[CompilerRequiredAnnotations](String())
@FILE:Anno[Unresolved](LAZY_EXPRESSION)
[ResolvedTo(COMPANION_GENERATION)] annotations container
@Target[Unresolved](LAZY_EXPRESSION) public final? [ResolvedTo(RAW_FIR)] annotation class Anno : R|kotlin/Annotation| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=one/Anno.s] s: String): R|one/Anno| {
LAZY_super<R|kotlin/Any|>
@@ -59,10 +55,9 @@ FILE: [ResolvedTo(IMPORTS)] fileAnnotations.kt
}
SUPER_TYPES:
FILE: [ResolvedTo(IMPORTS)] fileAnnotations.kt
FILE: [ResolvedTo(SUPER_TYPES)] fileAnnotations.kt
@FILE:R|kotlin/Deprecated|[CompilerRequiredAnnotations](String())
@FILE:Anno[Unresolved](LAZY_EXPRESSION)
[ResolvedTo(SUPER_TYPES)] annotations container
@Target[Unresolved](LAZY_EXPRESSION) public final? [ResolvedTo(RAW_FIR)] annotation class Anno : R|kotlin/Annotation| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=one/Anno.s] s: String): R|one/Anno| {
LAZY_super<R|kotlin/Any|>
@@ -74,10 +69,9 @@ FILE: [ResolvedTo(IMPORTS)] fileAnnotations.kt
}
TYPES:
FILE: [ResolvedTo(IMPORTS)] fileAnnotations.kt
FILE: [ResolvedTo(TYPES)] fileAnnotations.kt
@FILE:R|kotlin/Deprecated|[Types](String())
@FILE:R|one/Anno|[Types](LAZY_EXPRESSION)
[ResolvedTo(TYPES)] annotations container
@R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FILE|) public final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=one/Anno.s] s: String): R|one/Anno| {
LAZY_super<R|kotlin/Any|>
@@ -89,10 +83,9 @@ FILE: [ResolvedTo(IMPORTS)] fileAnnotations.kt
}
STATUS:
FILE: [ResolvedTo(IMPORTS)] fileAnnotations.kt
FILE: [ResolvedTo(STATUS)] fileAnnotations.kt
@FILE:R|kotlin/Deprecated|[Types](String())
@FILE:R|one/Anno|[Types](LAZY_EXPRESSION)
[ResolvedTo(STATUS)] annotations container
@R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FILE|) public final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=one/Anno.s] s: String): R|one/Anno| {
LAZY_super<R|kotlin/Any|>
@@ -104,10 +97,9 @@ FILE: [ResolvedTo(IMPORTS)] fileAnnotations.kt
}
EXPECT_ACTUAL_MATCHING:
FILE: [ResolvedTo(IMPORTS)] fileAnnotations.kt
FILE: [ResolvedTo(EXPECT_ACTUAL_MATCHING)] fileAnnotations.kt
@FILE:R|kotlin/Deprecated|[Types](String())
@FILE:R|one/Anno|[Types](LAZY_EXPRESSION)
[ResolvedTo(EXPECT_ACTUAL_MATCHING)] annotations container
@R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FILE|) public final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=one/Anno.s] s: String): R|one/Anno| {
LAZY_super<R|kotlin/Any|>
@@ -119,10 +111,9 @@ FILE: [ResolvedTo(IMPORTS)] fileAnnotations.kt
}
CONTRACTS:
FILE: [ResolvedTo(IMPORTS)] fileAnnotations.kt
FILE: [ResolvedTo(CONTRACTS)] fileAnnotations.kt
@FILE:R|kotlin/Deprecated|[Types](String())
@FILE:R|one/Anno|[Types](LAZY_EXPRESSION)
[ResolvedTo(CONTRACTS)] annotations container
@R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FILE|) public final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=one/Anno.s] s: String): R|one/Anno| {
LAZY_super<R|kotlin/Any|>
@@ -134,10 +125,9 @@ FILE: [ResolvedTo(IMPORTS)] fileAnnotations.kt
}
IMPLICIT_TYPES_BODY_RESOLVE:
FILE: [ResolvedTo(IMPORTS)] fileAnnotations.kt
FILE: [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fileAnnotations.kt
@FILE:R|kotlin/Deprecated|[Types](String())
@FILE:R|one/Anno|[Types](LAZY_EXPRESSION)
[ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] annotations container
@R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FILE|) public final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=one/Anno.s] s: String): R|one/Anno| {
LAZY_super<R|kotlin/Any|>
@@ -149,10 +139,9 @@ FILE: [ResolvedTo(IMPORTS)] fileAnnotations.kt
}
ANNOTATION_ARGUMENTS:
FILE: [ResolvedTo(IMPORTS)] fileAnnotations.kt
FILE: [ResolvedTo(ANNOTATION_ARGUMENTS)] fileAnnotations.kt
@FILE:R|kotlin/Deprecated|[Types](message = String())
@FILE:R|one/Anno|[Types](s = String(anno))
[ResolvedTo(ANNOTATION_ARGUMENTS)] annotations container
@R|kotlin/annotation/Target|[Types](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FILE|) public final [ResolvedTo(STATUS)] annotation class Anno : R|kotlin/Annotation| {
public [ResolvedTo(STATUS)] [ContainingClassKey=Anno] constructor([ResolvedTo(STATUS)] [CorrespondingProperty=one/Anno.s] s: R|kotlin/String|): R|one/Anno| {
LAZY_super<R|kotlin/Any|>
@@ -164,10 +153,9 @@ FILE: [ResolvedTo(IMPORTS)] fileAnnotations.kt
}
BODY_RESOLVE:
FILE: [ResolvedTo(IMPORTS)] fileAnnotations.kt
FILE: [ResolvedTo(BODY_RESOLVE)] fileAnnotations.kt
@FILE:R|kotlin/Deprecated|[Types](message = String())
@FILE:R|one/Anno|[Types](s = String(anno))
[ResolvedTo(BODY_RESOLVE)] annotations container
@R|kotlin/annotation/Target|[Types](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FILE|) public final [ResolvedTo(STATUS)] annotation class Anno : R|kotlin/Annotation| {
public [ResolvedTo(STATUS)] [ContainingClassKey=Anno] constructor([ResolvedTo(STATUS)] [CorrespondingProperty=one/Anno.s] s: R|kotlin/String|): R|one/Anno| {
LAZY_super<R|kotlin/Any|>
@@ -182,7 +170,6 @@ FILE RAW TO BODY:
FILE: [ResolvedTo(BODY_RESOLVE)] fileAnnotations.kt
@FILE:R|kotlin/Deprecated|[Types](message = String())
@FILE:R|one/Anno|[Types](s = String(anno))
[ResolvedTo(BODY_RESOLVE)] annotations container
@R|kotlin/annotation/Target|[Types](allowedTargets = vararg(Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FILE|)) public final [ResolvedTo(BODY_RESOLVE)] annotation class Anno : R|kotlin/Annotation| {
public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Anno] constructor([ResolvedTo(BODY_RESOLVE)] [CorrespondingProperty=one/Anno.s] s: R|kotlin/String|): R|one/Anno| {
super<R|kotlin/Any|>()
@@ -4,4 +4,4 @@ package one
@Target(AnnotationTarget.FILE)
annotation class Anno(val s: String)
// RESOLVE_FILE_ANNOTATIONS
// RESOLVE_FILE
@@ -2,7 +2,6 @@ RAW_FIR:
FILE: [ResolvedTo(RAW_FIR)] fileAnnotationsScript.kts
@FILE:Deprecated[Unresolved](LAZY_EXPRESSION)
@FILE:Anno[Unresolved](LAZY_EXPRESSION)
[ResolvedTo(RAW_FIR)] annotations container
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
SCRIPT: [ResolvedTo(RAW_FIR)] <script-fileAnnotationsScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
@@ -22,7 +21,6 @@ IMPORTS:
FILE: [ResolvedTo(IMPORTS)] fileAnnotationsScript.kts
@FILE:Deprecated[Unresolved](LAZY_EXPRESSION)
@FILE:Anno[Unresolved](LAZY_EXPRESSION)
[ResolvedTo(RAW_FIR)] annotations container
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
SCRIPT: [ResolvedTo(RAW_FIR)] <script-fileAnnotationsScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
@@ -39,10 +37,9 @@ FILE: [ResolvedTo(IMPORTS)] fileAnnotationsScript.kts
COMPILER_REQUIRED_ANNOTATIONS:
FILE: [ResolvedTo(IMPORTS)] fileAnnotationsScript.kts
FILE: [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] fileAnnotationsScript.kts
@FILE:R|kotlin/Deprecated|[CompilerRequiredAnnotations](String())
@FILE:Anno[Unresolved](LAZY_EXPRESSION)
[ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotations container
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
SCRIPT: [ResolvedTo(RAW_FIR)] <script-fileAnnotationsScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
@@ -59,10 +56,9 @@ FILE: [ResolvedTo(IMPORTS)] fileAnnotationsScript.kts
COMPANION_GENERATION:
FILE: [ResolvedTo(IMPORTS)] fileAnnotationsScript.kts
FILE: [ResolvedTo(COMPANION_GENERATION)] fileAnnotationsScript.kts
@FILE:R|kotlin/Deprecated|[CompilerRequiredAnnotations](String())
@FILE:Anno[Unresolved](LAZY_EXPRESSION)
[ResolvedTo(COMPANION_GENERATION)] annotations container
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
SCRIPT: [ResolvedTo(RAW_FIR)] <script-fileAnnotationsScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
@@ -79,10 +75,9 @@ FILE: [ResolvedTo(IMPORTS)] fileAnnotationsScript.kts
SUPER_TYPES:
FILE: [ResolvedTo(IMPORTS)] fileAnnotationsScript.kts
FILE: [ResolvedTo(SUPER_TYPES)] fileAnnotationsScript.kts
@FILE:R|kotlin/Deprecated|[CompilerRequiredAnnotations](String())
@FILE:Anno[Unresolved](LAZY_EXPRESSION)
[ResolvedTo(SUPER_TYPES)] annotations container
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
SCRIPT: [ResolvedTo(RAW_FIR)] <script-fileAnnotationsScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
@@ -99,10 +94,9 @@ FILE: [ResolvedTo(IMPORTS)] fileAnnotationsScript.kts
TYPES:
FILE: [ResolvedTo(IMPORTS)] fileAnnotationsScript.kts
FILE: [ResolvedTo(TYPES)] fileAnnotationsScript.kts
@FILE:R|kotlin/Deprecated|[Types](String())
@FILE:R|one/Anno|[Types](LAZY_EXPRESSION)
[ResolvedTo(TYPES)] annotations container
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
SCRIPT: [ResolvedTo(RAW_FIR)] <script-fileAnnotationsScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
@@ -119,10 +113,9 @@ FILE: [ResolvedTo(IMPORTS)] fileAnnotationsScript.kts
STATUS:
FILE: [ResolvedTo(IMPORTS)] fileAnnotationsScript.kts
FILE: [ResolvedTo(STATUS)] fileAnnotationsScript.kts
@FILE:R|kotlin/Deprecated|[Types](String())
@FILE:R|one/Anno|[Types](LAZY_EXPRESSION)
[ResolvedTo(STATUS)] annotations container
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
SCRIPT: [ResolvedTo(RAW_FIR)] <script-fileAnnotationsScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
@@ -139,10 +132,9 @@ FILE: [ResolvedTo(IMPORTS)] fileAnnotationsScript.kts
EXPECT_ACTUAL_MATCHING:
FILE: [ResolvedTo(IMPORTS)] fileAnnotationsScript.kts
FILE: [ResolvedTo(EXPECT_ACTUAL_MATCHING)] fileAnnotationsScript.kts
@FILE:R|kotlin/Deprecated|[Types](String())
@FILE:R|one/Anno|[Types](LAZY_EXPRESSION)
[ResolvedTo(EXPECT_ACTUAL_MATCHING)] annotations container
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
SCRIPT: [ResolvedTo(RAW_FIR)] <script-fileAnnotationsScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
@@ -159,10 +151,9 @@ FILE: [ResolvedTo(IMPORTS)] fileAnnotationsScript.kts
CONTRACTS:
FILE: [ResolvedTo(IMPORTS)] fileAnnotationsScript.kts
FILE: [ResolvedTo(CONTRACTS)] fileAnnotationsScript.kts
@FILE:R|kotlin/Deprecated|[Types](String())
@FILE:R|one/Anno|[Types](LAZY_EXPRESSION)
[ResolvedTo(CONTRACTS)] annotations container
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
SCRIPT: [ResolvedTo(RAW_FIR)] <script-fileAnnotationsScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
@@ -179,10 +170,9 @@ FILE: [ResolvedTo(IMPORTS)] fileAnnotationsScript.kts
IMPLICIT_TYPES_BODY_RESOLVE:
FILE: [ResolvedTo(IMPORTS)] fileAnnotationsScript.kts
FILE: [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fileAnnotationsScript.kts
@FILE:R|kotlin/Deprecated|[Types](String())
@FILE:R|one/Anno|[Types](LAZY_EXPRESSION)
[ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] annotations container
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
SCRIPT: [ResolvedTo(RAW_FIR)] <script-fileAnnotationsScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
@@ -199,10 +189,9 @@ FILE: [ResolvedTo(IMPORTS)] fileAnnotationsScript.kts
ANNOTATION_ARGUMENTS:
FILE: [ResolvedTo(IMPORTS)] fileAnnotationsScript.kts
FILE: [ResolvedTo(ANNOTATION_ARGUMENTS)] fileAnnotationsScript.kts
@FILE:R|kotlin/Deprecated|[Types](message = String())
@FILE:R|one/Anno|[Types](s = String(anno))
[ResolvedTo(ANNOTATION_ARGUMENTS)] annotations container
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
SCRIPT: [ResolvedTo(RAW_FIR)] <script-fileAnnotationsScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
@@ -219,10 +208,9 @@ FILE: [ResolvedTo(IMPORTS)] fileAnnotationsScript.kts
BODY_RESOLVE:
FILE: [ResolvedTo(IMPORTS)] fileAnnotationsScript.kts
FILE: [ResolvedTo(BODY_RESOLVE)] fileAnnotationsScript.kts
@FILE:R|kotlin/Deprecated|[Types](message = String())
@FILE:R|one/Anno|[Types](s = String(anno))
[ResolvedTo(BODY_RESOLVE)] annotations container
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
SCRIPT: [ResolvedTo(RAW_FIR)] <script-fileAnnotationsScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
@@ -242,7 +230,6 @@ FILE RAW TO BODY:
FILE: [ResolvedTo(BODY_RESOLVE)] fileAnnotationsScript.kts
@FILE:R|kotlin/Deprecated|[Types](message = String())
@FILE:R|one/Anno|[Types](s = String(anno))
[ResolvedTo(BODY_RESOLVE)] annotations container
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(BODY_RESOLVE)] <script-fileAnnotationsScript.kts>
[ResolvedTo(BODY_RESOLVE)] lval args: R|kotlin/Array<kotlin/String>|
@@ -2,7 +2,6 @@ RAW_FIR:
FILE: [ResolvedTo(RAW_FIR)] fileElements.kt
@FILE:Deprecated[Unresolved](LAZY_EXPRESSION)
@FILE:Anno[Unresolved](LAZY_EXPRESSION)
[ResolvedTo(RAW_FIR)] annotations container
public final? [ResolvedTo(RAW_FIR)] annotation class Anno : R|kotlin/Annotation| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=one/Anno.i] i: Int): R|one/Anno| {
LAZY_super<R|kotlin/Any|>
@@ -41,7 +40,6 @@ IMPORTS:
FILE: [ResolvedTo(IMPORTS)] fileElements.kt
@FILE:Deprecated[Unresolved](LAZY_EXPRESSION)
@FILE:Anno[Unresolved](LAZY_EXPRESSION)
[ResolvedTo(RAW_FIR)] annotations container
public final? [ResolvedTo(RAW_FIR)] annotation class Anno : R|kotlin/Annotation| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=one/Anno.i] i: Int): R|one/Anno| {
LAZY_super<R|kotlin/Any|>
@@ -80,7 +78,6 @@ COMPILER_REQUIRED_ANNOTATIONS:
FILE: [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] fileElements.kt
@FILE:R|kotlin/Deprecated|[CompilerRequiredAnnotations](String(deprecated file))
@FILE:Anno[Unresolved](LAZY_EXPRESSION)
[ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotations container
public final? [ResolvedTo(RAW_FIR)] annotation class Anno : R|kotlin/Annotation| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=one/Anno.i] i: Int): R|one/Anno| {
LAZY_super<R|kotlin/Any|>
@@ -119,7 +116,6 @@ COMPANION_GENERATION:
FILE: [ResolvedTo(COMPANION_GENERATION)] fileElements.kt
@FILE:R|kotlin/Deprecated|[CompilerRequiredAnnotations](String(deprecated file))
@FILE:Anno[Unresolved](LAZY_EXPRESSION)
[ResolvedTo(COMPANION_GENERATION)] annotations container
public final? [ResolvedTo(RAW_FIR)] annotation class Anno : R|kotlin/Annotation| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=one/Anno.i] i: Int): R|one/Anno| {
LAZY_super<R|kotlin/Any|>
@@ -158,7 +154,6 @@ SUPER_TYPES:
FILE: [ResolvedTo(SUPER_TYPES)] fileElements.kt
@FILE:R|kotlin/Deprecated|[CompilerRequiredAnnotations](String(deprecated file))
@FILE:Anno[Unresolved](LAZY_EXPRESSION)
[ResolvedTo(SUPER_TYPES)] annotations container
public final? [ResolvedTo(RAW_FIR)] annotation class Anno : R|kotlin/Annotation| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=one/Anno.i] i: Int): R|one/Anno| {
LAZY_super<R|kotlin/Any|>
@@ -197,7 +192,6 @@ TYPES:
FILE: [ResolvedTo(TYPES)] fileElements.kt
@FILE:R|kotlin/Deprecated|[Types](String(deprecated file))
@FILE:R|one/Anno|[Types](LAZY_EXPRESSION)
[ResolvedTo(TYPES)] annotations container
public final? [ResolvedTo(RAW_FIR)] annotation class Anno : R|kotlin/Annotation| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=one/Anno.i] i: Int): R|one/Anno| {
LAZY_super<R|kotlin/Any|>
@@ -236,7 +230,6 @@ STATUS:
FILE: [ResolvedTo(STATUS)] fileElements.kt
@FILE:R|kotlin/Deprecated|[Types](String(deprecated file))
@FILE:R|one/Anno|[Types](LAZY_EXPRESSION)
[ResolvedTo(STATUS)] annotations container
public final? [ResolvedTo(RAW_FIR)] annotation class Anno : R|kotlin/Annotation| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=one/Anno.i] i: Int): R|one/Anno| {
LAZY_super<R|kotlin/Any|>
@@ -275,7 +268,6 @@ EXPECT_ACTUAL_MATCHING:
FILE: [ResolvedTo(EXPECT_ACTUAL_MATCHING)] fileElements.kt
@FILE:R|kotlin/Deprecated|[Types](String(deprecated file))
@FILE:R|one/Anno|[Types](LAZY_EXPRESSION)
[ResolvedTo(EXPECT_ACTUAL_MATCHING)] annotations container
public final? [ResolvedTo(RAW_FIR)] annotation class Anno : R|kotlin/Annotation| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=one/Anno.i] i: Int): R|one/Anno| {
LAZY_super<R|kotlin/Any|>
@@ -314,7 +306,6 @@ CONTRACTS:
FILE: [ResolvedTo(CONTRACTS)] fileElements.kt
@FILE:R|kotlin/Deprecated|[Types](String(deprecated file))
@FILE:R|one/Anno|[Types](LAZY_EXPRESSION)
[ResolvedTo(CONTRACTS)] annotations container
public final? [ResolvedTo(RAW_FIR)] annotation class Anno : R|kotlin/Annotation| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=one/Anno.i] i: Int): R|one/Anno| {
LAZY_super<R|kotlin/Any|>
@@ -353,7 +344,6 @@ IMPLICIT_TYPES_BODY_RESOLVE:
FILE: [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fileElements.kt
@FILE:R|kotlin/Deprecated|[Types](String(deprecated file))
@FILE:R|one/Anno|[Types](LAZY_EXPRESSION)
[ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] annotations container
public final? [ResolvedTo(RAW_FIR)] annotation class Anno : R|kotlin/Annotation| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=one/Anno.i] i: Int): R|one/Anno| {
LAZY_super<R|kotlin/Any|>
@@ -392,7 +382,6 @@ ANNOTATION_ARGUMENTS:
FILE: [ResolvedTo(ANNOTATION_ARGUMENTS)] fileElements.kt
@FILE:R|kotlin/Deprecated|[Types](message = String(deprecated file))
@FILE:R|one/Anno|[Types](i = Int(1))
[ResolvedTo(ANNOTATION_ARGUMENTS)] annotations container
public final [ResolvedTo(STATUS)] annotation class Anno : R|kotlin/Annotation| {
public [ResolvedTo(STATUS)] [ContainingClassKey=Anno] constructor([ResolvedTo(STATUS)] [CorrespondingProperty=one/Anno.i] i: R|kotlin/Int|): R|one/Anno| {
LAZY_super<R|kotlin/Any|>
@@ -431,7 +420,6 @@ BODY_RESOLVE:
FILE: [ResolvedTo(BODY_RESOLVE)] fileElements.kt
@FILE:R|kotlin/Deprecated|[Types](message = String(deprecated file))
@FILE:R|one/Anno|[Types](i = Int(1))
[ResolvedTo(BODY_RESOLVE)] annotations container
public final [ResolvedTo(STATUS)] annotation class Anno : R|kotlin/Annotation| {
public [ResolvedTo(STATUS)] [ContainingClassKey=Anno] constructor([ResolvedTo(STATUS)] [CorrespondingProperty=one/Anno.i] i: R|kotlin/Int|): R|one/Anno| {
LAZY_super<R|kotlin/Any|>
@@ -470,7 +458,6 @@ FILE RAW TO BODY:
FILE: [ResolvedTo(BODY_RESOLVE)] fileElements.kt
@FILE:R|kotlin/Deprecated|[Types](message = String(deprecated file))
@FILE:R|one/Anno|[Types](i = Int(1))
[ResolvedTo(BODY_RESOLVE)] annotations container
public final [ResolvedTo(BODY_RESOLVE)] annotation class Anno : R|kotlin/Annotation| {
public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Anno] constructor([ResolvedTo(BODY_RESOLVE)] [CorrespondingProperty=one/Anno.i] i: R|kotlin/Int|): R|one/Anno| {
super<R|kotlin/Any|>()
@@ -17,7 +17,6 @@ import org.jetbrains.kotlin.fir.declarations.FirFile
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.renderer.FirDeclarationRendererWithFilteredAttributes
import org.jetbrains.kotlin.fir.renderer.FirErrorExpressionExtendedRenderer
import org.jetbrains.kotlin.fir.renderer.FirFileAnnotationsContainerRenderer
import org.jetbrains.kotlin.fir.renderer.FirRenderer
import org.jetbrains.kotlin.fir.renderer.FirResolvePhaseRenderer
import org.jetbrains.kotlin.fir.resolve.calls.FirSyntheticPropertiesScope
@@ -48,12 +47,6 @@ abstract class AbstractFirLazyDeclarationResolveTestCase : AbstractAnalysisApiBa
testServices: TestServices,
firResolveSession: LLFirResolveSession,
): Pair<FirElementWithResolveState, ((FirResolvePhase) -> Unit)> = when {
Directives.RESOLVE_FILE_ANNOTATIONS in moduleStructure.allDirectives -> {
val annotationContainer = firResolveSession.getOrBuildFirFile(ktFile).annotationsContainer!!
annotationContainer to fun(phase: FirResolvePhase) {
annotationContainer.lazyResolveToPhase(phase)
}
}
Directives.RESOLVE_FILE in moduleStructure.allDirectives -> {
val session = firResolveSession.useSiteFirSession as LLFirResolvableModuleSession
val file = session.moduleComponents.firFileBuilder.buildRawFirFileWithCaching(ktFile)
@@ -187,7 +180,6 @@ abstract class AbstractFirLazyDeclarationResolveTestCase : AbstractAnalysisApiBa
val IS_GETTER by valueDirective("Choose getter/setter in the case of property", parser = String::toBooleanStrict)
val RESOLVE_FILE_ANNOTATIONS by directive("Resolve file annotations instead of declaration at caret")
val RESOLVE_SCRIPT by directive("Resolve script instead of declaration at caret")
val RESOLVE_FILE by directive("Resolve file instead of declaration at caret")
}
@@ -198,7 +190,6 @@ internal fun lazyResolveRenderer(builder: StringBuilder): FirRenderer = FirRende
declarationRenderer = FirDeclarationRendererWithFilteredAttributes(),
resolvePhaseRenderer = FirResolvePhaseRenderer(),
errorExpressionRenderer = FirErrorExpressionExtendedRenderer(),
fileAnnotationsContainerRenderer = FirFileAnnotationsContainerRenderer(),
)
internal operator fun List<FirFile>.contains(element: FirElementWithResolveState): Boolean = if (element is FirFile) {
@@ -55,7 +55,6 @@ private fun render(firElement: FirElement?): String = when (firElement) {
null -> "null"
is FirImport -> "import ${firElement.importedFqName}"
else -> FirRenderer(
fileAnnotationsContainerRenderer = FirFileAnnotationsContainerRenderer(),
packageDirectiveRenderer = FirPackageDirectiveRenderer(),
resolvePhaseRenderer = FirResolvePhaseRenderer(),
declarationRenderer = FirDeclarationRendererWithFilteredAttributes(),
@@ -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.
*/
@@ -14,7 +14,6 @@ import org.jetbrains.kotlin.builtins.StandardNames.DATA_CLASS_COMPONENT_PREFIX
import org.jetbrains.kotlin.descriptors.ValueClassRepresentation
import org.jetbrains.kotlin.diagnostics.startOffsetSkippingComments
import org.jetbrains.kotlin.fir.*
import org.jetbrains.kotlin.fir.builder.buildFileAnnotationsContainer
import org.jetbrains.kotlin.fir.builder.buildPackageDirective
import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.declarations.builder.buildFile
@@ -698,11 +697,6 @@ fun FirSession.createFilesWithGeneratedDeclarations(): List<FirFile> {
return buildList {
for (packageFqName in (topLevelClasses.keys + topLevelCallables.keys)) {
this += buildFile {
symbol = FirFileSymbol()
annotationsContainer = buildFileAnnotationsContainer {
moduleData = this@createFilesWithGeneratedDeclarations.moduleData
containingFileSymbol = this@buildFile.symbol
}
origin = FirDeclarationOrigin.Synthetic.PluginFile
moduleData = this@createFilesWithGeneratedDeclarations.moduleData
packageDirective = buildPackageDirective {
@@ -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.
*/
@@ -76,7 +76,7 @@ class LightTreeRawFirDeclarationBuilder(
}
val fileSymbol = FirFileSymbol()
var fileAnnotationContainer: FirFileAnnotationsContainer? = null
var fileAnnotations = mutableListOf<FirAnnotation>()
val importList = mutableListOf<FirImport>()
val firDeclarationList = mutableListOf<FirDeclaration>()
val modifierList = mutableListOf<LighterASTNode>()
@@ -84,7 +84,11 @@ class LightTreeRawFirDeclarationBuilder(
var packageDirective: FirPackageDirective? = null
file.forEachChildren { child ->
when (child.tokenType) {
FILE_ANNOTATION_LIST -> fileAnnotationContainer = convertFileAnnotationsContainer(child, fileSymbol)
FILE_ANNOTATION_LIST -> {
withContainerSymbol(fileSymbol) {
fileAnnotations += convertAnnotationList(child)
}
}
PACKAGE_DIRECTIVE -> {
packageDirective = convertPackageDirective(child).also { context.packageFqName = it.packageFqName }
}
@@ -115,7 +119,7 @@ class LightTreeRawFirDeclarationBuilder(
this.sourceFile = sourceFile
this.sourceFileLinesMapping = linesMapping
this.packageDirective = packageDirective ?: buildPackageDirective { packageFqName = context.packageFqName }
annotationsContainer = fileAnnotationContainer
annotations += fileAnnotations
imports += importList
declarations += firDeclarationList
}
@@ -316,26 +320,6 @@ class LightTreeRawFirDeclarationBuilder(
}
/***** ANNOTATIONS *****/
/**
* [org.jetbrains.kotlin.parsing.KotlinParsing.parseFileAnnotationList]
*/
private fun convertFileAnnotationsContainer(
fileAnnotationList: LighterASTNode,
fileSymbol: FirFileSymbol
): FirFileAnnotationsContainer {
return buildFileAnnotationsContainer {
moduleData = baseModuleData
source = fileAnnotationList.toFirSourceElement()
containingFileSymbol = fileSymbol
withContainerSymbol(fileSymbol) {
annotations += convertAnnotationList(fileAnnotationList)
}
annotations.ifEmpty {
resolvePhase = FirResolvePhase.BODY_RESOLVE
}
}
}
/**
* @see org.jetbrains.kotlin.parsing.KotlinParsing.parseAnnotationOrList
@@ -1183,7 +1183,6 @@ open class PsiRawFirBuilder(
BodyBuildingMode.LAZY_BODIES -> file.packageFqName
}
return buildFile {
symbol = FirFileSymbol()
source = file.toFirSourceElement()
moduleData = baseModuleData
origin = FirDeclarationOrigin.Source
@@ -1194,19 +1193,11 @@ open class PsiRawFirBuilder(
packageFqName = context.packageFqName
source = file.packageDirective?.toKtPsiSourceElement()
}
annotationsContainer = file.fileAnnotationList?.let {
buildFileAnnotationsContainer {
moduleData = baseModuleData
containingFileSymbol = this@buildFile.symbol
source = it.toKtPsiSourceElement()
withContainerSymbol(containingFileSymbol) {
for (annotationEntry in it.annotationEntries) {
annotations += annotationEntry.convert<FirAnnotation>()
}
}
annotations.ifEmpty {
resolvePhase = FirResolvePhase.BODY_RESOLVE
file.fileAnnotationList?.let {
withContainerSymbol(symbol) {
for (annotationEntry in it.annotationEntries) {
annotations += annotationEntry.convert<FirAnnotation>()
}
}
}
@@ -457,15 +457,6 @@ abstract class FirAbstractBodyResolveTransformerDispatcher(
FirDeclarationsResolveTransformer::transformDanglingModifierList,
)
override fun transformFileAnnotationsContainer(
fileAnnotationsContainer: FirFileAnnotationsContainer,
data: ResolutionMode,
): FirFileAnnotationsContainer = declarationTransformation(
fileAnnotationsContainer,
data,
FirDeclarationsResolveTransformer::transformFileAnnotationsContainer,
)
override fun transformProperty(
property: FirProperty,
data: ResolutionMode,
@@ -125,16 +125,6 @@ open class FirDeclarationsResolveTransformer(
return danglingModifierList
}
override fun transformFileAnnotationsContainer(
fileAnnotationsContainer: FirFileAnnotationsContainer,
data: ResolutionMode
): FirFileAnnotationsContainer {
if (implicitTypeOnly) return fileAnnotationsContainer
fileAnnotationsContainer.transformAnnotations(transformer, data)
return fileAnnotationsContainer
}
override fun transformProperty(property: FirProperty, data: ResolutionMode): FirProperty = whileAnalysing(session, property) {
require(property !is FirSyntheticProperty) { "Synthetic properties should not be processed by body transformers" }
@@ -6,7 +6,6 @@
package org.jetbrains.kotlin.fir.resolve.transformers.contracts
import org.jetbrains.kotlin.KtFakeSourceElementKind
import org.jetbrains.kotlin.fir.FirFileAnnotationsContainer
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.contracts.FirLegacyRawContractDescription
import org.jetbrains.kotlin.fir.contracts.FirRawContractDescription
@@ -327,13 +326,6 @@ abstract class FirAbstractContractResolveTransformerDispatcher(
return danglingModifierList
}
override fun transformFileAnnotationsContainer(
fileAnnotationsContainer: FirFileAnnotationsContainer,
data: ResolutionMode
): FirFileAnnotationsContainer {
return fileAnnotationsContainer
}
override fun transformErrorPrimaryConstructor(
errorPrimaryConstructor: FirErrorPrimaryConstructor,
data: ResolutionMode,
@@ -1,36 +0,0 @@
/*
* 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.
*/
// This file was generated automatically. See compiler/fir/tree/tree-generator/Readme.md.
// DO NOT MODIFY IT MANUALLY.
package org.jetbrains.kotlin.fir
import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
import org.jetbrains.kotlin.fir.symbols.impl.FirFileSymbol
import org.jetbrains.kotlin.fir.visitors.FirTransformer
import org.jetbrains.kotlin.fir.visitors.FirVisitor
/**
* Generated from: [org.jetbrains.kotlin.fir.tree.generator.FirTreeBuilder.fileAnnotationsContainer]
*/
abstract class FirFileAnnotationsContainer : FirElementWithResolveState(), FirAnnotationContainer {
abstract override val source: KtSourceElement?
abstract override val moduleData: FirModuleData
abstract override val annotations: List<FirAnnotation>
abstract val containingFileSymbol: FirFileSymbol
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
visitor.visitFileAnnotationsContainer(this, data)
@Suppress("UNCHECKED_CAST")
override fun <E : FirElement, D> transform(transformer: FirTransformer<D>, data: D): E =
transformer.transformFileAnnotationsContainer(this, data) as E
abstract override fun replaceAnnotations(newAnnotations: List<FirAnnotation>)
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirFileAnnotationsContainer
}
@@ -1,48 +0,0 @@
/*
* 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.
*/
// This file was generated automatically. See compiler/fir/tree/tree-generator/Readme.md.
// DO NOT MODIFY IT MANUALLY.
@file:Suppress("DuplicatedCode", "unused")
package org.jetbrains.kotlin.fir.builder
import kotlin.contracts.*
import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirFileAnnotationsContainer
import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
import org.jetbrains.kotlin.fir.impl.FirFileAnnotationsContainerImpl
import org.jetbrains.kotlin.fir.symbols.impl.FirFileSymbol
@FirBuilderDsl
class FirFileAnnotationsContainerBuilder : FirAnnotationContainerBuilder {
override var source: KtSourceElement? = null
var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR
lateinit var moduleData: FirModuleData
override val annotations: MutableList<FirAnnotation> = mutableListOf()
lateinit var containingFileSymbol: FirFileSymbol
override fun build(): FirFileAnnotationsContainer {
return FirFileAnnotationsContainerImpl(
source,
resolvePhase,
moduleData,
annotations.toMutableOrEmpty(),
containingFileSymbol,
)
}
}
@OptIn(ExperimentalContracts::class)
inline fun buildFileAnnotationsContainer(init: FirFileAnnotationsContainerBuilder.() -> Unit): FirFileAnnotationsContainer {
contract {
callsInPlace(init, InvocationKind.EXACTLY_ONCE)
}
return FirFileAnnotationsContainerBuilder().apply(init).build()
}
@@ -12,7 +12,6 @@ import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.KtSourceFile
import org.jetbrains.kotlin.KtSourceFileLinesMapping
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirFileAnnotationsContainer
import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirPackageDirective
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
@@ -31,7 +30,6 @@ abstract class FirFile : FirDeclaration(), FirControlFlowGraphOwner {
abstract override val origin: FirDeclarationOrigin
abstract override val attributes: FirDeclarationAttributes
abstract override val controlFlowGraphReference: FirControlFlowGraphReference?
abstract val annotationsContainer: FirFileAnnotationsContainer?
abstract val packageDirective: FirPackageDirective
abstract val imports: List<FirImport>
abstract val declarations: List<FirDeclaration>
@@ -53,8 +51,6 @@ abstract class FirFile : FirDeclaration(), FirControlFlowGraphOwner {
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirFile
abstract fun <D> transformAnnotationsContainer(transformer: FirTransformer<D>, data: D): FirFile
abstract fun <D> transformImports(transformer: FirTransformer<D>, data: D): FirFile
abstract fun <D> transformDeclarations(transformer: FirTransformer<D>, data: D): FirFile
@@ -14,11 +14,11 @@ import kotlin.contracts.*
import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.KtSourceFile
import org.jetbrains.kotlin.KtSourceFileLinesMapping
import org.jetbrains.kotlin.fir.FirFileAnnotationsContainer
import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirPackageDirective
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.builder.toMutableOrEmpty
import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.declarations.impl.FirFileImpl
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
@@ -28,26 +28,26 @@ import org.jetbrains.kotlin.fir.symbols.impl.FirFileSymbol
class FirFileBuilder : FirAnnotationContainerBuilder {
override var source: KtSourceElement? = null
var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR
override val annotations: MutableList<FirAnnotation> = mutableListOf()
lateinit var moduleData: FirModuleData
lateinit var origin: FirDeclarationOrigin
var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
var annotationsContainer: FirFileAnnotationsContainer? = null
lateinit var packageDirective: FirPackageDirective
val imports: MutableList<FirImport> = mutableListOf()
val declarations: MutableList<FirDeclaration> = mutableListOf()
lateinit var name: String
var sourceFile: KtSourceFile? = null
var sourceFileLinesMapping: KtSourceFileLinesMapping? = null
lateinit var symbol: FirFileSymbol
var symbol: FirFileSymbol = FirFileSymbol()
override fun build(): FirFile {
return FirFileImpl(
source,
resolvePhase,
annotations.toMutableOrEmpty(),
moduleData,
origin,
attributes,
annotationsContainer,
packageDirective,
imports,
declarations,
@@ -58,9 +58,6 @@ class FirFileBuilder : FirAnnotationContainerBuilder {
)
}
@Deprecated("Modification of 'annotations' has no impact for FirFileBuilder", level = DeprecationLevel.HIDDEN)
override val annotations: MutableList<FirAnnotation> = mutableListOf()
}
@OptIn(ExperimentalContracts::class)
@@ -13,9 +13,10 @@ package org.jetbrains.kotlin.fir.declarations.impl
import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.KtSourceFile
import org.jetbrains.kotlin.KtSourceFileLinesMapping
import org.jetbrains.kotlin.fir.FirFileAnnotationsContainer
import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirPackageDirective
import org.jetbrains.kotlin.fir.MutableOrEmptyList
import org.jetbrains.kotlin.fir.builder.toMutableOrEmpty
import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
@@ -28,10 +29,10 @@ import org.jetbrains.kotlin.fir.visitors.transformInplace
internal class FirFileImpl(
override val source: KtSourceElement?,
resolvePhase: FirResolvePhase,
override var annotations: MutableOrEmptyList<FirAnnotation>,
override val moduleData: FirModuleData,
override val origin: FirDeclarationOrigin,
override val attributes: FirDeclarationAttributes,
override var annotationsContainer: FirFileAnnotationsContainer?,
override var packageDirective: FirPackageDirective,
override val imports: MutableList<FirImport>,
override val declarations: MutableList<FirDeclaration>,
@@ -40,8 +41,6 @@ internal class FirFileImpl(
override val sourceFileLinesMapping: KtSourceFileLinesMapping?,
override val symbol: FirFileSymbol,
) : FirFile() {
override val annotations: List<FirAnnotation>
get() = annotationsContainer?.annotations ?: emptyList()
override var controlFlowGraphReference: FirControlFlowGraphReference? = null
init {
@@ -50,16 +49,16 @@ internal class FirFileImpl(
}
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
annotations.forEach { it.accept(visitor, data) }
controlFlowGraphReference?.accept(visitor, data)
annotationsContainer?.accept(visitor, data)
packageDirective.accept(visitor, data)
imports.forEach { it.accept(visitor, data) }
declarations.forEach { it.accept(visitor, data) }
}
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirFileImpl {
transformAnnotations(transformer, data)
controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data)
transformAnnotationsContainer(transformer, data)
packageDirective = packageDirective.transform(transformer, data)
transformImports(transformer, data)
transformDeclarations(transformer, data)
@@ -67,11 +66,7 @@ internal class FirFileImpl(
}
override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirFileImpl {
return this
}
override fun <D> transformAnnotationsContainer(transformer: FirTransformer<D>, data: D): FirFileImpl {
annotationsContainer = annotationsContainer?.transform(transformer, data)
annotations.transformInplace(transformer, data)
return this
}
@@ -85,7 +80,9 @@ internal class FirFileImpl(
return this
}
override fun replaceAnnotations(newAnnotations: List<FirAnnotation>) {}
override fun replaceAnnotations(newAnnotations: List<FirAnnotation>) {
annotations = newAnnotations.toMutableOrEmpty()
}
override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) {
controlFlowGraphReference = newControlFlowGraphReference
@@ -1,57 +0,0 @@
/*
* 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.
*/
// This file was generated automatically. See compiler/fir/tree/tree-generator/Readme.md.
// DO NOT MODIFY IT MANUALLY.
@file:Suppress("DuplicatedCode", "unused")
package org.jetbrains.kotlin.fir.impl
import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.fir.FirFileAnnotationsContainer
import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.MutableOrEmptyList
import org.jetbrains.kotlin.fir.builder.toMutableOrEmpty
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.declarations.ResolveStateAccess
import org.jetbrains.kotlin.fir.declarations.asResolveState
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
import org.jetbrains.kotlin.fir.symbols.impl.FirFileSymbol
import org.jetbrains.kotlin.fir.visitors.FirTransformer
import org.jetbrains.kotlin.fir.visitors.FirVisitor
import org.jetbrains.kotlin.fir.visitors.transformInplace
@OptIn(ResolveStateAccess::class)
internal class FirFileAnnotationsContainerImpl(
override val source: KtSourceElement?,
resolvePhase: FirResolvePhase,
override val moduleData: FirModuleData,
override var annotations: MutableOrEmptyList<FirAnnotation>,
override val containingFileSymbol: FirFileSymbol,
) : FirFileAnnotationsContainer() {
init {
resolveState = resolvePhase.asResolveState()
}
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
annotations.forEach { it.accept(visitor, data) }
}
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirFileAnnotationsContainerImpl {
transformAnnotations(transformer, data)
return this
}
override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirFileAnnotationsContainerImpl {
annotations.transformInplace(transformer, data)
return this
}
override fun replaceAnnotations(newAnnotations: List<FirAnnotation>) {
annotations = newAnnotations.toMutableOrEmpty()
}
}
@@ -139,14 +139,6 @@ abstract class FirTransformer<in D> : FirVisitor<FirElement, D>() {
return transformElementWithResolveState(elementWithResolveState, data)
}
open fun transformFileAnnotationsContainer(fileAnnotationsContainer: FirFileAnnotationsContainer, data: D): FirFileAnnotationsContainer {
return transformElement(fileAnnotationsContainer, data)
}
final override fun visitFileAnnotationsContainer(fileAnnotationsContainer: FirFileAnnotationsContainer, data: D): FirFileAnnotationsContainer {
return transformFileAnnotationsContainer(fileAnnotationsContainer, data)
}
open fun transformDeclaration(declaration: FirDeclaration, data: D): FirDeclaration {
return transformElement(declaration, data)
}
@@ -65,9 +65,6 @@ abstract class FirVisitor<out R, in D> {
open fun visitElementWithResolveState(elementWithResolveState: FirElementWithResolveState, data: D): R =
visitElement(elementWithResolveState, data)
open fun visitFileAnnotationsContainer(fileAnnotationsContainer: FirFileAnnotationsContainer, data: D): R =
visitElement(fileAnnotationsContainer, data)
open fun visitDeclaration(declaration: FirDeclaration, data: D): R =
visitElement(declaration, data)
@@ -139,14 +139,6 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
visitElement(elementWithResolveState)
}
final override fun visitFileAnnotationsContainer(fileAnnotationsContainer: FirFileAnnotationsContainer, data: Nothing?) {
visitFileAnnotationsContainer(fileAnnotationsContainer)
}
open fun visitFileAnnotationsContainer(fileAnnotationsContainer: FirFileAnnotationsContainer) {
visitElement(fileAnnotationsContainer)
}
final override fun visitDeclaration(declaration: FirDeclaration, data: Nothing?) {
visitDeclaration(declaration)
}
@@ -1,19 +0,0 @@
/*
* Copyright 2010-2023 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.
*/
package org.jetbrains.kotlin.fir.renderer
import org.jetbrains.kotlin.fir.FirFileAnnotationsContainer
class FirFileAnnotationsContainerRenderer {
internal lateinit var components: FirRendererComponents
private val printer get() = components.printer
fun render(fileAnnotationsContainer: FirFileAnnotationsContainer) {
components.annotationRenderer?.render(fileAnnotationsContainer)
components.resolvePhaseRenderer?.render(fileAnnotationsContainer)
printer.println("annotations container")
}
}
@@ -1,5 +1,5 @@
/*
* Copyright 2010-2022 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.
*/
@@ -43,7 +43,6 @@ class FirRenderer(
override val referencedSymbolRenderer: FirSymbolRenderer = FirSymbolRenderer(),
override val valueParameterRenderer: FirValueParameterRenderer? = FirValueParameterRenderer(),
override val errorExpressionRenderer: FirErrorExpressionRenderer? = FirErrorExpressionOnlyErrorRenderer(),
override val fileAnnotationsContainerRenderer: FirFileAnnotationsContainerRenderer? = null,
override val resolvedNamedReferenceRenderer: FirResolvedNamedReferenceRenderer = FirResolvedNamedReferenceRendererWithLabel(),
override val resolvedQualifierRenderer: FirResolvedQualifierRenderer = FirResolvedQualifierRendererWithLabel(),
private val lineBreakAfterContextReceivers: Boolean = true,
@@ -55,20 +54,20 @@ class FirRenderer(
override val printer = FirPrinter(builder)
companion object {
fun noAnnotationBodiesAccessorAndArguments(): FirRenderer =
FirRenderer(
annotationRenderer = null, bodyRenderer = null, propertyAccessorRenderer = null,
callArgumentsRenderer = FirCallNoArgumentsRenderer()
)
fun noAnnotationBodiesAccessorAndArguments(): FirRenderer = FirRenderer(
annotationRenderer = null,
bodyRenderer = null,
propertyAccessorRenderer = null,
callArgumentsRenderer = FirCallNoArgumentsRenderer(),
)
fun withResolvePhase(): FirRenderer =
FirRenderer(
resolvePhaseRenderer = FirResolvePhaseRenderer(),
fileAnnotationsContainerRenderer = FirFileAnnotationsContainerRenderer(),
)
fun withResolvePhase(): FirRenderer = FirRenderer(
resolvePhaseRenderer = FirResolvePhaseRenderer(),
)
fun withDeclarationAttributes(): FirRenderer =
FirRenderer(declarationRenderer = FirDeclarationRendererWithAttributes())
fun withDeclarationAttributes(): FirRenderer = FirRenderer(
declarationRenderer = FirDeclarationRendererWithAttributes(),
)
fun forReadability(): FirRenderer = FirRenderer(
typeRenderer = ConeTypeRenderer(),
@@ -79,7 +78,7 @@ class FirRenderer(
callArgumentsRenderer = FirCallNoArgumentsRenderer(),
modifierRenderer = FirPartialModifierRenderer(),
valueParameterRenderer = FirValueParameterRendererForReadability(),
declarationRenderer = FirDeclarationRenderer("local ")
declarationRenderer = FirDeclarationRenderer("local "),
)
}
@@ -100,7 +99,6 @@ class FirRenderer(
referencedSymbolRenderer.components = this
valueParameterRenderer?.components = this
errorExpressionRenderer?.components = this
fileAnnotationsContainerRenderer?.components = this
resolvedNamedReferenceRenderer.components = this
resolvedQualifierRenderer.components = this
getClassCallRenderer.components = this
@@ -202,7 +200,7 @@ class FirRenderer(
printer.println(file.name)
printer.pushIndent()
file.annotationsContainer?.let { visitFileAnnotationsContainer(it) }
annotationRenderer?.render(file)
visitPackageDirective(file.packageDirective)
file.imports.forEach { it.accept(this) }
file.declarations.forEach { it.accept(this) }
@@ -237,14 +235,6 @@ class FirRenderer(
bodyRenderer?.renderBody(codeFragment.block)
}
override fun visitFileAnnotationsContainer(fileAnnotationsContainer: FirFileAnnotationsContainer) {
if (fileAnnotationsContainerRenderer != null) {
fileAnnotationsContainerRenderer.render(fileAnnotationsContainer)
} else {
annotationRenderer?.render(fileAnnotationsContainer)
}
}
override fun visitAnnotation(annotation: FirAnnotation) {
annotationRenderer?.renderAnnotation(annotation)
}
@@ -1,5 +1,5 @@
/*
* Copyright 2010-2022 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.
*/
@@ -25,7 +25,6 @@ internal interface FirRendererComponents {
val referencedSymbolRenderer: FirSymbolRenderer
val valueParameterRenderer: FirValueParameterRenderer?
val errorExpressionRenderer: FirErrorExpressionRenderer?
val fileAnnotationsContainerRenderer: FirFileAnnotationsContainerRenderer?
val resolvedNamedReferenceRenderer: FirResolvedNamedReferenceRenderer
val resolvedQualifierRenderer: FirResolvedQualifierRenderer
val getClassCallRenderer: FirGetClassCallRenderer
@@ -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.
*/
@@ -23,7 +23,6 @@ fun ExceptionAttachmentBuilder.withFirEntry(name: String, fir: FirElement) {
FirRenderer(
resolvePhaseRenderer = FirResolvePhaseRenderer(),
declarationRenderer = FirDeclarationRendererWithAttributes(),
fileAnnotationsContainerRenderer = FirFileAnnotationsContainerRenderer(),
).renderElementAsString(it)
}
withEntry("${name}ElementKind", fir.source?.kind?.let { it::class.simpleName })
@@ -1,5 +1,5 @@
/*
* Copyright 2010-2022 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.
*/
@@ -36,7 +36,7 @@ object BuilderConfigurator : AbstractFirBuilderConfigurator<FirTreeBuilder>(FirT
}
builder(file) {
defaultNull("annotationsContainer")
default("symbol", "FirFileSymbol()")
}
builder(regularClass) {
@@ -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.
*/
@@ -31,7 +31,6 @@ object FirTreeBuilder : AbstractFirTreeBuilder() {
val contextReceiver by element(Declaration)
val elementWithResolveState by element(Other)
val fileAnnotationsContainer by element(Other, elementWithResolveState, annotationContainer)
val declaration by sealedElement(Declaration, elementWithResolveState, annotationContainer)
val typeParameterRefsOwner by sealedElement(Declaration)
val typeParametersOwner by sealedElement(Declaration, typeParameterRefsOwner)
@@ -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.
*/
@@ -591,13 +591,6 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
noImpl(userTypeRef)
impl(file) {
default("annotations") {
value = "annotationsContainer?.annotations ?: emptyList()"
withGetter = true
}
}
noImpl(argumentList)
noImpl(annotationArgumentMapping)
@@ -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.
*/
@@ -92,10 +92,6 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
shouldBeAbstractClass()
}
fileAnnotationsContainer.configure {
+field("containingFileSymbol", type("fir.symbols.impl", "FirFileSymbol"))
}
declaration.configure {
+symbolWithPackageWithArgument("fir.symbols", "FirBasedSymbol")
+field("moduleData", firModuleDataType)
@@ -491,7 +487,6 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
}
file.configure {
+field("annotationsContainer", fileAnnotationsContainer, nullable = true).withTransform()
+field("packageDirective", packageDirective)
+fieldList(import).withTransform()
+declarations.withTransform()
@@ -70,7 +70,6 @@ internal class ImplementationPrinter(
!element.typeName.contains("Reference")
&& !element.typeName.contains("ResolvedQualifier")
&& !element.typeName.endsWith("Ref")
&& !element.typeName.endsWith("AnnotationsContainer")
}.orEmpty()
val customCalls = fieldsInConstructor.filter { it.customInitializationCall != null }