[FIR] Fix all usages of declarationSiteSession

This commit is contained in:
Dmitriy Novozhilov
2021-04-29 17:44:07 +03:00
committed by TeamCityServer
parent a15316de24
commit 5cfa8694d4
177 changed files with 775 additions and 625 deletions
@@ -420,8 +420,9 @@ fun FirCallableMemberDeclaration<*>.isVisibleInClass(parentClass: FirClass<*>):
if (visibility == Visibilities.Private || if (visibility == Visibilities.Private ||
!visibility.visibleFromPackage(classPackage, symbol.callableId.packageName) !visibility.visibleFromPackage(classPackage, symbol.callableId.packageName)
) return false ) return false
if (visibility == Visibilities.Internal && if (
declarationSiteSession !== parentClass.declarationSiteSession visibility == Visibilities.Internal &&
(moduleData != parentClass.moduleData || parentClass.moduleData in moduleData.friendDependencies)
) return false ) return false
return true return true
} }
@@ -81,7 +81,7 @@ object FirConflictsChecker : FirBasicDeclarationChecker() {
session: FirSession session: FirSession
) { ) {
val conflicting = conflictingSymbol.fir as? FirDeclaration ?: return val conflicting = conflictingSymbol.fir as? FirDeclaration ?: return
if (declaration.declarationSiteSession.moduleInfo != conflicting.declarationSiteSession.moduleInfo) return if (declaration.moduleData != conflicting.moduleData) return
val actualConflictingPresentation = conflictingPresentation ?: presenter.represent(conflicting) val actualConflictingPresentation = conflictingPresentation ?: presenter.represent(conflicting)
if (conflicting == declaration || actualConflictingPresentation != declarationPresentation) return if (conflicting == declaration || actualConflictingPresentation != declarationPresentation) return
val actualConflictingFile = val actualConflictingFile =
@@ -317,7 +317,7 @@ class MultiModuleHtmlFirDump(private val outputRoot: File) {
require(inModule) require(inModule)
val dumpOutput = index.files[file] ?: error("No location for ${file.name}") val dumpOutput = index.files[file] ?: error("No location for ${file.name}")
val dumper = HtmlFirDump(LinkResolver(dumpOutput), file.declarationSiteSession) val dumper = HtmlFirDump(LinkResolver(dumpOutput), file.moduleData.session)
val builder = StringBuilder() val builder = StringBuilder()
dumper.generate(file, builder) dumper.generate(file, builder)
@@ -93,3 +93,8 @@ fun FirSession.registerJavaSpecificResolveComponents() {
register(FirSyntheticNamesProvider::class, FirJavaSyntheticNamesProvider) register(FirSyntheticNamesProvider::class, FirJavaSyntheticNamesProvider)
register(FirJsr305StateContainer::class, FirJsr305StateContainer.Default) register(FirJsr305StateContainer::class, FirJsr305StateContainer.Default)
} }
@OptIn(SessionConfiguration::class)
fun FirSession.registerModuleData(moduleData: FirModuleData) {
register(FirModuleData::class, moduleData)
}
@@ -0,0 +1,42 @@
/*
* Copyright 2010-2021 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.session
import org.jetbrains.kotlin.analyzer.ModuleInfo
import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.platform.TargetPlatform
class FirModuleInfoBasedModuleData(
val moduleInfo: ModuleInfo,
override val session: FirSession
) : FirModuleData() {
override val name: Name
get() = moduleInfo.name
override val dependencies: List<FirModuleData> = moduleInfo.dependencies()
.filterNot { it == moduleInfo }
.map { FirModuleInfoBasedModuleData(it, session) }
override val dependsOnDependencies: List<FirModuleData> = moduleInfo.expectedBy
.filterNot { it == moduleInfo }
.map { FirModuleInfoBasedModuleData(it, session) }
override val friendDependencies: List<FirModuleData> = moduleInfo.modulesWhoseInternalsAreVisible()
.filterNot { it == moduleInfo }
.map { FirModuleInfoBasedModuleData(it, session) }
override val platform: TargetPlatform
get() = moduleInfo.platform
override fun equals(other: Any?): Boolean {
if (other !is FirModuleInfoBasedModuleData) return false
return moduleInfo == other.moduleInfo
}
override fun hashCode(): Int {
return moduleInfo.hashCode()
}
}
@@ -12,6 +12,7 @@ import org.jetbrains.annotations.TestOnly
import org.jetbrains.kotlin.analyzer.ModuleInfo import org.jetbrains.kotlin.analyzer.ModuleInfo
import org.jetbrains.kotlin.config.LanguageVersionSettings import org.jetbrains.kotlin.config.LanguageVersionSettings
import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl
import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.PrivateSessionConstructor import org.jetbrains.kotlin.fir.PrivateSessionConstructor
import org.jetbrains.kotlin.fir.SessionConfiguration import org.jetbrains.kotlin.fir.SessionConfiguration
@@ -78,6 +79,8 @@ object FirSessionFactory {
init: FirSessionConfigurator.() -> Unit = {} init: FirSessionConfigurator.() -> Unit = {}
): FirJavaModuleBasedSession { ): FirJavaModuleBasedSession {
return FirJavaModuleBasedSession(moduleInfo, sessionProvider).apply { return FirJavaModuleBasedSession(moduleInfo, sessionProvider).apply {
val moduleData = FirModuleInfoBasedModuleData(moduleInfo, this)
registerModuleData(moduleData)
registerCliCompilerOnlyComponents() registerCliCompilerOnlyComponents()
registerCommonComponents(languageVersionSettings) registerCommonComponents(languageVersionSettings)
registerResolveComponents(lookupTracker) registerResolveComponents(lookupTracker)
@@ -91,10 +94,15 @@ object FirSessionFactory {
val deserializedJvmSymbolsProvider = val deserializedJvmSymbolsProvider =
if (additionalPackagePartProvider == null) null if (additionalPackagePartProvider == null) null
else { else {
val javaSymbolProvider = JavaSymbolProvider(this, project, additionalScope ?: scope) val javaSymbolProvider = JavaSymbolProvider(this, moduleData, project, additionalScope ?: scope)
makeDeserializedJvmSymbolsProvider( makeDeserializedJvmSymbolsProvider(
project, additionalScope ?: scope, additionalPackagePartProvider, javaSymbolProvider, kotlinScopeProvider moduleData,
project,
additionalScope ?: scope,
additionalPackagePartProvider,
javaSymbolProvider,
kotlinScopeProvider
) )
} }
@@ -104,7 +112,7 @@ object FirSessionFactory {
this, this,
listOfNotNull( listOfNotNull(
firProvider.symbolProvider, firProvider.symbolProvider,
JavaSymbolProvider(this, project, scope), JavaSymbolProvider(this, moduleData, project, scope),
dependenciesProvider ?: FirDependenciesSymbolProviderImpl(this), dependenciesProvider ?: FirDependenciesSymbolProviderImpl(this),
deserializedJvmSymbolsProvider deserializedJvmSymbolsProvider
) )
@@ -130,23 +138,24 @@ object FirSessionFactory {
languageVersionSettings: LanguageVersionSettings = LanguageVersionSettingsImpl.DEFAULT, languageVersionSettings: LanguageVersionSettings = LanguageVersionSettingsImpl.DEFAULT,
): FirLibrarySession { ): FirLibrarySession {
return FirLibrarySession(moduleInfo, sessionProvider).apply { return FirLibrarySession(moduleInfo, sessionProvider).apply {
val moduleData = FirModuleInfoBasedModuleData(moduleInfo, this)
registerCliCompilerOnlyComponents() registerCliCompilerOnlyComponents()
registerCommonComponents(languageVersionSettings) registerCommonComponents(languageVersionSettings)
val javaSymbolProvider = JavaSymbolProvider(this, project, scope) val javaSymbolProvider = JavaSymbolProvider(this, moduleData, project, scope)
val kotlinScopeProvider = FirKotlinScopeProvider(::wrapScopeWithJvmMapped) val kotlinScopeProvider = FirKotlinScopeProvider(::wrapScopeWithJvmMapped)
val deserializedJvmSymbolsProvider = makeDeserializedJvmSymbolsProvider( val deserializedJvmSymbolsProvider = makeDeserializedJvmSymbolsProvider(
project, scope, packagePartProvider, javaSymbolProvider, kotlinScopeProvider moduleData, project, scope, packagePartProvider, javaSymbolProvider, kotlinScopeProvider
) )
val symbolProvider = FirCompositeSymbolProvider( val symbolProvider = FirCompositeSymbolProvider(
this, this,
listOf( listOf(
deserializedJvmSymbolsProvider, deserializedJvmSymbolsProvider,
FirBuiltinSymbolProvider(this, kotlinScopeProvider), FirBuiltinSymbolProvider(this, moduleData, kotlinScopeProvider),
FirCloneableSymbolProvider(this, kotlinScopeProvider), FirCloneableSymbolProvider(this, moduleData, kotlinScopeProvider),
javaSymbolProvider, javaSymbolProvider,
FirDependenciesSymbolProviderImpl(this) FirDependenciesSymbolProviderImpl(this)
) )
@@ -156,7 +165,8 @@ object FirSessionFactory {
} }
} }
private fun FirSession.makeDeserializedJvmSymbolsProvider( private fun makeDeserializedJvmSymbolsProvider(
moduleData: FirModuleData,
project: Project, project: Project,
scope: GlobalSearchScope, scope: GlobalSearchScope,
packagePartProvider: PackagePartProvider, packagePartProvider: PackagePartProvider,
@@ -171,7 +181,7 @@ object FirSessionFactory {
} }
return KotlinDeserializedJvmSymbolsProvider( return KotlinDeserializedJvmSymbolsProvider(
this, kotlinScopeProvider, packagePartProvider, kotlinClassFinder, javaSymbolProvider, javaClassFinder moduleData, kotlinScopeProvider, packagePartProvider, kotlinClassFinder, javaSymbolProvider, javaClassFinder
) )
} }
@@ -6,7 +6,7 @@
package org.jetbrains.kotlin.fir.deserialization package org.jetbrains.kotlin.fir.deserialization
import com.intellij.openapi.progress.ProcessCanceledException import com.intellij.openapi.progress.ProcessCanceledException
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.caches.* import org.jetbrains.kotlin.fir.caches.*
import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider
import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProviderInternals import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProviderInternals
@@ -39,9 +39,9 @@ class PackagePartsCacheData(
typealias DeserializedClassPostProcessor = (FirRegularClassSymbol) -> Unit typealias DeserializedClassPostProcessor = (FirRegularClassSymbol) -> Unit
abstract class AbstractFirDeserializedSymbolsProvider( abstract class AbstractFirDeserializedSymbolsProvider(
session: FirSession, val moduleData: FirModuleData,
val kotlinScopeProvider: FirKotlinScopeProvider val kotlinScopeProvider: FirKotlinScopeProvider
) : FirSymbolProvider(session) { ) : FirSymbolProvider(moduleData.session) {
// ------------------------ Caches ------------------------ // ------------------------ Caches ------------------------
@@ -110,7 +110,12 @@ abstract class AbstractFirDeserializedSymbolsProvider(
val (nameResolver, classProto, annotationDeserializer, sourceElement, postProcessor) = result val (nameResolver, classProto, annotationDeserializer, sourceElement, postProcessor) = result
val symbol = FirRegularClassSymbol(classId) val symbol = FirRegularClassSymbol(classId)
deserializeClassToSymbol( deserializeClassToSymbol(
classId, classProto, symbol, nameResolver, session, classId,
classProto,
symbol,
nameResolver,
session,
moduleData,
annotationDeserializer, annotationDeserializer,
kotlinScopeProvider, kotlinScopeProvider,
parentContext, parentContext,
@@ -49,6 +49,7 @@ fun deserializeClassToSymbol(
symbol: FirRegularClassSymbol, symbol: FirRegularClassSymbol,
nameResolver: NameResolver, nameResolver: NameResolver,
session: FirSession, session: FirSession,
moduleData: FirModuleData,
defaultAnnotationDeserializer: AbstractAnnotationDeserializer?, defaultAnnotationDeserializer: AbstractAnnotationDeserializer?,
scopeProvider: FirScopeProvider, scopeProvider: FirScopeProvider,
parentContext: FirDeserializationContext? = null, parentContext: FirDeserializationContext? = null,
@@ -90,7 +91,7 @@ fun deserializeClassToSymbol(
classId, classId,
classProto, classProto,
nameResolver, nameResolver,
session, moduleData,
annotationDeserializer, annotationDeserializer,
FirConstDeserializer(session, (containerSource as? KotlinJvmBinarySourceElement)?.binaryClass), FirConstDeserializer(session, (containerSource as? KotlinJvmBinarySourceElement)?.binaryClass),
containerSource, containerSource,
@@ -102,7 +103,7 @@ fun deserializeClassToSymbol(
} }
} }
buildRegularClass { buildRegularClass {
declarationSiteSession = session this.moduleData = moduleData
this.origin = origin this.origin = origin
name = classId.shortClassName name = classId.shortClassName
this.status = status this.status = status
@@ -159,7 +160,7 @@ fun deserializeClassToSymbol(
val enumType = ConeClassLikeTypeImpl(symbol.toLookupTag(), emptyArray(), false) val enumType = ConeClassLikeTypeImpl(symbol.toLookupTag(), emptyArray(), false)
val property = buildEnumEntry { val property = buildEnumEntry {
declarationSiteSession = session this.moduleData = moduleData
this.origin = FirDeclarationOrigin.Library this.origin = FirDeclarationOrigin.Library
returnTypeRef = buildResolvedTypeRef { type = enumType } returnTypeRef = buildResolvedTypeRef { type = enumType }
name = enumEntryName name = enumEntryName
@@ -182,11 +183,11 @@ fun deserializeClassToSymbol(
if (classKind == ClassKind.ENUM_CLASS) { if (classKind == ClassKind.ENUM_CLASS) {
generateValuesFunction( generateValuesFunction(
session, moduleData,
classId.packageFqName, classId.packageFqName,
classId.relativeClassName classId.relativeClassName
) )
generateValueOfFunction(session, classId.packageFqName, classId.relativeClassName) generateValueOfFunction(moduleData, classId.packageFqName, classId.relativeClassName)
} }
addCloneForArrayIfNeeded(classId, context.dispatchReceiver) addCloneForArrayIfNeeded(classId, context.dispatchReceiver)
@@ -255,7 +256,7 @@ private fun FirRegularClassBuilder.addCloneForArrayIfNeeded(classId: ClassId, di
) )
} }
declarations += buildSimpleFunction { declarations += buildSimpleFunction {
declarationSiteSession = this@addCloneForArrayIfNeeded.declarationSiteSession moduleData = this@addCloneForArrayIfNeeded.moduleData
origin = FirDeclarationOrigin.Library origin = FirDeclarationOrigin.Library
resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES
returnTypeRef = buildResolvedTypeRef { returnTypeRef = buildResolvedTypeRef {
@@ -6,6 +6,7 @@
package org.jetbrains.kotlin.fir.deserialization package org.jetbrains.kotlin.fir.deserialization
import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.containingClassAttr import org.jetbrains.kotlin.fir.containingClassAttr
import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.*
@@ -15,7 +16,6 @@ import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.expressions.builder.buildExpressionStub import org.jetbrains.kotlin.fir.expressions.builder.buildExpressionStub
import org.jetbrains.kotlin.fir.resolve.defaultType import org.jetbrains.kotlin.fir.resolve.defaultType
import org.jetbrains.kotlin.name.StandardClassIds
import org.jetbrains.kotlin.fir.symbols.impl.* import org.jetbrains.kotlin.fir.symbols.impl.*
import org.jetbrains.kotlin.fir.toEffectiveVisibility import org.jetbrains.kotlin.fir.toEffectiveVisibility
import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.fir.types.*
@@ -28,6 +28,7 @@ import org.jetbrains.kotlin.metadata.deserialization.*
import org.jetbrains.kotlin.name.CallableId import org.jetbrains.kotlin.name.CallableId
import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.StandardClassIds
import org.jetbrains.kotlin.protobuf.MessageLite import org.jetbrains.kotlin.protobuf.MessageLite
import org.jetbrains.kotlin.serialization.deserialization.ProtoEnumFlags import org.jetbrains.kotlin.serialization.deserialization.ProtoEnumFlags
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
@@ -37,7 +38,7 @@ class FirDeserializationContext(
val nameResolver: NameResolver, val nameResolver: NameResolver,
val typeTable: TypeTable, val typeTable: TypeTable,
val versionRequirementTable: VersionRequirementTable, val versionRequirementTable: VersionRequirementTable,
val session: FirSession, val moduleData: FirModuleData,
val packageFqName: FqName, val packageFqName: FqName,
val relativeClassName: FqName?, val relativeClassName: FqName?,
val typeDeserializer: FirTypeDeserializer, val typeDeserializer: FirTypeDeserializer,
@@ -47,6 +48,8 @@ class FirDeserializationContext(
val outerClassSymbol: FirRegularClassSymbol?, val outerClassSymbol: FirRegularClassSymbol?,
outerTypeParameters: List<FirTypeParameterSymbol> outerTypeParameters: List<FirTypeParameterSymbol>
) { ) {
val session: FirSession = moduleData.session
val allTypeParameters: List<FirTypeParameterSymbol> = val allTypeParameters: List<FirTypeParameterSymbol> =
typeDeserializer.ownTypeParameters + outerTypeParameters typeDeserializer.ownTypeParameters + outerTypeParameters
@@ -63,10 +66,10 @@ class FirDeserializationContext(
nameResolver, nameResolver,
typeTable, typeTable,
versionRequirementTable, versionRequirementTable,
session, moduleData,
packageFqName, packageFqName,
relativeClassName, relativeClassName,
FirTypeDeserializer(session, nameResolver, typeTable, annotationDeserializer, typeParameterProtos, typeDeserializer), FirTypeDeserializer(moduleData, nameResolver, typeTable, annotationDeserializer, typeParameterProtos, typeDeserializer),
annotationDeserializer, annotationDeserializer,
constDeserializer, constDeserializer,
containerSource, containerSource,
@@ -82,14 +85,14 @@ class FirDeserializationContext(
fqName: FqName, fqName: FqName,
packageProto: ProtoBuf.Package, packageProto: ProtoBuf.Package,
nameResolver: NameResolver, nameResolver: NameResolver,
session: FirSession, moduleData: FirModuleData,
annotationDeserializer: AbstractAnnotationDeserializer, annotationDeserializer: AbstractAnnotationDeserializer,
constDeserializer: FirConstDeserializer, constDeserializer: FirConstDeserializer,
containerSource: DeserializedContainerSource? containerSource: DeserializedContainerSource?
): FirDeserializationContext = createRootContext( ): FirDeserializationContext = createRootContext(
nameResolver, nameResolver,
TypeTable(packageProto.typeTable), TypeTable(packageProto.typeTable),
session, moduleData,
VersionRequirementTable.create(packageProto.versionRequirementTable), VersionRequirementTable.create(packageProto.versionRequirementTable),
annotationDeserializer, annotationDeserializer,
constDeserializer, constDeserializer,
@@ -104,7 +107,7 @@ class FirDeserializationContext(
classId: ClassId, classId: ClassId,
classProto: ProtoBuf.Class, classProto: ProtoBuf.Class,
nameResolver: NameResolver, nameResolver: NameResolver,
session: FirSession, moduleData: FirModuleData,
annotationDeserializer: AbstractAnnotationDeserializer, annotationDeserializer: AbstractAnnotationDeserializer,
constDeserializer: FirConstDeserializer, constDeserializer: FirConstDeserializer,
containerSource: DeserializedContainerSource?, containerSource: DeserializedContainerSource?,
@@ -112,7 +115,7 @@ class FirDeserializationContext(
): FirDeserializationContext = createRootContext( ): FirDeserializationContext = createRootContext(
nameResolver, nameResolver,
TypeTable(classProto.typeTable), TypeTable(classProto.typeTable),
session, moduleData,
VersionRequirementTable.create(classProto.versionRequirementTable), VersionRequirementTable.create(classProto.versionRequirementTable),
annotationDeserializer, annotationDeserializer,
constDeserializer, constDeserializer,
@@ -126,7 +129,7 @@ class FirDeserializationContext(
private fun createRootContext( private fun createRootContext(
nameResolver: NameResolver, nameResolver: NameResolver,
typeTable: TypeTable, typeTable: TypeTable,
session: FirSession, moduleData: FirModuleData,
versionRequirementTable: VersionRequirementTable, versionRequirementTable: VersionRequirementTable,
annotationDeserializer: AbstractAnnotationDeserializer, annotationDeserializer: AbstractAnnotationDeserializer,
constDeserializer: FirConstDeserializer, constDeserializer: FirConstDeserializer,
@@ -139,11 +142,11 @@ class FirDeserializationContext(
return FirDeserializationContext( return FirDeserializationContext(
nameResolver, typeTable, nameResolver, typeTable,
versionRequirementTable, versionRequirementTable,
session, moduleData,
packageFqName, packageFqName,
relativeClassName, relativeClassName,
FirTypeDeserializer( FirTypeDeserializer(
session, moduleData,
nameResolver, nameResolver,
typeTable, typeTable,
annotationDeserializer, annotationDeserializer,
@@ -175,7 +178,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) {
val local = c.childContext(proto.typeParameterList) val local = c.childContext(proto.typeParameterList)
val classId = ClassId(c.packageFqName, name) val classId = ClassId(c.packageFqName, name)
return buildTypeAlias { return buildTypeAlias {
declarationSiteSession = c.session moduleData = c.moduleData
origin = FirDeclarationOrigin.Library origin = FirDeclarationOrigin.Library
this.name = name this.name = name
val visibility = ProtoEnumFlags.visibility(Flags.VISIBILITY.get(flags)) val visibility = ProtoEnumFlags.visibility(Flags.VISIBILITY.get(flags))
@@ -237,7 +240,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) {
val effectiveVisibility = visibility.toEffectiveVisibility(classSymbol) val effectiveVisibility = visibility.toEffectiveVisibility(classSymbol)
if (Flags.IS_NOT_DEFAULT.get(getterFlags)) { if (Flags.IS_NOT_DEFAULT.get(getterFlags)) {
buildPropertyAccessor { buildPropertyAccessor {
declarationSiteSession = c.session moduleData = c.moduleData
origin = FirDeclarationOrigin.Library origin = FirDeclarationOrigin.Library
this.returnTypeRef = returnTypeRef this.returnTypeRef = returnTypeRef
resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES
@@ -256,7 +259,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) {
versionRequirementsTable = c.versionRequirementTable versionRequirementsTable = c.versionRequirementTable
} }
} else { } else {
FirDefaultPropertyGetter(null, c.session, FirDeclarationOrigin.Library, returnTypeRef, visibility, effectiveVisibility) FirDefaultPropertyGetter(null, c.moduleData, FirDeclarationOrigin.Library, returnTypeRef, visibility, effectiveVisibility)
}.apply { }.apply {
(annotations as MutableList<FirAnnotationCall>) += (annotations as MutableList<FirAnnotationCall>) +=
c.annotationDeserializer.loadPropertyGetterAnnotations( c.annotationDeserializer.loadPropertyGetterAnnotations(
@@ -274,7 +277,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) {
val effectiveVisibility = visibility.toEffectiveVisibility(classSymbol) val effectiveVisibility = visibility.toEffectiveVisibility(classSymbol)
if (Flags.IS_NOT_DEFAULT.get(setterFlags)) { if (Flags.IS_NOT_DEFAULT.get(setterFlags)) {
buildPropertyAccessor { buildPropertyAccessor {
declarationSiteSession = c.session moduleData = c.moduleData
origin = FirDeclarationOrigin.Library origin = FirDeclarationOrigin.Library
this.returnTypeRef = FirImplicitUnitTypeRef(source) this.returnTypeRef = FirImplicitUnitTypeRef(source)
resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES
@@ -299,7 +302,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) {
versionRequirementsTable = c.versionRequirementTable versionRequirementsTable = c.versionRequirementTable
} }
} else { } else {
FirDefaultPropertySetter(null, c.session, FirDeclarationOrigin.Library, returnTypeRef, visibility, effectiveVisibility) FirDefaultPropertySetter(null, c.moduleData, FirDeclarationOrigin.Library, returnTypeRef, visibility, effectiveVisibility)
}.apply { }.apply {
(annotations as MutableList<FirAnnotationCall>) += (annotations as MutableList<FirAnnotationCall>) +=
c.annotationDeserializer.loadPropertySetterAnnotations( c.annotationDeserializer.loadPropertySetterAnnotations(
@@ -312,7 +315,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) {
val isVar = Flags.IS_VAR.get(flags) val isVar = Flags.IS_VAR.get(flags)
return buildProperty { return buildProperty {
declarationSiteSession = c.session moduleData = c.moduleData
origin = FirDeclarationOrigin.Library origin = FirDeclarationOrigin.Library
this.returnTypeRef = returnTypeRef this.returnTypeRef = returnTypeRef
receiverTypeRef = proto.receiverType(c.typeTable)?.toTypeRef(local).apply { receiverTypeRef = proto.receiverType(c.typeTable)?.toTypeRef(local).apply {
@@ -380,7 +383,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) {
val local = c.childContext(proto.typeParameterList) val local = c.childContext(proto.typeParameterList)
val simpleFunction = buildSimpleFunction { val simpleFunction = buildSimpleFunction {
declarationSiteSession = c.session moduleData = c.moduleData
origin = FirDeclarationOrigin.Library origin = FirDeclarationOrigin.Library
returnTypeRef = proto.returnType(local.typeTable).toTypeRef(local) returnTypeRef = proto.returnType(local.typeTable).toTypeRef(local)
receiverTypeRef = proto.receiverType(local.typeTable)?.toTypeRef(local).apply { receiverTypeRef = proto.receiverType(local.typeTable)?.toTypeRef(local).apply {
@@ -455,7 +458,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) {
} else { } else {
FirConstructorBuilder() FirConstructorBuilder()
}.apply { }.apply {
declarationSiteSession = c.session moduleData = c.moduleData
origin = FirDeclarationOrigin.Library origin = FirDeclarationOrigin.Library
returnTypeRef = delegatedSelfType returnTypeRef = delegatedSelfType
val visibility = ProtoEnumFlags.visibility(Flags.VISIBILITY.get(flags)) val visibility = ProtoEnumFlags.visibility(Flags.VISIBILITY.get(flags))
@@ -508,7 +511,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) {
val flags = if (proto.hasFlags()) proto.flags else 0 val flags = if (proto.hasFlags()) proto.flags else 0
val name = c.nameResolver.getName(proto.name) val name = c.nameResolver.getName(proto.name)
buildValueParameter { buildValueParameter {
declarationSiteSession = c.session moduleData = c.moduleData
origin = FirDeclarationOrigin.Library origin = FirDeclarationOrigin.Library
returnTypeRef = proto.type(c.typeTable).toTypeRef(c) returnTypeRef = proto.type(c.typeTable).toTypeRef(c)
this.name = name this.name = name
@@ -6,7 +6,7 @@
package org.jetbrains.kotlin.fir.deserialization package org.jetbrains.kotlin.fir.deserialization
import org.jetbrains.kotlin.builtins.functions.FunctionClassKind import org.jetbrains.kotlin.builtins.functions.FunctionClassKind
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRefsOwner import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRefsOwner
import org.jetbrains.kotlin.fir.declarations.addDefaultBoundIfNecessary import org.jetbrains.kotlin.fir.declarations.addDefaultBoundIfNecessary
@@ -18,7 +18,6 @@ import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.firUnsafe
import org.jetbrains.kotlin.fir.symbols.ConeClassLikeLookupTag import org.jetbrains.kotlin.fir.symbols.ConeClassLikeLookupTag
import org.jetbrains.kotlin.fir.symbols.ConeClassifierLookupTag import org.jetbrains.kotlin.fir.symbols.ConeClassifierLookupTag
import org.jetbrains.kotlin.fir.symbols.ConeTypeParameterLookupTag import org.jetbrains.kotlin.fir.symbols.ConeTypeParameterLookupTag
import org.jetbrains.kotlin.name.StandardClassIds
import org.jetbrains.kotlin.fir.symbols.impl.ConeClassLikeLookupTagImpl import org.jetbrains.kotlin.fir.symbols.impl.ConeClassLikeLookupTagImpl
import org.jetbrains.kotlin.fir.symbols.impl.FirClassLikeSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirClassLikeSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol
@@ -29,6 +28,7 @@ import org.jetbrains.kotlin.fir.types.impl.ConeTypeParameterTypeImpl
import org.jetbrains.kotlin.metadata.ProtoBuf import org.jetbrains.kotlin.metadata.ProtoBuf
import org.jetbrains.kotlin.metadata.deserialization.* import org.jetbrains.kotlin.metadata.deserialization.*
import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.name.StandardClassIds
import org.jetbrains.kotlin.serialization.deserialization.ProtoEnumFlags import org.jetbrains.kotlin.serialization.deserialization.ProtoEnumFlags
import org.jetbrains.kotlin.serialization.deserialization.getClassId import org.jetbrains.kotlin.serialization.deserialization.getClassId
import org.jetbrains.kotlin.serialization.deserialization.getName import org.jetbrains.kotlin.serialization.deserialization.getName
@@ -36,7 +36,7 @@ import org.jetbrains.kotlin.types.Variance
import java.util.* import java.util.*
class FirTypeDeserializer( class FirTypeDeserializer(
val session: FirSession, val moduleData: FirModuleData,
val nameResolver: NameResolver, val nameResolver: NameResolver,
val typeTable: TypeTable, val typeTable: TypeTable,
val annotationDeserializer: AbstractAnnotationDeserializer, val annotationDeserializer: AbstractAnnotationDeserializer,
@@ -66,7 +66,7 @@ class FirTypeDeserializer(
typeParameterNames[name.asString()] = it typeParameterNames[name.asString()] = it
} }
builders += FirTypeParameterBuilder().apply { builders += FirTypeParameterBuilder().apply {
declarationSiteSession = session moduleData = this@FirTypeDeserializer.moduleData
origin = FirDeclarationOrigin.Library origin = FirDeclarationOrigin.Library
this.name = name this.name = name
this.symbol = symbol this.symbol = symbol
@@ -189,7 +189,7 @@ class FirTypeDeserializer(
attributes: ConeAttributes attributes: ConeAttributes
): ConeClassLikeType { ): ConeClassLikeType {
val result = val result =
when (functionTypeConstructor.toSymbol(session)!!.firUnsafe<FirTypeParameterRefsOwner>().typeParameters.size - arguments.size) { when (functionTypeConstructor.toSymbol(moduleData.session)!!.firUnsafe<FirTypeParameterRefsOwner>().typeParameters.size - arguments.size) {
0 -> createSuspendFunctionTypeForBasicCase(functionTypeConstructor, arguments, isNullable, attributes) 0 -> createSuspendFunctionTypeForBasicCase(functionTypeConstructor, arguments, isNullable, attributes)
1 -> { 1 -> {
val arity = arguments.size - 1 val arity = arguments.size - 1
@@ -23,7 +23,6 @@ import org.jetbrains.kotlin.fir.resolve.defaultType
import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider
import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProviderInternals import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProviderInternals
import org.jetbrains.kotlin.fir.scopes.FirKotlinScopeProvider import org.jetbrains.kotlin.fir.scopes.FirKotlinScopeProvider
import org.jetbrains.kotlin.name.StandardClassIds
import org.jetbrains.kotlin.fir.symbols.impl.* import org.jetbrains.kotlin.fir.symbols.impl.*
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
import org.jetbrains.kotlin.fir.types.builder.buildResolvedTypeRef import org.jetbrains.kotlin.fir.types.builder.buildResolvedTypeRef
@@ -32,10 +31,7 @@ import org.jetbrains.kotlin.fir.types.impl.ConeTypeParameterTypeImpl
import org.jetbrains.kotlin.metadata.ProtoBuf import org.jetbrains.kotlin.metadata.ProtoBuf
import org.jetbrains.kotlin.metadata.builtins.BuiltInsBinaryVersion import org.jetbrains.kotlin.metadata.builtins.BuiltInsBinaryVersion
import org.jetbrains.kotlin.metadata.deserialization.NameResolverImpl import org.jetbrains.kotlin.metadata.deserialization.NameResolverImpl
import org.jetbrains.kotlin.name.CallableId import org.jetbrains.kotlin.name.*
import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.serialization.deserialization.ProtoBasedClassDataFinder import org.jetbrains.kotlin.serialization.deserialization.ProtoBasedClassDataFinder
import org.jetbrains.kotlin.serialization.deserialization.builtins.BuiltInSerializerProtocol import org.jetbrains.kotlin.serialization.deserialization.builtins.BuiltInSerializerProtocol
import org.jetbrains.kotlin.serialization.deserialization.getName import org.jetbrains.kotlin.serialization.deserialization.getName
@@ -46,7 +42,11 @@ import java.io.InputStream
//TODO make thread safe //TODO make thread safe
@ThreadSafeMutableState @ThreadSafeMutableState
open class FirBuiltinSymbolProvider(session: FirSession, val kotlinScopeProvider: FirKotlinScopeProvider) : FirSymbolProvider(session) { open class FirBuiltinSymbolProvider(
session: FirSession,
val moduleData: FirModuleData,
val kotlinScopeProvider: FirKotlinScopeProvider
) : FirSymbolProvider(session) {
private data class SyntheticFunctionalInterfaceSymbolKey(val kind: FunctionClassKind, val arity: Int) private data class SyntheticFunctionalInterfaceSymbolKey(val kind: FunctionClassKind, val arity: Int)
@@ -61,7 +61,7 @@ open class FirBuiltinSymbolProvider(session: FirSession, val kotlinScopeProvider
return packageFqNames.map { fqName -> return packageFqNames.map { fqName ->
val resourcePath = BuiltInSerializerProtocol.getBuiltInsFilePath(fqName) val resourcePath = BuiltInSerializerProtocol.getBuiltInsFilePath(fqName)
val inputStream = streamProvider(resourcePath) ?: throw IllegalStateException("Resource not found in classpath: $resourcePath") val inputStream = streamProvider(resourcePath) ?: throw IllegalStateException("Resource not found in classpath: $resourcePath")
BuiltInsPackageFragment(inputStream, fqName, session, kotlinScopeProvider) BuiltInsPackageFragment(inputStream, fqName)
} }
} }
@@ -85,7 +85,7 @@ open class FirBuiltinSymbolProvider(session: FirSession, val kotlinScopeProvider
syntheticFunctionalInterfaceSymbols.getOrPut(SyntheticFunctionalInterfaceSymbolKey(kind, arity)) { syntheticFunctionalInterfaceSymbols.getOrPut(SyntheticFunctionalInterfaceSymbolKey(kind, arity)) {
FirRegularClassSymbol(this).apply symbol@{ FirRegularClassSymbol(this).apply symbol@{
buildRegularClass klass@{ buildRegularClass klass@{
declarationSiteSession = session moduleData = this@FirBuiltinSymbolProvider.moduleData
origin = FirDeclarationOrigin.BuiltIns origin = FirDeclarationOrigin.BuiltIns
name = relativeClassName.shortName() name = relativeClassName.shortName()
status = FirResolvedDeclarationStatusImpl( status = FirResolvedDeclarationStatusImpl(
@@ -107,7 +107,7 @@ open class FirBuiltinSymbolProvider(session: FirSession, val kotlinScopeProvider
typeParameters.addAll( typeParameters.addAll(
(1..arity).map { (1..arity).map {
buildTypeParameter { buildTypeParameter {
declarationSiteSession = session moduleData = this@FirBuiltinSymbolProvider.moduleData
resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES
origin = FirDeclarationOrigin.BuiltIns origin = FirDeclarationOrigin.BuiltIns
name = Name.identifier("P$it") name = Name.identifier("P$it")
@@ -120,7 +120,7 @@ open class FirBuiltinSymbolProvider(session: FirSession, val kotlinScopeProvider
) )
typeParameters.add( typeParameters.add(
buildTypeParameter { buildTypeParameter {
declarationSiteSession = session moduleData = this@FirBuiltinSymbolProvider.moduleData
resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES
origin = FirDeclarationOrigin.BuiltIns origin = FirDeclarationOrigin.BuiltIns
name = Name.identifier("R") name = Name.identifier("R")
@@ -196,7 +196,7 @@ open class FirBuiltinSymbolProvider(session: FirSession, val kotlinScopeProvider
} }
addDeclaration( addDeclaration(
buildSimpleFunction { buildSimpleFunction {
declarationSiteSession = session moduleData = this@FirBuiltinSymbolProvider.moduleData
resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES
origin = FirDeclarationOrigin.BuiltIns origin = FirDeclarationOrigin.BuiltIns
returnTypeRef = typeArguments.last() returnTypeRef = typeArguments.last()
@@ -209,7 +209,7 @@ open class FirBuiltinSymbolProvider(session: FirSession, val kotlinScopeProvider
valueParameters += typeArguments.dropLast(1).mapIndexed { index, typeArgument -> valueParameters += typeArguments.dropLast(1).mapIndexed { index, typeArgument ->
val parameterName = Name.identifier("p${index + 1}") val parameterName = Name.identifier("p${index + 1}")
buildValueParameter { buildValueParameter {
declarationSiteSession = session moduleData = this@FirBuiltinSymbolProvider.moduleData
origin = FirDeclarationOrigin.BuiltIns origin = FirDeclarationOrigin.BuiltIns
resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES
returnTypeRef = typeArgument returnTypeRef = typeArgument
@@ -254,10 +254,7 @@ open class FirBuiltinSymbolProvider(session: FirSession, val kotlinScopeProvider
override fun getTopLevelPropertySymbolsTo(destination: MutableList<FirPropertySymbol>, packageFqName: FqName, name: Name) { override fun getTopLevelPropertySymbolsTo(destination: MutableList<FirPropertySymbol>, packageFqName: FqName, name: Name) {
} }
private class BuiltInsPackageFragment( private inner class BuiltInsPackageFragment(stream: InputStream, val fqName: FqName) {
stream: InputStream, val fqName: FqName, val session: FirSession,
val kotlinScopeProvider: FirKotlinScopeProvider,
) {
lateinit var version: BuiltInsBinaryVersion lateinit var version: BuiltInsBinaryVersion
val packageProto: ProtoBuf.PackageFragment = run { val packageProto: ProtoBuf.PackageFragment = run {
@@ -282,7 +279,7 @@ open class FirBuiltinSymbolProvider(session: FirSession, val kotlinScopeProvider
private val memberDeserializer by lazy { private val memberDeserializer by lazy {
FirDeserializationContext.createForPackage( FirDeserializationContext.createForPackage(
fqName, packageProto.`package`, nameResolver, session, fqName, packageProto.`package`, nameResolver, moduleData,
FirBuiltinAnnotationDeserializer(session), FirBuiltinAnnotationDeserializer(session),
FirConstDeserializer(session), FirConstDeserializer(session),
containerSource = null containerSource = null
@@ -305,9 +302,16 @@ open class FirBuiltinSymbolProvider(session: FirSession, val kotlinScopeProvider
val classProto = classData.classProto val classProto = classData.classProto
deserializeClassToSymbol( deserializeClassToSymbol(
classId, classProto, symbol, nameResolver, session, classId,
null, kotlinScopeProvider, parentContext, classProto,
null, symbol,
nameResolver,
session,
moduleData,
defaultAnnotationDeserializer = null,
kotlinScopeProvider,
parentContext,
containerSource = null,
origin = FirDeclarationOrigin.BuiltIns, origin = FirDeclarationOrigin.BuiltIns,
this::findAndDeserializeClass, this::findAndDeserializeClass,
) )
@@ -79,7 +79,7 @@ class FirMetadataSerializer(
val function = this val function = this
return buildAnonymousFunction { return buildAnonymousFunction {
val typeParameterSet = function.typeParameters.filterIsInstanceTo(mutableSetOf<FirTypeParameter>()) val typeParameterSet = function.typeParameters.filterIsInstanceTo(mutableSetOf<FirTypeParameter>())
declarationSiteSession = function.declarationSiteSession moduleData = function.moduleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
symbol = FirAnonymousFunctionSymbol() symbol = FirAnonymousFunctionSymbol()
returnTypeRef = function.returnTypeRef.approximated(toSuper = true, typeParameterSet) returnTypeRef = function.returnTypeRef.approximated(toSuper = true, typeParameterSet)
@@ -98,7 +98,7 @@ class FirMetadataSerializer(
val accessor = this val accessor = this
return buildPropertyAccessor { return buildPropertyAccessor {
val typeParameterSet = accessor.typeParameters.toMutableSet() val typeParameterSet = accessor.typeParameters.toMutableSet()
declarationSiteSession = accessor.declarationSiteSession moduleData = accessor.moduleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
returnTypeRef = accessor.returnTypeRef.approximated(toSuper = true, typeParameterSet) returnTypeRef = accessor.returnTypeRef.approximated(toSuper = true, typeParameterSet)
symbol = FirPropertyAccessorSymbol() symbol = FirPropertyAccessorSymbol()
@@ -118,7 +118,7 @@ class FirMetadataSerializer(
val property = this val property = this
return buildProperty { return buildProperty {
val typeParameterSet = property.typeParameters.toMutableSet() val typeParameterSet = property.typeParameters.toMutableSet()
declarationSiteSession = property.declarationSiteSession moduleData = property.moduleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
symbol = FirPropertySymbol(property.symbol.callableId) symbol = FirPropertySymbol(property.symbol.callableId)
returnTypeRef = property.returnTypeRef.approximated(toSuper = true, typeParameterSet) returnTypeRef = property.returnTypeRef.approximated(toSuper = true, typeParameterSet)
@@ -739,7 +739,7 @@ class Fir2IrDeclarationStorage(
val field = this val field = this
return buildProperty { return buildProperty {
source = field.source source = field.source
declarationSiteSession = field.declarationSiteSession moduleData = field.moduleData
origin = field.origin origin = field.origin
returnTypeRef = field.returnTypeRef returnTypeRef = field.returnTypeRef
name = field.name name = field.name
@@ -574,7 +574,7 @@ class Fir2IrVisitor(
override fun visitElvisExpression(elvisExpression: FirElvisExpression, data: Any?): IrElement { override fun visitElvisExpression(elvisExpression: FirElvisExpression, data: Any?): IrElement {
val firLhsVariable = buildProperty { val firLhsVariable = buildProperty {
source = elvisExpression.source source = elvisExpression.source
declarationSiteSession = session moduleData = session.moduleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
returnTypeRef = elvisExpression.lhs.typeRef returnTypeRef = elvisExpression.lhs.typeRef
name = Name.special("<elvis>") name = Name.special("<elvis>")
@@ -14,7 +14,7 @@ sealed class FirMetadataSource : MetadataSource {
abstract val fir: FirDeclaration abstract val fir: FirDeclaration
val declarationSiteSession: FirSession val declarationSiteSession: FirSession
get() = fir.declarationSiteSession get() = fir.moduleData.session
override val name: Name? override val name: Name?
get() = when (val fir = fir) { get() = when (val fir = fir) {
@@ -16,8 +16,8 @@ import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.declarations.builder.buildSimpleFunction import org.jetbrains.kotlin.fir.declarations.builder.buildSimpleFunction
import org.jetbrains.kotlin.fir.declarations.builder.buildValueParameter import org.jetbrains.kotlin.fir.declarations.builder.buildValueParameter
import org.jetbrains.kotlin.fir.declarations.impl.FirDeclarationStatusImpl import org.jetbrains.kotlin.fir.declarations.impl.FirDeclarationStatusImpl
import org.jetbrains.kotlin.fir.moduleData
import org.jetbrains.kotlin.fir.scopes.unsubstitutedScope import org.jetbrains.kotlin.fir.scopes.unsubstitutedScope
import org.jetbrains.kotlin.name.CallableId
import org.jetbrains.kotlin.fir.symbols.ConeClassLikeLookupTag import org.jetbrains.kotlin.fir.symbols.ConeClassLikeLookupTag
import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol
@@ -42,6 +42,7 @@ import org.jetbrains.kotlin.ir.types.classOrNull
import org.jetbrains.kotlin.ir.types.classifierOrNull import org.jetbrains.kotlin.ir.types.classifierOrNull
import org.jetbrains.kotlin.ir.util.* import org.jetbrains.kotlin.ir.util.*
import org.jetbrains.kotlin.ir.util.DataClassMembersGenerator import org.jetbrains.kotlin.ir.util.DataClassMembersGenerator
import org.jetbrains.kotlin.name.CallableId
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.util.OperatorNameConventions.EQUALS import org.jetbrains.kotlin.util.OperatorNameConventions.EQUALS
import org.jetbrains.kotlin.util.OperatorNameConventions.TO_STRING import org.jetbrains.kotlin.util.OperatorNameConventions.TO_STRING
@@ -263,7 +264,7 @@ class DataClassMembersGenerator(val components: Fir2IrComponents) {
this.name = name this.name = name
this.symbol = FirNamedFunctionSymbol(CallableId(lookupTag.classId, name)) this.symbol = FirNamedFunctionSymbol(CallableId(lookupTag.classId, name))
this.status = FirDeclarationStatusImpl(Visibilities.Public, Modality.FINAL) this.status = FirDeclarationStatusImpl(Visibilities.Public, Modality.FINAL)
declarationSiteSession = components.session moduleData = components.session.moduleData
this.returnTypeRef = when (returnType) { this.returnTypeRef = when (returnType) {
components.irBuiltIns.booleanType -> FirImplicitBooleanTypeRef(null) components.irBuiltIns.booleanType -> FirImplicitBooleanTypeRef(null)
components.irBuiltIns.intType -> FirImplicitIntTypeRef(null) components.irBuiltIns.intType -> FirImplicitIntTypeRef(null)
@@ -275,7 +276,7 @@ class DataClassMembersGenerator(val components: Fir2IrComponents) {
buildValueParameter { buildValueParameter {
this.name = Name.identifier("other") this.name = Name.identifier("other")
origin = FirDeclarationOrigin.Synthetic origin = FirDeclarationOrigin.Synthetic
declarationSiteSession = components.session moduleData = components.session.moduleData
this.returnTypeRef = FirImplicitNullableAnyTypeRef(null) this.returnTypeRef = FirImplicitNullableAnyTypeRef(null)
this.symbol = FirVariableSymbol(this.name) this.symbol = FirVariableSymbol(this.name)
isCrossinline = false isCrossinline = false
@@ -46,6 +46,7 @@ import org.jetbrains.kotlin.util.OperatorNameConventions
@ThreadSafeMutableState @ThreadSafeMutableState
class JavaSymbolProvider( class JavaSymbolProvider(
session: FirSession, session: FirSession,
val baseModuleData: FirModuleData,
val project: Project, val project: Project,
private val searchScope: GlobalSearchScope, private val searchScope: GlobalSearchScope,
) : FirSymbolProvider(session) { ) : FirSymbolProvider(session) {
@@ -103,7 +104,7 @@ class JavaSymbolProvider(
javaTypeParameterStack: JavaTypeParameterStack javaTypeParameterStack: JavaTypeParameterStack
): FirTypeParameter { ): FirTypeParameter {
return FirTypeParameterBuilder().apply { return FirTypeParameterBuilder().apply {
declarationSiteSession = session moduleData = this@JavaSymbolProvider.baseModuleData
origin = FirDeclarationOrigin.Java origin = FirDeclarationOrigin.Java
this.name = this@toFirTypeParameter.name this.name = this@toFirTypeParameter.name
symbol = firSymbol symbol = firSymbol
@@ -230,7 +231,7 @@ class JavaSymbolProvider(
val classIsAnnotation = javaClass.classKind == ClassKind.ANNOTATION_CLASS val classIsAnnotation = javaClass.classKind == ClassKind.ANNOTATION_CLASS
return buildJavaClass { return buildJavaClass {
source = (javaClass as? JavaElementImpl<*>)?.psi?.toFirPsiSourceElement() source = (javaClass as? JavaElementImpl<*>)?.psi?.toFirPsiSourceElement()
declarationSiteSession = session moduleData = this@JavaSymbolProvider.baseModuleData
symbol = classSymbol symbol = classSymbol
name = javaClass.name name = javaClass.name
val visibility = javaClass.visibility val visibility = javaClass.visibility
@@ -325,11 +326,11 @@ class JavaSymbolProvider(
if (classKind == ClassKind.ENUM_CLASS) { if (classKind == ClassKind.ENUM_CLASS) {
generateValuesFunction( generateValuesFunction(
session, baseModuleData,
classId.packageFqName, classId.packageFqName,
classId.relativeClassName classId.relativeClassName
) )
generateValueOfFunction(session, classId.packageFqName, classId.relativeClassName) generateValueOfFunction(baseModuleData, classId.packageFqName, classId.relativeClassName)
} }
if (classIsAnnotation) { if (classIsAnnotation) {
declarations += declarations +=
@@ -373,7 +374,7 @@ class JavaSymbolProvider(
return when { return when {
javaField.isEnumEntry -> buildEnumEntry { javaField.isEnumEntry -> buildEnumEntry {
source = (javaField as? JavaElementImpl<*>)?.psi?.toFirPsiSourceElement() source = (javaField as? JavaElementImpl<*>)?.psi?.toFirPsiSourceElement()
declarationSiteSession = session moduleData = this@JavaSymbolProvider.baseModuleData
symbol = FirVariableSymbol(fieldId) symbol = FirVariableSymbol(fieldId)
name = fieldName name = fieldName
status = FirResolvedDeclarationStatusImpl( status = FirResolvedDeclarationStatusImpl(
@@ -395,7 +396,7 @@ class JavaSymbolProvider(
} }
else -> buildJavaField { else -> buildJavaField {
source = (javaField as? JavaElementImpl<*>)?.psi?.toFirPsiSourceElement() source = (javaField as? JavaElementImpl<*>)?.psi?.toFirPsiSourceElement()
declarationSiteSession = session moduleData = this@JavaSymbolProvider.baseModuleData
symbol = FirFieldSymbol(fieldId) symbol = FirFieldSymbol(fieldId)
name = fieldName name = fieldName
status = FirResolvedDeclarationStatusImpl( status = FirResolvedDeclarationStatusImpl(
@@ -443,7 +444,7 @@ class JavaSymbolProvider(
val methodSymbol = FirNamedFunctionSymbol(methodId) val methodSymbol = FirNamedFunctionSymbol(methodId)
val returnType = javaMethod.returnType val returnType = javaMethod.returnType
return buildJavaMethod { return buildJavaMethod {
declarationSiteSession = session moduleData = this@JavaSymbolProvider.baseModuleData
source = (javaMethod as? JavaElementImpl<*>)?.psi?.toFirPsiSourceElement() source = (javaMethod as? JavaElementImpl<*>)?.psi?.toFirPsiSourceElement()
symbol = methodSymbol symbol = methodSymbol
name = methodName name = methodName
@@ -454,7 +455,7 @@ class JavaSymbolProvider(
typeParameters += javaMethod.typeParameters.convertTypeParameters(javaTypeParameterStack) typeParameters += javaMethod.typeParameters.convertTypeParameters(javaTypeParameterStack)
for ((index, valueParameter) in javaMethod.valueParameters.withIndex()) { for ((index, valueParameter) in javaMethod.valueParameters.withIndex()) {
valueParameters += valueParameter.toFirValueParameter( valueParameters += valueParameter.toFirValueParameter(
this@JavaSymbolProvider.session, index, javaTypeParameterStack, this@JavaSymbolProvider.session, moduleData, index, javaTypeParameterStack,
) )
} }
annotationBuilder = { javaMethod.annotations.map { it.toFirAnnotationCall(session, javaTypeParameterStack) } } annotationBuilder = { javaMethod.annotations.map { it.toFirAnnotationCall(session, javaTypeParameterStack) } }
@@ -491,7 +492,7 @@ class JavaSymbolProvider(
buildJavaValueParameter { buildJavaValueParameter {
source = (javaMethod as? JavaElementImpl<*>)?.psi source = (javaMethod as? JavaElementImpl<*>)?.psi
?.toFirPsiSourceElement(FirFakeSourceElementKind.ImplicitJavaAnnotationConstructor) ?.toFirPsiSourceElement(FirFakeSourceElementKind.ImplicitJavaAnnotationConstructor)
declarationSiteSession = session moduleData = this@JavaSymbolProvider.baseModuleData
returnTypeRef = firJavaMethod.returnTypeRef returnTypeRef = firJavaMethod.returnTypeRef
name = javaMethod.name name = javaMethod.name
isVararg = javaMethod.returnType is JavaArrayType && javaMethod.name == VALUE_METHOD_NAME isVararg = javaMethod.returnType is JavaArrayType && javaMethod.name == VALUE_METHOD_NAME
@@ -509,7 +510,7 @@ class JavaSymbolProvider(
val constructorSymbol = FirConstructorSymbol(constructorId) val constructorSymbol = FirConstructorSymbol(constructorId)
return buildJavaConstructor { return buildJavaConstructor {
source = (javaConstructor as? JavaElementImpl<*>)?.psi?.toFirPsiSourceElement() source = (javaConstructor as? JavaElementImpl<*>)?.psi?.toFirPsiSourceElement()
declarationSiteSession = session moduleData = this@JavaSymbolProvider.baseModuleData
symbol = constructorSymbol symbol = constructorSymbol
isInner = javaClass.outerClass != null && !javaClass.isStatic isInner = javaClass.outerClass != null && !javaClass.isStatic
val isThisInner = this.isInner val isThisInner = this.isInner
@@ -536,7 +537,7 @@ class JavaSymbolProvider(
annotationBuilder = { javaConstructor.annotations.map { it.toFirAnnotationCall(session, javaTypeParameterStack) } } annotationBuilder = { javaConstructor.annotations.map { it.toFirAnnotationCall(session, javaTypeParameterStack) } }
for ((index, valueParameter) in javaConstructor.valueParameters.withIndex()) { for ((index, valueParameter) in javaConstructor.valueParameters.withIndex()) {
valueParameters += valueParameter.toFirValueParameter( valueParameters += valueParameter.toFirValueParameter(
this@JavaSymbolProvider.session, index, javaTypeParameterStack, this@JavaSymbolProvider.session, moduleData, index, javaTypeParameterStack,
) )
} }
} else { } else {
@@ -555,7 +556,7 @@ class JavaSymbolProvider(
): FirJavaConstructor { ): FirJavaConstructor {
return buildJavaConstructor { return buildJavaConstructor {
source = classSource source = classSource
declarationSiteSession = session moduleData = this@JavaSymbolProvider.baseModuleData
symbol = FirConstructorSymbol(constructorId) symbol = FirConstructorSymbol(constructorId)
status = FirResolvedDeclarationStatusImpl(Visibilities.Public, Modality.FINAL, EffectiveVisibility.Public) status = FirResolvedDeclarationStatusImpl(Visibilities.Public, Modality.FINAL, EffectiveVisibility.Public)
returnTypeRef = buildResolvedTypeRef { returnTypeRef = buildResolvedTypeRef {
@@ -32,7 +32,6 @@ import org.jetbrains.kotlin.fir.resolve.toSymbol
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.expectedConeType import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.expectedConeType
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.firUnsafe import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.firUnsafe
import org.jetbrains.kotlin.fir.symbols.ConeClassLikeLookupTag import org.jetbrains.kotlin.fir.symbols.ConeClassLikeLookupTag
import org.jetbrains.kotlin.name.StandardClassIds
import org.jetbrains.kotlin.fir.symbols.impl.ConeClassLikeLookupTagImpl import org.jetbrains.kotlin.fir.symbols.impl.ConeClassLikeLookupTagImpl
import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol
import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.fir.types.*
@@ -48,6 +47,7 @@ import org.jetbrains.kotlin.load.java.typeEnhancement.TypeComponentPosition
import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.name.StandardClassIds
import org.jetbrains.kotlin.types.ConstantValueKind import org.jetbrains.kotlin.types.ConstantValueKind
import org.jetbrains.kotlin.types.Variance.* import org.jetbrains.kotlin.types.Variance.*
import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeAsciiOnly import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeAsciiOnly
@@ -57,6 +57,33 @@ import java.lang.annotation.Documented
import java.lang.annotation.Retention import java.lang.annotation.Retention
import java.lang.annotation.Target import java.lang.annotation.Target
import java.util.* import java.util.*
import kotlin.Any
import kotlin.Array
import kotlin.Boolean
import kotlin.BooleanArray
import kotlin.Byte
import kotlin.ByteArray
import kotlin.Char
import kotlin.CharArray
import kotlin.Double
import kotlin.DoubleArray
import kotlin.Float
import kotlin.FloatArray
import kotlin.Int
import kotlin.IntArray
import kotlin.Long
import kotlin.LongArray
import kotlin.Short
import kotlin.ShortArray
import kotlin.String
import kotlin.Suppress
import kotlin.also
import kotlin.arrayOf
import kotlin.emptyArray
import kotlin.error
import kotlin.let
import kotlin.run
import kotlin.to
internal val JavaModifierListOwner.modality: Modality internal val JavaModifierListOwner.modality: Modality
get() = when { get() = when {
@@ -586,11 +613,11 @@ internal fun MutableList<FirAnnotationCall>.addAnnotationsFrom(
} }
internal fun JavaValueParameter.toFirValueParameter( internal fun JavaValueParameter.toFirValueParameter(
session: FirSession, index: Int, javaTypeParameterStack: JavaTypeParameterStack session: FirSession, moduleData: FirModuleData, index: Int, javaTypeParameterStack: JavaTypeParameterStack
): FirValueParameter { ): FirValueParameter {
return buildJavaValueParameter { return buildJavaValueParameter {
source = (this@toFirValueParameter as? JavaElementImpl<*>)?.psi?.toFirPsiSourceElement() source = (this@toFirValueParameter as? JavaElementImpl<*>)?.psi?.toFirPsiSourceElement()
declarationSiteSession = session this.moduleData = moduleData
name = this@toFirValueParameter.name ?: Name.identifier("p$index") name = this@toFirValueParameter.name ?: Name.identifier("p$index")
returnTypeRef = type.toFirJavaTypeRef(session, javaTypeParameterStack) returnTypeRef = type.toFirJavaTypeRef(session, javaTypeParameterStack)
isVararg = this@toFirValueParameter.isVararg isVararg = this@toFirValueParameter.isVararg
@@ -7,10 +7,10 @@ package org.jetbrains.kotlin.fir.java.declarations
import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.ClassKind
import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.fir.FirImplementationDetail
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.descriptors.Visibility
import org.jetbrains.kotlin.fir.FirImplementationDetail
import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.*
@@ -31,7 +31,7 @@ import kotlin.properties.Delegates
@OptIn(FirImplementationDetail::class) @OptIn(FirImplementationDetail::class)
class FirJavaClass @FirImplementationDetail internal constructor( class FirJavaClass @FirImplementationDetail internal constructor(
override val source: FirSourceElement?, override val source: FirSourceElement?,
override val declarationSiteSession: FirSession, override val moduleData: FirModuleData,
override var resolvePhase: FirResolvePhase, override var resolvePhase: FirResolvePhase,
override val name: Name, override val name: Name,
override val annotations: MutableList<FirAnnotationCall>, override val annotations: MutableList<FirAnnotationCall>,
@@ -140,7 +140,7 @@ internal class FirJavaClassBuilder : FirRegularClassBuilder(), FirAnnotationCont
override fun build(): FirJavaClass { override fun build(): FirJavaClass {
return FirJavaClass( return FirJavaClass(
source, source,
declarationSiteSession, moduleData,
resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES, resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES,
name, name,
annotations, annotations,
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.fir.java.declarations
import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.descriptors.Visibility
import org.jetbrains.kotlin.fir.FirImplementationDetail import org.jetbrains.kotlin.fir.FirImplementationDetail
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.*
@@ -29,7 +29,7 @@ import kotlin.properties.Delegates
@OptIn(FirImplementationDetail::class) @OptIn(FirImplementationDetail::class)
class FirJavaConstructor @FirImplementationDetail constructor( class FirJavaConstructor @FirImplementationDetail constructor(
override val source: FirSourceElement?, override val source: FirSourceElement?,
override val declarationSiteSession: FirSession, override val moduleData: FirModuleData,
override val symbol: FirConstructorSymbol, override val symbol: FirConstructorSymbol,
override val isPrimary: Boolean, override val isPrimary: Boolean,
override var returnTypeRef: FirTypeRef, override var returnTypeRef: FirTypeRef,
@@ -151,7 +151,7 @@ class FirJavaConstructorBuilder : FirConstructorBuilder() {
override fun build(): FirJavaConstructor { override fun build(): FirJavaConstructor {
return FirJavaConstructor( return FirJavaConstructor(
source, source,
declarationSiteSession, moduleData,
symbol, symbol,
isPrimary, isPrimary,
returnTypeRef, returnTypeRef,
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.fir.java.declarations
import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.descriptors.Visibility
import org.jetbrains.kotlin.fir.FirImplementationDetail import org.jetbrains.kotlin.fir.FirImplementationDetail
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.*
@@ -33,7 +33,7 @@ import kotlin.properties.Delegates
@OptIn(FirImplementationDetail::class) @OptIn(FirImplementationDetail::class)
class FirJavaField @FirImplementationDetail constructor( class FirJavaField @FirImplementationDetail constructor(
override val source: FirSourceElement?, override val source: FirSourceElement?,
override val declarationSiteSession: FirSession, override val moduleData: FirModuleData,
override val symbol: FirFieldSymbol, override val symbol: FirFieldSymbol,
override val name: Name, override val name: Name,
override var resolvePhase: FirResolvePhase, override var resolvePhase: FirResolvePhase,
@@ -156,7 +156,7 @@ internal class FirJavaFieldBuilder : FirFieldBuilder() {
override fun build(): FirJavaField { override fun build(): FirJavaField {
return FirJavaField( return FirJavaField(
source, source,
declarationSiteSession, moduleData,
symbol as FirFieldSymbol, symbol as FirFieldSymbol,
name, name,
resolvePhase, resolvePhase,
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.fir.java.declarations
import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.descriptors.Visibility
import org.jetbrains.kotlin.fir.FirImplementationDetail import org.jetbrains.kotlin.fir.FirImplementationDetail
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
@@ -51,7 +51,7 @@ import kotlin.properties.Delegates
@OptIn(FirImplementationDetail::class) @OptIn(FirImplementationDetail::class)
class FirJavaMethod @FirImplementationDetail constructor( class FirJavaMethod @FirImplementationDetail constructor(
override val source: FirSourceElement?, override val source: FirSourceElement?,
override val declarationSiteSession: FirSession, override val moduleData: FirModuleData,
override var resolvePhase: FirResolvePhase, override var resolvePhase: FirResolvePhase,
override val attributes: FirDeclarationAttributes, override val attributes: FirDeclarationAttributes,
override var returnTypeRef: FirTypeRef, override var returnTypeRef: FirTypeRef,
@@ -181,7 +181,7 @@ val ALL_JAVA_OPERATION_NAMES =
@FirBuilderDsl @FirBuilderDsl
class FirJavaMethodBuilder : FirFunctionBuilder, FirTypeParametersOwnerBuilder, FirAnnotationContainerBuilder { class FirJavaMethodBuilder : FirFunctionBuilder, FirTypeParametersOwnerBuilder, FirAnnotationContainerBuilder {
override var source: FirSourceElement? = null override var source: FirSourceElement? = null
override lateinit var declarationSiteSession: FirSession override lateinit var moduleData: FirModuleData
override var attributes: FirDeclarationAttributes = FirDeclarationAttributes() override var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
override lateinit var returnTypeRef: FirTypeRef override lateinit var returnTypeRef: FirTypeRef
override val valueParameters: MutableList<FirValueParameter> = mutableListOf() override val valueParameters: MutableList<FirValueParameter> = mutableListOf()
@@ -209,7 +209,7 @@ class FirJavaMethodBuilder : FirFunctionBuilder, FirTypeParametersOwnerBuilder,
override fun build(): FirJavaMethod { override fun build(): FirJavaMethod {
return FirJavaMethod( return FirJavaMethod(
source, source,
declarationSiteSession, moduleData,
resolvePhase, resolvePhase,
attributes, attributes,
returnTypeRef as FirJavaTypeRef, returnTypeRef as FirJavaTypeRef,
@@ -235,7 +235,7 @@ inline fun buildJavaMethodCopy(original: FirSimpleFunction, init: FirJavaMethodB
} }
val copyBuilder = FirJavaMethodBuilder() val copyBuilder = FirJavaMethodBuilder()
copyBuilder.source = original.source copyBuilder.source = original.source
copyBuilder.declarationSiteSession = original.declarationSiteSession copyBuilder.moduleData = original.moduleData
copyBuilder.resolvePhase = original.resolvePhase copyBuilder.resolvePhase = original.resolvePhase
copyBuilder.attributes = original.attributes.copy() copyBuilder.attributes = original.attributes.copy()
copyBuilder.returnTypeRef = original.returnTypeRef copyBuilder.returnTypeRef = original.returnTypeRef
@@ -6,7 +6,7 @@
package org.jetbrains.kotlin.fir.java.declarations package org.jetbrains.kotlin.fir.java.declarations
import org.jetbrains.kotlin.fir.FirImplementationDetail import org.jetbrains.kotlin.fir.FirImplementationDetail
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.*
@@ -27,7 +27,7 @@ import kotlin.contracts.contract
@OptIn(FirImplementationDetail::class) @OptIn(FirImplementationDetail::class)
class FirJavaValueParameter @FirImplementationDetail constructor( class FirJavaValueParameter @FirImplementationDetail constructor(
override val source: FirSourceElement?, override val source: FirSourceElement?,
override val declarationSiteSession: FirSession, override val moduleData: FirModuleData,
override var resolvePhase: FirResolvePhase, override var resolvePhase: FirResolvePhase,
override val attributes: FirDeclarationAttributes, override val attributes: FirDeclarationAttributes,
override var returnTypeRef: FirTypeRef, override var returnTypeRef: FirTypeRef,
@@ -146,7 +146,7 @@ class FirJavaValueParameter @FirImplementationDetail constructor(
@FirBuilderDsl @FirBuilderDsl
class FirJavaValueParameterBuilder { class FirJavaValueParameterBuilder {
var source: FirSourceElement? = null var source: FirSourceElement? = null
lateinit var declarationSiteSession: FirSession lateinit var moduleData: FirModuleData
var attributes: FirDeclarationAttributes = FirDeclarationAttributes() var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
lateinit var returnTypeRef: FirTypeRef lateinit var returnTypeRef: FirTypeRef
lateinit var name: Name lateinit var name: Name
@@ -158,7 +158,7 @@ class FirJavaValueParameterBuilder {
fun build(): FirJavaValueParameter { fun build(): FirJavaValueParameter {
return FirJavaValueParameter( return FirJavaValueParameter(
source, source,
declarationSiteSession, moduleData,
resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES, resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES,
attributes, attributes,
returnTypeRef, returnTypeRef,
@@ -182,7 +182,7 @@ inline fun buildJavaValueParameterCopy(original: FirValueParameter, init: FirJav
} }
val copyBuilder = FirJavaValueParameterBuilder() val copyBuilder = FirJavaValueParameterBuilder()
copyBuilder.source = original.source copyBuilder.source = original.source
copyBuilder.declarationSiteSession = original.declarationSiteSession copyBuilder.moduleData = original.moduleData
copyBuilder.attributes = original.attributes.copy() copyBuilder.attributes = original.attributes.copy()
copyBuilder.returnTypeRef = original.returnTypeRef copyBuilder.returnTypeRef = original.returnTypeRef
copyBuilder.name = original.name copyBuilder.name = original.name
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir.java.deserialization
import com.intellij.openapi.progress.ProcessCanceledException import com.intellij.openapi.progress.ProcessCanceledException
import org.jetbrains.kotlin.descriptors.SourceElement import org.jetbrains.kotlin.descriptors.SourceElement
import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.ThreadSafeMutableState import org.jetbrains.kotlin.fir.ThreadSafeMutableState
import org.jetbrains.kotlin.fir.caches.* import org.jetbrains.kotlin.fir.caches.*
@@ -34,13 +35,13 @@ import org.jetbrains.kotlin.serialization.deserialization.IncompatibleVersionErr
@ThreadSafeMutableState @ThreadSafeMutableState
class KotlinDeserializedJvmSymbolsProvider( class KotlinDeserializedJvmSymbolsProvider(
session: FirSession, moduleData: FirModuleData,
kotlinScopeProvider: FirKotlinScopeProvider, kotlinScopeProvider: FirKotlinScopeProvider,
private val packagePartProvider: PackagePartProvider, private val packagePartProvider: PackagePartProvider,
private val kotlinClassFinder: KotlinClassFinder, private val kotlinClassFinder: KotlinClassFinder,
private val javaSymbolProvider: JavaSymbolProvider, private val javaSymbolProvider: JavaSymbolProvider,
javaClassFinder: JavaClassFinder, javaClassFinder: JavaClassFinder,
) : AbstractFirDeserializedSymbolsProvider(session, kotlinScopeProvider) { ) : AbstractFirDeserializedSymbolsProvider(moduleData, kotlinScopeProvider) {
private val knownNameInPackageCache = KnownNameInPackageCache(session, javaClassFinder) private val knownNameInPackageCache = KnownNameInPackageCache(session, javaClassFinder)
private val annotationsLoader = AnnotationsLoader(session) private val annotationsLoader = AnnotationsLoader(session)
@@ -68,7 +69,7 @@ class KotlinDeserializedJvmSymbolsProvider(
PackagePartsCacheData( PackagePartsCacheData(
packageProto, packageProto,
FirDeserializationContext.createForPackage( FirDeserializationContext.createForPackage(
packageFqName, packageProto, nameResolver, session, packageFqName, packageProto, nameResolver, moduleData,
JvmBinaryAnnotationDeserializer(session, kotlinJvmBinaryClass, kotlinClassFinder, byteContent), JvmBinaryAnnotationDeserializer(session, kotlinJvmBinaryClass, kotlinClassFinder, byteContent),
FirConstDeserializer(session, facadeBinaryClass ?: kotlinJvmBinaryClass), FirConstDeserializer(session, facadeBinaryClass ?: kotlinJvmBinaryClass),
source source
@@ -37,6 +37,8 @@ class FirSignatureEnhancement(
private val session: FirSession, private val session: FirSession,
private val overridden: FirSimpleFunction.() -> List<FirCallableMemberDeclaration<*>> private val overridden: FirSimpleFunction.() -> List<FirCallableMemberDeclaration<*>>
) { ) {
private val moduleData = session.moduleData
private val javaTypeParameterStack: JavaTypeParameterStack = private val javaTypeParameterStack: JavaTypeParameterStack =
if (owner is FirJavaClass) owner.javaTypeParameterStack else JavaTypeParameterStack.EMPTY if (owner is FirJavaClass) owner.javaTypeParameterStack else JavaTypeParameterStack.EMPTY
@@ -94,7 +96,7 @@ class FirSignatureEnhancement(
val symbol = FirFieldSymbol(original.callableId) val symbol = FirFieldSymbol(original.callableId)
buildJavaField { buildJavaField {
source = firElement.source source = firElement.source
declarationSiteSession = session moduleData = this@FirSignatureEnhancement.moduleData
this.symbol = symbol this.symbol = symbol
this.name = name this.name = name
returnTypeRef = newReturnTypeRef returnTypeRef = newReturnTypeRef
@@ -131,7 +133,7 @@ class FirSignatureEnhancement(
setterDelegate?.symbol setterDelegate?.symbol
} }
return buildSyntheticProperty { return buildSyntheticProperty {
declarationSiteSession = session moduleData = this@FirSignatureEnhancement.moduleData
this.name = name this.name = name
symbol = FirAccessorSymbol(accessorSymbol.callableId, accessorSymbol.accessorId) symbol = FirAccessorSymbol(accessorSymbol.callableId, accessorSymbol.accessorId)
delegateGetter = enhancedGetterSymbol.fir as FirSimpleFunction delegateGetter = enhancedGetterSymbol.fir as FirSimpleFunction
@@ -207,7 +209,7 @@ class FirSignatureEnhancement(
buildValueParameter { buildValueParameter {
source = valueParameter.source source = valueParameter.source
declarationSiteSession = session moduleData = this@FirSignatureEnhancement.moduleData
origin = FirDeclarationOrigin.Enhancement origin = FirDeclarationOrigin.Enhancement
returnTypeRef = enhancedReturnType returnTypeRef = enhancedReturnType
this.name = valueParameter.name this.name = valueParameter.name
@@ -255,7 +257,7 @@ class FirSignatureEnhancement(
} }
}.apply { }.apply {
source = firMethod.source source = firMethod.source
declarationSiteSession = session moduleData = this@FirSignatureEnhancement.moduleData
resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES
origin = FirDeclarationOrigin.Enhancement origin = FirDeclarationOrigin.Enhancement
this.valueParameters += newValueParameters this.valueParameters += newValueParameters
@@ -265,7 +267,7 @@ class FirSignatureEnhancement(
is FirJavaMethod -> { is FirJavaMethod -> {
FirSimpleFunctionBuilder().apply { FirSimpleFunctionBuilder().apply {
source = firMethod.source source = firMethod.source
declarationSiteSession = session moduleData = this@FirSignatureEnhancement.moduleData
origin = FirDeclarationOrigin.Enhancement origin = FirDeclarationOrigin.Enhancement
returnTypeRef = newReturnTypeRef returnTypeRef = newReturnTypeRef
receiverTypeRef = newReceiverTypeRef receiverTypeRef = newReceiverTypeRef
@@ -9,11 +9,12 @@ import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction
import org.jetbrains.kotlin.fir.declarations.synthetic.FirSyntheticProperty import org.jetbrains.kotlin.fir.declarations.synthetic.FirSyntheticProperty
import org.jetbrains.kotlin.fir.declarations.synthetic.FirSyntheticPropertyAccessor import org.jetbrains.kotlin.fir.declarations.synthetic.FirSyntheticPropertyAccessor
import org.jetbrains.kotlin.fir.moduleData
import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor
import org.jetbrains.kotlin.fir.scopes.FirTypeScope import org.jetbrains.kotlin.fir.scopes.FirTypeScope
import org.jetbrains.kotlin.fir.scopes.ProcessorAction import org.jetbrains.kotlin.fir.scopes.ProcessorAction
import org.jetbrains.kotlin.name.CallableId
import org.jetbrains.kotlin.fir.symbols.impl.* import org.jetbrains.kotlin.fir.symbols.impl.*
import org.jetbrains.kotlin.name.CallableId
import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
@@ -43,7 +44,7 @@ class JavaAnnotationSyntheticPropertiesScope(
val callableId = CallableId(classId, name) val callableId = CallableId(classId, name)
FirAccessorSymbol(callableId, callableId).also { FirAccessorSymbol(callableId, callableId).also {
val accessor = FirSyntheticPropertyAccessor(function, isGetter = true) val accessor = FirSyntheticPropertyAccessor(function, isGetter = true)
FirSyntheticProperty(session, name, isVar = false, it, function.status, function.resolvePhase, accessor) FirSyntheticProperty(session.moduleData, name, isVar = false, it, function.status, function.resolvePhase, accessor)
} }
} }
processor(symbol) processor(symbol)
@@ -17,8 +17,6 @@ import org.jetbrains.kotlin.fir.scopes.*
import org.jetbrains.kotlin.fir.scopes.impl.AbstractFirUseSiteMemberScope import org.jetbrains.kotlin.fir.scopes.impl.AbstractFirUseSiteMemberScope
import org.jetbrains.kotlin.fir.scopes.jvm.computeJvmDescriptor import org.jetbrains.kotlin.fir.scopes.jvm.computeJvmDescriptor
import org.jetbrains.kotlin.fir.scopes.jvm.computeJvmSignature import org.jetbrains.kotlin.fir.scopes.jvm.computeJvmSignature
import org.jetbrains.kotlin.name.CallableId
import org.jetbrains.kotlin.name.StandardClassIds
import org.jetbrains.kotlin.fir.symbols.impl.* import org.jetbrains.kotlin.fir.symbols.impl.*
import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.fir.types.*
import org.jetbrains.kotlin.load.java.BuiltinSpecialProperties import org.jetbrains.kotlin.load.java.BuiltinSpecialProperties
@@ -28,7 +26,9 @@ import org.jetbrains.kotlin.load.java.SpecialGenericSignatures.Companion.ERASED_
import org.jetbrains.kotlin.load.java.SpecialGenericSignatures.Companion.sameAsBuiltinMethodWithErasedValueParameters import org.jetbrains.kotlin.load.java.SpecialGenericSignatures.Companion.sameAsBuiltinMethodWithErasedValueParameters
import org.jetbrains.kotlin.load.java.SpecialGenericSignatures.Companion.sameAsRenamedInJvmBuiltin import org.jetbrains.kotlin.load.java.SpecialGenericSignatures.Companion.sameAsRenamedInJvmBuiltin
import org.jetbrains.kotlin.load.java.getPropertyNamesCandidatesByAccessorName import org.jetbrains.kotlin.load.java.getPropertyNamesCandidatesByAccessorName
import org.jetbrains.kotlin.name.CallableId
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.name.StandardClassIds
import org.jetbrains.kotlin.types.AbstractTypeChecker import org.jetbrains.kotlin.types.AbstractTypeChecker
class JavaClassUseSiteMemberScope( class JavaClassUseSiteMemberScope(
@@ -61,7 +61,7 @@ class JavaClassUseSiteMemberScope(
): FirAccessorSymbol { ): FirAccessorSymbol {
return accessorByNameMap.getOrPut(property.name) { return accessorByNameMap.getOrPut(property.name) {
buildSyntheticProperty { buildSyntheticProperty {
declarationSiteSession = session moduleData = session.moduleData
name = property.name name = property.name
symbol = FirAccessorSymbol( symbol = FirAccessorSymbol(
accessorId = getterSymbol.callableId, accessorId = getterSymbol.callableId,
@@ -11,9 +11,9 @@ import com.intellij.psi.tree.TokenSet
import org.jetbrains.kotlin.KtNodeType import org.jetbrains.kotlin.KtNodeType
import org.jetbrains.kotlin.KtNodeTypes.* import org.jetbrains.kotlin.KtNodeTypes.*
import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.descriptors.Visibilities
import org.jetbrains.kotlin.fir.FirFakeSourceElementKind import org.jetbrains.kotlin.fir.FirFakeSourceElementKind
import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.builder.generateResolvedAccessExpression import org.jetbrains.kotlin.fir.builder.generateResolvedAccessExpression
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirVariable import org.jetbrains.kotlin.fir.declarations.FirVariable
@@ -107,7 +107,7 @@ inline fun isClassLocal(classNode: LighterASTNode, getParent: LighterASTNode.()
} }
fun generateDestructuringBlock( fun generateDestructuringBlock(
session: FirSession, moduleData: FirModuleData,
multiDeclaration: DestructuringDeclaration, multiDeclaration: DestructuringDeclaration,
container: FirVariable<*>, container: FirVariable<*>,
tmpVariable: Boolean tmpVariable: Boolean
@@ -120,7 +120,7 @@ fun generateDestructuringBlock(
for ((index, entry) in multiDeclaration.entries.withIndex()) { for ((index, entry) in multiDeclaration.entries.withIndex()) {
if (entry == null) continue if (entry == null) continue
statements += buildProperty { statements += buildProperty {
declarationSiteSession = session this.moduleData = moduleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
returnTypeRef = entry.returnTypeRef returnTypeRef = entry.returnTypeRef
name = entry.name name = entry.name
@@ -107,7 +107,7 @@ class DeclarationsConverter(
return buildFile { return buildFile {
source = file.toFirSourceElement() source = file.toFirSourceElement()
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
declarationSiteSession = baseSession moduleData = baseModuleData
name = fileName name = fileName
packageFqName = context.packageFqName packageFqName = context.packageFqName
annotations += fileAnnotationList annotations += fileAnnotationList
@@ -129,7 +129,7 @@ class DeclarationsConverter(
CLASS, OBJECT_DECLARATION -> container += convertClass(node) as FirStatement CLASS, OBJECT_DECLARATION -> container += convertClass(node) as FirStatement
FUN -> container += convertFunctionDeclaration(node) as FirStatement FUN -> container += convertFunctionDeclaration(node) as FirStatement
PROPERTY -> container += convertPropertyDeclaration(node) as FirStatement PROPERTY -> container += convertPropertyDeclaration(node) as FirStatement
DESTRUCTURING_DECLARATION -> container += convertDestructingDeclaration(node).toFirDestructingDeclaration(baseSession) DESTRUCTURING_DECLARATION -> container += convertDestructingDeclaration(node).toFirDestructingDeclaration(baseModuleData)
TYPEALIAS -> container += convertTypeAlias(node) as FirStatement TYPEALIAS -> container += convertTypeAlias(node) as FirStatement
CLASS_INITIALIZER -> container += convertAnonymousInitializer(node) as FirStatement CLASS_INITIALIZER -> container += convertAnonymousInitializer(node) as FirStatement
else -> if (node.isExpression()) container += expressionConverter.getAsFirExpression<FirStatement>(node) else -> if (node.isExpression()) container += expressionConverter.getAsFirExpression<FirStatement>(node)
@@ -411,7 +411,7 @@ class DeclarationsConverter(
buildRegularClass { buildRegularClass {
source = classNode.toFirSourceElement() source = classNode.toFirSourceElement()
declarationSiteSession = baseSession moduleData = baseModuleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
name = className name = className
this.status = status this.status = status
@@ -487,7 +487,7 @@ class DeclarationsConverter(
.filter { it.hasValOrVar() } .filter { it.hasValOrVar() }
.map { .map {
it.toFirProperty( it.toFirProperty(
baseSession, baseModuleData,
callableIdForName(it.firValueParameter.name), callableIdForName(it.firValueParameter.name),
classWrapper.hasExpect(), classWrapper.hasExpect(),
currentDispatchReceiverType() currentDispatchReceiverType()
@@ -505,7 +505,6 @@ class DeclarationsConverter(
if (modifiers.isDataClass() && firPrimaryConstructor != null) { if (modifiers.isDataClass() && firPrimaryConstructor != null) {
val zippedParameters = properties.map { it.source!!.lighterASTNode to it } val zippedParameters = properties.map { it.source!!.lighterASTNode to it }
DataClassMembersGenerator( DataClassMembersGenerator(
baseSession,
classNode, classNode,
this, this,
zippedParameters, zippedParameters,
@@ -518,13 +517,13 @@ class DeclarationsConverter(
if (modifiers.isEnum()) { if (modifiers.isEnum()) {
generateValuesFunction( generateValuesFunction(
baseSession, baseModuleData,
context.packageFqName, context.packageFqName,
context.className, context.className,
modifiers.hasExpect() modifiers.hasExpect()
) )
generateValueOfFunction( generateValueOfFunction(
baseSession, baseModuleData,
context.packageFqName, context.packageFqName,
context.className, context.className,
modifiers.hasExpect() modifiers.hasExpect()
@@ -548,7 +547,7 @@ class DeclarationsConverter(
val objectDeclaration = objectLiteral.getChildNodesByType(OBJECT_DECLARATION).first() val objectDeclaration = objectLiteral.getChildNodesByType(OBJECT_DECLARATION).first()
source = objectDeclaration.toFirSourceElement() source = objectDeclaration.toFirSourceElement()
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
declarationSiteSession = baseSession moduleData = baseModuleData
classKind = ClassKind.OBJECT classKind = ClassKind.OBJECT
scopeProvider = baseScopeProvider scopeProvider = baseScopeProvider
symbol = FirAnonymousObjectSymbol() symbol = FirAnonymousObjectSymbol()
@@ -639,7 +638,7 @@ class DeclarationsConverter(
val enumEntryName = identifier.nameAsSafeName() val enumEntryName = identifier.nameAsSafeName()
return buildEnumEntry { return buildEnumEntry {
source = enumEntry.toFirSourceElement() source = enumEntry.toFirSourceElement()
declarationSiteSession = baseSession moduleData = baseModuleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
returnTypeRef = classWrapper.delegatedSelfTypeRef returnTypeRef = classWrapper.delegatedSelfTypeRef
name = enumEntryName name = enumEntryName
@@ -657,7 +656,7 @@ class DeclarationsConverter(
initializer = withChildClassName(enumEntryName) { initializer = withChildClassName(enumEntryName) {
buildAnonymousObject { buildAnonymousObject {
source = enumEntry.toFirSourceElement(FirFakeSourceElementKind.EnumInitializer) source = enumEntry.toFirSourceElement(FirFakeSourceElementKind.EnumInitializer)
declarationSiteSession = baseSession moduleData = baseModuleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
classKind = ClassKind.ENUM_ENTRY classKind = ClassKind.ENUM_ENTRY
scopeProvider = baseScopeProvider scopeProvider = baseScopeProvider
@@ -795,7 +794,7 @@ class DeclarationsConverter(
buildPrimaryConstructor { buildPrimaryConstructor {
source = primaryConstructor?.toFirSourceElement() source = primaryConstructor?.toFirSourceElement()
?: selfTypeSource?.fakeElement(FirFakeSourceElementKind.ImplicitConstructor) ?: selfTypeSource?.fakeElement(FirFakeSourceElementKind.ImplicitConstructor)
declarationSiteSession = baseSession moduleData = baseModuleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
returnTypeRef = classWrapper.delegatedSelfTypeRef returnTypeRef = classWrapper.delegatedSelfTypeRef
this.status = status this.status = status
@@ -825,7 +824,7 @@ class DeclarationsConverter(
return buildAnonymousInitializer { return buildAnonymousInitializer {
source = anonymousInitializer.toFirSourceElement() source = anonymousInitializer.toFirSourceElement()
declarationSiteSession = baseSession moduleData = baseModuleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
body = if (stubMode) buildEmptyExpressionBlock() else firBlock ?: buildEmptyExpressionBlock() body = if (stubMode) buildEmptyExpressionBlock() else firBlock ?: buildEmptyExpressionBlock()
} }
@@ -863,7 +862,7 @@ class DeclarationsConverter(
val target = FirFunctionTarget(labelName = null, isLambda = false) val target = FirFunctionTarget(labelName = null, isLambda = false)
return buildConstructor { return buildConstructor {
source = secondaryConstructor.toFirSourceElement() source = secondaryConstructor.toFirSourceElement()
declarationSiteSession = baseSession moduleData = baseModuleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
returnTypeRef = delegatedSelfTypeRef returnTypeRef = delegatedSelfTypeRef
this.status = status this.status = status
@@ -956,7 +955,7 @@ class DeclarationsConverter(
return withChildClassName(typeAliasName) { return withChildClassName(typeAliasName) {
return@withChildClassName buildTypeAlias { return@withChildClassName buildTypeAlias {
source = typeAlias.toFirSourceElement() source = typeAlias.toFirSourceElement()
declarationSiteSession = baseSession moduleData = baseModuleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
name = typeAliasName name = typeAliasName
status = FirDeclarationStatusImpl(modifiers.getVisibility(), Modality.FINAL).apply { status = FirDeclarationStatusImpl(modifiers.getVisibility(), Modality.FINAL).apply {
@@ -1014,7 +1013,7 @@ class DeclarationsConverter(
return buildProperty { return buildProperty {
source = propertySource source = propertySource
declarationSiteSession = baseSession moduleData = baseModuleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
returnTypeRef = returnType returnTypeRef = returnType
name = propertyName name = propertyName
@@ -1045,10 +1044,10 @@ class DeclarationsConverter(
generateAccessorsByDelegate( generateAccessorsByDelegate(
delegateBuilder, delegateBuilder,
classWrapper?.classBuilder, classWrapper?.classBuilder,
baseSession, baseModuleData,
isExtension = false, isExtension = false,
stubMode, stubMode = stubMode,
receiver receiver = receiver
) )
} else { } else {
this.isLocal = false this.isLocal = false
@@ -1078,7 +1077,7 @@ class DeclarationsConverter(
val convertedAccessors = accessors.map { convertGetterOrSetter(it, returnType, propertyVisibility, modifiers) } val convertedAccessors = accessors.map { convertGetterOrSetter(it, returnType, propertyVisibility, modifiers) }
this.getter = convertedAccessors.find { it.isGetter } this.getter = convertedAccessors.find { it.isGetter }
?: FirDefaultPropertyGetter( ?: FirDefaultPropertyGetter(
null, declarationSiteSession, FirDeclarationOrigin.Source, returnType, propertyVisibility null, moduleData, FirDeclarationOrigin.Source, returnType, propertyVisibility
).also { ).also {
it.status = defaultAccessorStatus() it.status = defaultAccessorStatus()
it.initContainingClassAttr() it.initContainingClassAttr()
@@ -1087,7 +1086,7 @@ class DeclarationsConverter(
this.setter = convertedAccessors.find { it.isSetter } this.setter = convertedAccessors.find { it.isSetter }
?: if (isVar) { ?: if (isVar) {
FirDefaultPropertySetter( FirDefaultPropertySetter(
null, declarationSiteSession, FirDeclarationOrigin.Source, returnType, propertyVisibility null, moduleData, FirDeclarationOrigin.Source, returnType, propertyVisibility
).also { ).also {
it.status = defaultAccessorStatus() it.status = defaultAccessorStatus()
it.initContainingClassAttr() it.initContainingClassAttr()
@@ -1113,10 +1112,10 @@ class DeclarationsConverter(
generateAccessorsByDelegate( generateAccessorsByDelegate(
delegateBuilder, delegateBuilder,
classWrapper?.classBuilder, classWrapper?.classBuilder,
baseSession, baseModuleData,
isExtension = receiverType != null, isExtension = receiverType != null,
stubMode, stubMode = stubMode,
receiver receiver = receiver
) )
} }
} }
@@ -1166,7 +1165,7 @@ class DeclarationsConverter(
val name = identifier.nameAsSafeName() val name = identifier.nameAsSafeName()
return buildProperty { return buildProperty {
source = entry.toFirSourceElement() source = entry.toFirSourceElement()
declarationSiteSession = baseSession moduleData = baseModuleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
returnTypeRef = firType ?: implicitType returnTypeRef = firType ?: implicitType
this.name = name this.name = name
@@ -1191,7 +1190,7 @@ class DeclarationsConverter(
var isGetter = true var isGetter = true
var returnType: FirTypeRef? = null var returnType: FirTypeRef? = null
var firValueParameters: FirValueParameter = buildDefaultSetterValueParameter { var firValueParameters: FirValueParameter = buildDefaultSetterValueParameter {
declarationSiteSession = baseSession moduleData = baseModuleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
returnTypeRef = propertyTypeRef returnTypeRef = propertyTypeRef
symbol = FirVariableSymbol(NAME_FOR_DEFAULT_VALUE_PARAMETER) symbol = FirVariableSymbol(NAME_FOR_DEFAULT_VALUE_PARAMETER)
@@ -1227,7 +1226,7 @@ class DeclarationsConverter(
return FirDefaultPropertyAccessor return FirDefaultPropertyAccessor
.createGetterOrSetter( .createGetterOrSetter(
sourceElement, sourceElement,
baseSession, baseModuleData,
FirDeclarationOrigin.Source, FirDeclarationOrigin.Source,
propertyTypeRef, propertyTypeRef,
accessorVisibility, accessorVisibility,
@@ -1242,7 +1241,7 @@ class DeclarationsConverter(
val target = FirFunctionTarget(labelName = null, isLambda = false) val target = FirFunctionTarget(labelName = null, isLambda = false)
return buildPropertyAccessor { return buildPropertyAccessor {
source = sourceElement source = sourceElement
declarationSiteSession = baseSession moduleData = baseModuleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
returnTypeRef = returnType ?: if (isGetter) propertyTypeRef else implicitUnitType returnTypeRef = returnType ?: if (isGetter) propertyTypeRef else implicitUnitType
symbol = FirPropertyAccessorSymbol() symbol = FirPropertyAccessorSymbol()
@@ -1313,7 +1312,7 @@ class DeclarationsConverter(
return buildValueParameter { return buildValueParameter {
source = setterParameter.toFirSourceElement() source = setterParameter.toFirSourceElement()
declarationSiteSession = baseSession moduleData = baseModuleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
returnTypeRef = if (firValueParameter.returnTypeRef == implicitType) propertyTypeRef else firValueParameter.returnTypeRef returnTypeRef = if (firValueParameter.returnTypeRef == implicitType) propertyTypeRef else firValueParameter.returnTypeRef
name = firValueParameter.name name = firValueParameter.name
@@ -1407,7 +1406,7 @@ class DeclarationsConverter(
} }
return functionBuilder.apply { return functionBuilder.apply {
declarationSiteSession = baseSession moduleData = baseModuleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
returnTypeRef = returnType!! returnTypeRef = returnType!!
@@ -1575,7 +1574,7 @@ class DeclarationsConverter(
delegateFields.add( delegateFields.add(
buildField { buildField {
source = firExpression!!.source?.fakeElement(FirFakeSourceElementKind.ClassDelegationField) source = firExpression!!.source?.fakeElement(FirFakeSourceElementKind.ClassDelegationField)
declarationSiteSession = baseSession moduleData = baseModuleData
origin = FirDeclarationOrigin.Synthetic origin = FirDeclarationOrigin.Synthetic
name = delegateName name = delegateName
returnTypeRef = firTypeRef returnTypeRef = firTypeRef
@@ -1651,7 +1650,7 @@ class DeclarationsConverter(
return buildTypeParameter { return buildTypeParameter {
source = typeParameter.toFirSourceElement() source = typeParameter.toFirSourceElement()
declarationSiteSession = baseSession moduleData = baseModuleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
name = identifier.nameAsSafeName() name = identifier.nameAsSafeName()
symbol = FirTypeParameterSymbol() symbol = FirTypeParameterSymbol()
@@ -1941,7 +1940,7 @@ class DeclarationsConverter(
val name = identifier.nameAsSafeName() val name = identifier.nameAsSafeName()
val firValueParameter = buildValueParameter { val firValueParameter = buildValueParameter {
source = valueParameter.toFirSourceElement() source = valueParameter.toFirSourceElement()
declarationSiteSession = baseSession moduleData = baseModuleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
returnTypeRef = firType ?: implicitType returnTypeRef = firType ?: implicitType
this.name = name this.name = name
@@ -135,7 +135,7 @@ class ExpressionsConverter(
val target: FirFunctionTarget val target: FirFunctionTarget
return buildAnonymousFunction { return buildAnonymousFunction {
source = expressionSource source = expressionSource
declarationSiteSession = baseSession moduleData = baseModuleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
returnTypeRef = implicitType returnTypeRef = implicitType
receiverTypeRef = implicitType receiverTypeRef = implicitType
@@ -153,7 +153,7 @@ class ExpressionsConverter(
val name = DESTRUCTURING_NAME val name = DESTRUCTURING_NAME
val multiParameter = buildValueParameter { val multiParameter = buildValueParameter {
source = valueParameter.firValueParameter.source source = valueParameter.firValueParameter.source
declarationSiteSession = baseSession moduleData = baseModuleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
returnTypeRef = valueParameter.firValueParameter.returnTypeRef returnTypeRef = valueParameter.firValueParameter.returnTypeRef
this.name = name this.name = name
@@ -164,7 +164,7 @@ class ExpressionsConverter(
isVararg = false isVararg = false
} }
destructuringStatements += generateDestructuringBlock( destructuringStatements += generateDestructuringBlock(
this@ExpressionsConverter.baseSession, baseModuleData,
multiDeclaration, multiDeclaration,
multiParameter, multiParameter,
tmpVariable = false tmpVariable = false
@@ -642,7 +642,7 @@ class ExpressionsConverter(
buildProperty { buildProperty {
source = it.toFirSourceElement() source = it.toFirSourceElement()
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
declarationSiteSession = baseSession moduleData = baseModuleData
returnTypeRef = variable.returnTypeRef returnTypeRef = variable.returnTypeRef
name = variable.name name = variable.name
initializer = variable.initializer initializer = variable.initializer
@@ -958,7 +958,7 @@ class ExpressionsConverter(
return buildBlock { return buildBlock {
source = fakeSource source = fakeSource
val iteratorVal = generateTemporaryVariable( val iteratorVal = generateTemporaryVariable(
this@ExpressionsConverter.baseSession, baseModuleData,
rangeExpression.source?.fakeElement(FirFakeSourceElementKind.DesugaredForLoop), rangeExpression.source?.fakeElement(FirFakeSourceElementKind.DesugaredForLoop),
ITERATOR_NAME, ITERATOR_NAME,
buildFunctionCall { buildFunctionCall {
@@ -992,7 +992,7 @@ class ExpressionsConverter(
val valueParameter = parameter ?: return@block val valueParameter = parameter ?: return@block
val multiDeclaration = valueParameter.destructuringDeclaration val multiDeclaration = valueParameter.destructuringDeclaration
val firLoopParameter = generateTemporaryVariable( val firLoopParameter = generateTemporaryVariable(
this@ExpressionsConverter.baseSession, baseModuleData,
valueParameter.firValueParameter.source, valueParameter.firValueParameter.source,
if (multiDeclaration != null) DESTRUCTURING_NAME else valueParameter.firValueParameter.name, if (multiDeclaration != null) DESTRUCTURING_NAME else valueParameter.firValueParameter.name,
buildFunctionCall { buildFunctionCall {
@@ -1007,7 +1007,7 @@ class ExpressionsConverter(
) )
if (multiDeclaration != null) { if (multiDeclaration != null) {
val destructuringBlock = generateDestructuringBlock( val destructuringBlock = generateDestructuringBlock(
this@ExpressionsConverter.baseSession, baseModuleData,
multiDeclaration, multiDeclaration,
firLoopParameter, firLoopParameter,
tmpVariable = true tmpVariable = true
@@ -5,7 +5,7 @@
package org.jetbrains.kotlin.fir.lightTree.fir package org.jetbrains.kotlin.fir.lightTree.fir
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.builder.generateTemporaryVariable import org.jetbrains.kotlin.fir.builder.generateTemporaryVariable
import org.jetbrains.kotlin.fir.declarations.FirVariable import org.jetbrains.kotlin.fir.declarations.FirVariable
@@ -18,8 +18,8 @@ data class DestructuringDeclaration(
val initializer: FirExpression, val initializer: FirExpression,
val source: FirSourceElement val source: FirSourceElement
) { ) {
fun toFirDestructingDeclaration(session: FirSession): FirExpression { fun toFirDestructingDeclaration(moduleData: FirModuleData): FirExpression {
val baseVariable = generateTemporaryVariable(session, source, "destruct", initializer) val baseVariable = generateTemporaryVariable(moduleData, source, "destruct", initializer)
return generateDestructuringBlock(session, this, baseVariable, tmpVariable = true) return generateDestructuringBlock(moduleData, this, baseVariable, tmpVariable = true)
} }
} }
@@ -11,16 +11,16 @@ import org.jetbrains.kotlin.fir.declarations.builder.buildProperty
import org.jetbrains.kotlin.fir.declarations.impl.FirDeclarationStatusImpl import org.jetbrains.kotlin.fir.declarations.impl.FirDeclarationStatusImpl
import org.jetbrains.kotlin.fir.declarations.impl.FirDefaultPropertyGetter import org.jetbrains.kotlin.fir.declarations.impl.FirDefaultPropertyGetter
import org.jetbrains.kotlin.fir.declarations.impl.FirDefaultPropertySetter import org.jetbrains.kotlin.fir.declarations.impl.FirDefaultPropertySetter
import org.jetbrains.kotlin.fir.diagnostics.DiagnosticKind
import org.jetbrains.kotlin.fir.diagnostics.ConeSimpleDiagnostic import org.jetbrains.kotlin.fir.diagnostics.ConeSimpleDiagnostic
import org.jetbrains.kotlin.fir.diagnostics.DiagnosticKind
import org.jetbrains.kotlin.fir.expressions.builder.buildQualifiedAccessExpression import org.jetbrains.kotlin.fir.expressions.builder.buildQualifiedAccessExpression
import org.jetbrains.kotlin.fir.lightTree.fir.modifier.Modifier import org.jetbrains.kotlin.fir.lightTree.fir.modifier.Modifier
import org.jetbrains.kotlin.fir.references.builder.buildPropertyFromParameterResolvedNamedReference import org.jetbrains.kotlin.fir.references.builder.buildPropertyFromParameterResolvedNamedReference
import org.jetbrains.kotlin.name.CallableId
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol
import org.jetbrains.kotlin.fir.types.ConeClassLikeType import org.jetbrains.kotlin.fir.types.ConeClassLikeType
import org.jetbrains.kotlin.fir.types.FirImplicitTypeRef import org.jetbrains.kotlin.fir.types.FirImplicitTypeRef
import org.jetbrains.kotlin.fir.types.builder.buildErrorTypeRef import org.jetbrains.kotlin.fir.types.builder.buildErrorTypeRef
import org.jetbrains.kotlin.name.CallableId
class ValueParameter( class ValueParameter(
private val isVal: Boolean, private val isVal: Boolean,
@@ -34,7 +34,7 @@ class ValueParameter(
} }
fun toFirProperty( fun toFirProperty(
session: FirSession, moduleData: FirModuleData,
callableId: CallableId, callableId: CallableId,
isExpect: Boolean, isExpect: Boolean,
currentDispatchReceiver: ConeClassLikeType? currentDispatchReceiver: ConeClassLikeType?
@@ -51,7 +51,7 @@ class ValueParameter(
source = parameterNode?.toFirLightSourceElement( source = parameterNode?.toFirLightSourceElement(
parameterSource.treeStructure, FirFakeSourceElementKind.PropertyFromParameter parameterSource.treeStructure, FirFakeSourceElementKind.PropertyFromParameter
) )
declarationSiteSession = session this.moduleData = moduleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
returnTypeRef = type.copyWithNewSourceKind(FirFakeSourceElementKind.PropertyFromParameter) returnTypeRef = type.copyWithNewSourceKind(FirFakeSourceElementKind.PropertyFromParameter)
this.name = name this.name = name
@@ -76,14 +76,14 @@ class ValueParameter(
annotations += this@ValueParameter.firValueParameter.annotations annotations += this@ValueParameter.firValueParameter.annotations
getter = FirDefaultPropertyGetter( getter = FirDefaultPropertyGetter(
null, null,
session, moduleData,
FirDeclarationOrigin.Source, FirDeclarationOrigin.Source,
type.copyWithNewSourceKind(FirFakeSourceElementKind.DefaultAccessor), type.copyWithNewSourceKind(FirFakeSourceElementKind.DefaultAccessor),
modifiers.getVisibility() modifiers.getVisibility()
) )
setter = if (this.isVar) FirDefaultPropertySetter( setter = if (this.isVar) FirDefaultPropertySetter(
null, null,
session, moduleData,
FirDeclarationOrigin.Source, FirDeclarationOrigin.Source,
type.copyWithNewSourceKind(FirFakeSourceElementKind.DefaultAccessor), type.copyWithNewSourceKind(FirFakeSourceElementKind.DefaultAccessor),
modifiers.getVisibility() modifiers.getVisibility()
@@ -82,7 +82,7 @@ internal fun Array<KtWhenCondition>.toFirWhenCondition(
} }
internal fun generateDestructuringBlock( internal fun generateDestructuringBlock(
session: FirSession, moduleData: FirModuleData,
multiDeclaration: KtDestructuringDeclaration, multiDeclaration: KtDestructuringDeclaration,
container: FirVariable<*>, container: FirVariable<*>,
tmpVariable: Boolean, tmpVariable: Boolean,
@@ -101,7 +101,7 @@ internal fun generateDestructuringBlock(
val name = entry.nameAsSafeName val name = entry.nameAsSafeName
statements += buildProperty { statements += buildProperty {
source = entrySource source = entrySource
declarationSiteSession = session this.moduleData = moduleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
returnTypeRef = entry.typeReference.toFirOrImplicitTypeRef() returnTypeRef = entry.typeReference.toFirOrImplicitTypeRef()
this.name = name this.name = name
@@ -330,7 +330,7 @@ open class RawFirBuilder(
val accessorTarget = FirFunctionTarget(labelName = null, isLambda = false) val accessorTarget = FirFunctionTarget(labelName = null, isLambda = false)
buildPropertyAccessor { buildPropertyAccessor {
this.source = source this.source = source
declarationSiteSession = baseSession moduleData = baseModuleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
returnTypeRef = if (isGetter) { returnTypeRef = if (isGetter) {
returnTypeReference?.convertSafe() ?: propertyTypeRef returnTypeReference?.convertSafe() ?: propertyTypeRef
@@ -345,7 +345,7 @@ open class RawFirBuilder(
if (!isGetter && valueParameters.isEmpty()) { if (!isGetter && valueParameters.isEmpty()) {
valueParameters += buildDefaultSetterValueParameter { valueParameters += buildDefaultSetterValueParameter {
this.source = source.fakeElement(FirFakeSourceElementKind.DefaultAccessor) this.source = source.fakeElement(FirFakeSourceElementKind.DefaultAccessor)
declarationSiteSession = baseSession moduleData = baseModuleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
returnTypeRef = propertyTypeRef returnTypeRef = propertyTypeRef
symbol = FirVariableSymbol(NAME_FOR_DEFAULT_VALUE_PARAMETER) symbol = FirVariableSymbol(NAME_FOR_DEFAULT_VALUE_PARAMETER)
@@ -372,7 +372,7 @@ open class RawFirBuilder(
FirDefaultPropertyAccessor FirDefaultPropertyAccessor
.createGetterOrSetter( .createGetterOrSetter(
propertySource, propertySource,
baseSession, baseModuleData,
FirDeclarationOrigin.Source, FirDeclarationOrigin.Source,
propertyTypeRef, propertyTypeRef,
accessorVisibility, accessorVisibility,
@@ -397,7 +397,7 @@ open class RawFirBuilder(
val name = nameAsSafeName val name = nameAsSafeName
return buildValueParameter { return buildValueParameter {
source = toFirSourceElement() source = toFirSourceElement()
declarationSiteSession = baseSession moduleData = baseModuleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
returnTypeRef = when { returnTypeRef = when {
typeReference != null -> typeReference.toFirOrErrorType() typeReference != null -> typeReference.toFirOrErrorType()
@@ -430,7 +430,7 @@ open class RawFirBuilder(
val propertyName = nameAsSafeName val propertyName = nameAsSafeName
return buildProperty { return buildProperty {
source = propertySource source = propertySource
declarationSiteSession = baseSession moduleData = baseModuleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
returnTypeRef = type.copyWithNewSourceKind(FirFakeSourceElementKind.PropertyFromParameter) returnTypeRef = type.copyWithNewSourceKind(FirFakeSourceElementKind.PropertyFromParameter)
receiverTypeRef = null receiverTypeRef = null
@@ -450,14 +450,14 @@ open class RawFirBuilder(
val defaultAccessorSource = propertySource.fakeElement(FirFakeSourceElementKind.DefaultAccessor) val defaultAccessorSource = propertySource.fakeElement(FirFakeSourceElementKind.DefaultAccessor)
getter = FirDefaultPropertyGetter( getter = FirDefaultPropertyGetter(
defaultAccessorSource, defaultAccessorSource,
baseSession, baseModuleData,
FirDeclarationOrigin.Source, FirDeclarationOrigin.Source,
type.copyWithNewSourceKind(FirFakeSourceElementKind.DefaultAccessor), type.copyWithNewSourceKind(FirFakeSourceElementKind.DefaultAccessor),
visibility visibility
) )
setter = if (isMutable) FirDefaultPropertySetter( setter = if (isMutable) FirDefaultPropertySetter(
defaultAccessorSource, defaultAccessorSource,
baseSession, baseModuleData,
FirDeclarationOrigin.Source, FirDeclarationOrigin.Source,
type.copyWithNewSourceKind(FirFakeSourceElementKind.DefaultAccessor), type.copyWithNewSourceKind(FirFakeSourceElementKind.DefaultAccessor),
visibility visibility
@@ -570,7 +570,7 @@ open class RawFirBuilder(
superTypeListEntry.delegateExpression?.toFirSourceElement(FirFakeSourceElementKind.ClassDelegationField) superTypeListEntry.delegateExpression?.toFirSourceElement(FirFakeSourceElementKind.ClassDelegationField)
val delegateField = buildField { val delegateField = buildField {
source = delegateSource source = delegateSource
declarationSiteSession = baseSession moduleData = baseModuleData
origin = FirDeclarationOrigin.Synthetic origin = FirDeclarationOrigin.Synthetic
name = delegateName name = delegateName
returnTypeRef = type returnTypeRef = type
@@ -680,7 +680,7 @@ open class RawFirBuilder(
} }
return buildPrimaryConstructor { return buildPrimaryConstructor {
source = constructorSource source = constructorSource
declarationSiteSession = baseSession moduleData = baseModuleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
returnTypeRef = delegatedSelfTypeRef returnTypeRef = delegatedSelfTypeRef
this.status = status this.status = status
@@ -699,7 +699,7 @@ open class RawFirBuilder(
context.packageFqName = file.packageFqName context.packageFqName = file.packageFqName
return buildFile { return buildFile {
source = file.toFirSourceElement() source = file.toFirSourceElement()
declarationSiteSession = baseSession moduleData = baseModuleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
name = file.name name = file.name
packageFqName = context.packageFqName packageFqName = context.packageFqName
@@ -727,7 +727,7 @@ open class RawFirBuilder(
val ktEnumEntry = this@toFirEnumEntry val ktEnumEntry = this@toFirEnumEntry
return buildEnumEntry { return buildEnumEntry {
source = toFirSourceElement() source = toFirSourceElement()
declarationSiteSession = baseSession moduleData = baseModuleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
returnTypeRef = delegatedEnumSelfTypeRef returnTypeRef = delegatedEnumSelfTypeRef
name = nameAsSafeName name = nameAsSafeName
@@ -745,7 +745,7 @@ open class RawFirBuilder(
initializer = withChildClassName(nameAsSafeName) { initializer = withChildClassName(nameAsSafeName) {
buildAnonymousObject { buildAnonymousObject {
source = toFirSourceElement(FirFakeSourceElementKind.EnumInitializer) source = toFirSourceElement(FirFakeSourceElementKind.EnumInitializer)
declarationSiteSession = baseSession moduleData = baseModuleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
classKind = ClassKind.ENUM_ENTRY classKind = ClassKind.ENUM_ENTRY
scopeProvider = this@RawFirBuilder.baseScopeProvider scopeProvider = this@RawFirBuilder.baseScopeProvider
@@ -830,7 +830,7 @@ open class RawFirBuilder(
buildRegularClass { buildRegularClass {
source = classOrObject.toFirSourceElement() source = classOrObject.toFirSourceElement()
declarationSiteSession = baseSession moduleData = baseModuleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
name = classOrObject.nameAsSafeName name = classOrObject.nameAsSafeName
this.status = status this.status = status
@@ -883,7 +883,6 @@ open class RawFirBuilder(
val zippedParameters = val zippedParameters =
classOrObject.primaryConstructorParameters.filter { it.hasValOrVar() } zip declarations.filterIsInstance<FirProperty>() classOrObject.primaryConstructorParameters.filter { it.hasValOrVar() } zip declarations.filterIsInstance<FirProperty>()
DataClassMembersGenerator( DataClassMembersGenerator(
baseSession,
classOrObject, classOrObject,
this, this,
zippedParameters, zippedParameters,
@@ -902,13 +901,13 @@ open class RawFirBuilder(
if (classOrObject.hasModifier(ENUM_KEYWORD)) { if (classOrObject.hasModifier(ENUM_KEYWORD)) {
generateValuesFunction( generateValuesFunction(
baseSession, baseModuleData,
context.packageFqName, context.packageFqName,
context.className, context.className,
classOrObject.hasExpectModifier() classOrObject.hasExpectModifier()
) )
generateValueOfFunction( generateValueOfFunction(
baseSession, context.packageFqName, context.className, baseModuleData, context.packageFqName, context.className,
classOrObject.hasExpectModifier() classOrObject.hasExpectModifier()
) )
} }
@@ -925,7 +924,7 @@ open class RawFirBuilder(
return withChildClassName(ANONYMOUS_OBJECT_NAME) { return withChildClassName(ANONYMOUS_OBJECT_NAME) {
buildAnonymousObject { buildAnonymousObject {
source = objectDeclaration.toFirSourceElement() source = objectDeclaration.toFirSourceElement()
declarationSiteSession = baseSession moduleData = baseModuleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
classKind = ClassKind.OBJECT classKind = ClassKind.OBJECT
scopeProvider = baseScopeProvider scopeProvider = baseScopeProvider
@@ -961,7 +960,7 @@ open class RawFirBuilder(
return withChildClassName(typeAlias.nameAsSafeName) { return withChildClassName(typeAlias.nameAsSafeName) {
buildTypeAlias { buildTypeAlias {
source = typeAlias.toFirSourceElement() source = typeAlias.toFirSourceElement()
declarationSiteSession = baseSession moduleData = baseModuleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
name = typeAlias.nameAsSafeName name = typeAlias.nameAsSafeName
status = FirDeclarationStatusImpl(typeAlias.visibility, Modality.FINAL).apply { status = FirDeclarationStatusImpl(typeAlias.visibility, Modality.FINAL).apply {
@@ -1021,7 +1020,7 @@ open class RawFirBuilder(
val target = FirFunctionTarget(labelName, isLambda = false) val target = FirFunctionTarget(labelName, isLambda = false)
return functionBuilder.apply { return functionBuilder.apply {
source = function.toFirSourceElement() source = function.toFirSourceElement()
declarationSiteSession = baseSession moduleData = baseModuleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
returnTypeRef = returnType returnTypeRef = returnType
@@ -1084,7 +1083,7 @@ open class RawFirBuilder(
val target: FirFunctionTarget val target: FirFunctionTarget
return buildAnonymousFunction { return buildAnonymousFunction {
source = literalSource source = literalSource
declarationSiteSession = baseSession moduleData = baseModuleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
returnTypeRef = returnType returnTypeRef = returnType
receiverTypeRef = receiverType receiverTypeRef = receiverType
@@ -1098,7 +1097,7 @@ open class RawFirBuilder(
val name = DESTRUCTURING_NAME val name = DESTRUCTURING_NAME
val multiParameter = buildValueParameter { val multiParameter = buildValueParameter {
source = valueParameter.toFirSourceElement() source = valueParameter.toFirSourceElement()
declarationSiteSession = baseSession moduleData = baseModuleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
returnTypeRef = valueParameter.typeReference?.convertSafe() ?: buildImplicitTypeRef { returnTypeRef = valueParameter.typeReference?.convertSafe() ?: buildImplicitTypeRef {
source = multiDeclaration.toFirSourceElement(FirFakeSourceElementKind.ImplicitTypeRef) source = multiDeclaration.toFirSourceElement(FirFakeSourceElementKind.ImplicitTypeRef)
@@ -1110,7 +1109,7 @@ open class RawFirBuilder(
isVararg = false isVararg = false
} }
destructuringStatements += generateDestructuringBlock( destructuringStatements += generateDestructuringBlock(
baseSession, baseModuleData,
multiDeclaration, multiDeclaration,
multiParameter, multiParameter,
tmpVariable = false, tmpVariable = false,
@@ -1169,7 +1168,7 @@ open class RawFirBuilder(
val target = FirFunctionTarget(labelName = null, isLambda = false) val target = FirFunctionTarget(labelName = null, isLambda = false)
return buildConstructor { return buildConstructor {
source = this@toFirConstructor.toFirSourceElement() source = this@toFirConstructor.toFirSourceElement()
declarationSiteSession = baseSession moduleData = baseModuleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
returnTypeRef = delegatedSelfTypeRef returnTypeRef = delegatedSelfTypeRef
val explicitVisibility = visibility val explicitVisibility = visibility
@@ -1256,7 +1255,7 @@ open class RawFirBuilder(
return buildProperty { return buildProperty {
source = propertySource source = propertySource
declarationSiteSession = baseSession moduleData = baseModuleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
returnTypeRef = propertyType returnTypeRef = propertyType
name = propertyName name = propertyName
@@ -1279,7 +1278,14 @@ open class RawFirBuilder(
} }
val receiver = delegateExpression?.toFirExpression("Incorrect delegate expression") val receiver = delegateExpression?.toFirExpression("Incorrect delegate expression")
generateAccessorsByDelegate(delegateBuilder, null, baseSession, isExtension = false, stubMode, receiver) generateAccessorsByDelegate(
delegateBuilder,
null,
baseModuleData,
isExtension = false,
stubMode = stubMode,
receiver = receiver
)
} else { } else {
isLocal = false isLocal = false
receiverTypeRef = receiverTypeReference.convertSafe() receiverTypeRef = receiverTypeReference.convertSafe()
@@ -1323,10 +1329,10 @@ open class RawFirBuilder(
generateAccessorsByDelegate( generateAccessorsByDelegate(
delegateBuilder, delegateBuilder,
ownerClassBuilder, ownerClassBuilder,
baseSession, baseModuleData,
isExtension = receiverTypeReference != null, isExtension = receiverTypeReference != null,
stubMode, stubMode = stubMode,
receiver receiver = receiver
) )
} }
} }
@@ -1341,7 +1347,7 @@ open class RawFirBuilder(
override fun visitAnonymousInitializer(initializer: KtAnonymousInitializer, data: Unit): FirElement { override fun visitAnonymousInitializer(initializer: KtAnonymousInitializer, data: Unit): FirElement {
return buildAnonymousInitializer { return buildAnonymousInitializer {
source = initializer.toFirSourceElement() source = initializer.toFirSourceElement()
declarationSiteSession = baseSession moduleData = baseModuleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
body = if (stubMode) buildEmptyExpressionBlock() else initializer.body.toFirBlock() body = if (stubMode) buildEmptyExpressionBlock() else initializer.body.toFirBlock()
} }
@@ -1476,7 +1482,7 @@ open class RawFirBuilder(
val parameterName = parameter.nameAsSafeName val parameterName = parameter.nameAsSafeName
return buildTypeParameter { return buildTypeParameter {
source = parameter.toFirSourceElement() source = parameter.toFirSourceElement()
declarationSiteSession = baseSession moduleData = baseModuleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
name = parameterName name = parameterName
symbol = FirTypeParameterSymbol() symbol = FirTypeParameterSymbol()
@@ -1632,7 +1638,7 @@ open class RawFirBuilder(
val name = ktSubjectExpression.nameAsSafeName val name = ktSubjectExpression.nameAsSafeName
buildProperty { buildProperty {
source = ktSubjectExpression.toFirSourceElement() source = ktSubjectExpression.toFirSourceElement()
declarationSiteSession = baseSession moduleData = baseModuleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
returnTypeRef = ktSubjectExpression.typeReference.toFirOrImplicitType() returnTypeRef = ktSubjectExpression.typeReference.toFirOrImplicitType()
receiverTypeRef = null receiverTypeRef = null
@@ -1743,7 +1749,7 @@ open class RawFirBuilder(
source = fakeSource source = fakeSource
val rangeSource = expression.loopRange?.toFirSourceElement(FirFakeSourceElementKind.DesugaredForLoop) val rangeSource = expression.loopRange?.toFirSourceElement(FirFakeSourceElementKind.DesugaredForLoop)
val iteratorVal = generateTemporaryVariable( val iteratorVal = generateTemporaryVariable(
baseSession, rangeSource, ITERATOR_NAME, baseModuleData, rangeSource, ITERATOR_NAME,
buildFunctionCall { buildFunctionCall {
source = fakeSource source = fakeSource
calleeReference = buildSimpleNamedReference { calleeReference = buildSimpleNamedReference {
@@ -1780,7 +1786,7 @@ open class RawFirBuilder(
if (ktParameter != null) { if (ktParameter != null) {
val multiDeclaration = ktParameter.destructuringDeclaration val multiDeclaration = ktParameter.destructuringDeclaration
val firLoopParameter = generateTemporaryVariable( val firLoopParameter = generateTemporaryVariable(
session = baseSession, source = expression.loopParameter?.toFirSourceElement(), moduleData = baseModuleData, source = expression.loopParameter?.toFirSourceElement(),
name = if (multiDeclaration != null) DESTRUCTURING_NAME else ktParameter.nameAsSafeName, name = if (multiDeclaration != null) DESTRUCTURING_NAME else ktParameter.nameAsSafeName,
initializer = buildFunctionCall { initializer = buildFunctionCall {
source = fakeSource source = fakeSource
@@ -1794,7 +1800,7 @@ open class RawFirBuilder(
) )
if (multiDeclaration != null) { if (multiDeclaration != null) {
val destructuringBlock = generateDestructuringBlock( val destructuringBlock = generateDestructuringBlock(
session = baseSession, baseModuleData,
multiDeclaration = multiDeclaration, multiDeclaration = multiDeclaration,
container = firLoopParameter, container = firLoopParameter,
tmpVariable = true, tmpVariable = true,
@@ -2132,11 +2138,11 @@ open class RawFirBuilder(
override fun visitDestructuringDeclaration(multiDeclaration: KtDestructuringDeclaration, data: Unit): FirElement { override fun visitDestructuringDeclaration(multiDeclaration: KtDestructuringDeclaration, data: Unit): FirElement {
val baseVariable = generateTemporaryVariable( val baseVariable = generateTemporaryVariable(
baseSession, multiDeclaration.toFirSourceElement(), "destruct", baseModuleData, multiDeclaration.toFirSourceElement(), "destruct",
multiDeclaration.initializer.toFirExpression("Initializer required for destructuring declaration", DiagnosticKind.Syntax), multiDeclaration.initializer.toFirExpression("Initializer required for destructuring declaration", DiagnosticKind.Syntax),
) )
return generateDestructuringBlock( return generateDestructuringBlock(
baseSession, baseModuleData,
multiDeclaration, multiDeclaration,
baseVariable, baseVariable,
tmpVariable = true, tmpVariable = true,
@@ -20,8 +20,6 @@ import org.jetbrains.kotlin.fir.expressions.builder.*
import org.jetbrains.kotlin.fir.references.FirReference import org.jetbrains.kotlin.fir.references.FirReference
import org.jetbrains.kotlin.fir.references.builder.* import org.jetbrains.kotlin.fir.references.builder.*
import org.jetbrains.kotlin.fir.references.impl.FirSimpleNamedReference import org.jetbrains.kotlin.fir.references.impl.FirSimpleNamedReference
import org.jetbrains.kotlin.name.CallableId
import org.jetbrains.kotlin.name.LocalCallableIdConstructor
import org.jetbrains.kotlin.fir.symbols.impl.* import org.jetbrains.kotlin.fir.symbols.impl.*
import org.jetbrains.kotlin.fir.types.ConeClassLikeType import org.jetbrains.kotlin.fir.types.ConeClassLikeType
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
@@ -31,7 +29,9 @@ import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl
import org.jetbrains.kotlin.fir.types.impl.ConeTypeParameterTypeImpl import org.jetbrains.kotlin.fir.types.impl.ConeTypeParameterTypeImpl
import org.jetbrains.kotlin.lexer.KtTokens.CLOSING_QUOTE import org.jetbrains.kotlin.lexer.KtTokens.CLOSING_QUOTE
import org.jetbrains.kotlin.lexer.KtTokens.OPEN_QUOTE import org.jetbrains.kotlin.lexer.KtTokens.OPEN_QUOTE
import org.jetbrains.kotlin.name.CallableId
import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.LocalCallableIdConstructor
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.parsing.* import org.jetbrains.kotlin.parsing.*
import org.jetbrains.kotlin.types.ConstantValueKind import org.jetbrains.kotlin.types.ConstantValueKind
@@ -39,6 +39,7 @@ import org.jetbrains.kotlin.util.OperatorNameConventions
//T can be either PsiElement, or LighterASTNode //T can be either PsiElement, or LighterASTNode
abstract class BaseFirBuilder<T>(val baseSession: FirSession, val context: Context<T> = Context()) { abstract class BaseFirBuilder<T>(val baseSession: FirSession, val context: Context<T> = Context()) {
val baseModuleData: FirModuleData = baseSession.moduleData
abstract fun T.toFirSourceElement(kind: FirFakeSourceElementKind? = null): FirSourceElement abstract fun T.toFirSourceElement(kind: FirFakeSourceElementKind? = null): FirSourceElement
@@ -157,7 +158,7 @@ abstract class BaseFirBuilder<T>(val baseSession: FirSession, val context: Conte
bind( bind(
buildErrorFunction { buildErrorFunction {
source = baseSource source = baseSource
declarationSiteSession = baseSession moduleData = baseModuleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
diagnostic = ConeSimpleDiagnostic(message, kind) diagnostic = ConeSimpleDiagnostic(message, kind)
symbol = FirErrorFunctionSymbol() symbol = FirErrorFunctionSymbol()
@@ -502,7 +503,7 @@ abstract class BaseFirBuilder<T>(val baseSession: FirSession, val context: Conte
// initialValueVar is only used for postfix increment/decrement (stores the argument value before increment/decrement). // initialValueVar is only used for postfix increment/decrement (stores the argument value before increment/decrement).
val initialValueVar = generateTemporaryVariable( val initialValueVar = generateTemporaryVariable(
this@BaseFirBuilder.baseSession, baseModuleData,
desugaredSource, desugaredSource,
Name.special("<unary>"), Name.special("<unary>"),
unwrappedArgument.convert() unwrappedArgument.convert()
@@ -524,7 +525,7 @@ abstract class BaseFirBuilder<T>(val baseSession: FirSession, val context: Conte
// resultVar is only used for prefix increment/decrement. // resultVar is only used for prefix increment/decrement.
val resultVar = generateTemporaryVariable( val resultVar = generateTemporaryVariable(
this@BaseFirBuilder.baseSession, baseModuleData,
desugaredSource, desugaredSource,
Name.special("<unary-result>"), Name.special("<unary-result>"),
resultInitializer resultInitializer
@@ -606,7 +607,7 @@ abstract class BaseFirBuilder<T>(val baseSession: FirSession, val context: Conte
val argumentSelector = argument.selectorExpression val argumentSelector = argument.selectorExpression
val argumentReceiverVariable = generateTemporaryVariable( val argumentReceiverVariable = generateTemporaryVariable(
this@BaseFirBuilder.baseSession, baseModuleData,
argumentReceiver?.toFirSourceElement(), argumentReceiver?.toFirSourceElement(),
Name.special("<receiver>"), Name.special("<receiver>"),
argumentReceiver?.convert() ?: buildErrorExpression { argumentReceiver?.convert() ?: buildErrorExpression {
@@ -625,7 +626,7 @@ abstract class BaseFirBuilder<T>(val baseSession: FirSession, val context: Conte
// initialValueVar is only used for postfix increment/decrement (stores the argument value before increment/decrement). // initialValueVar is only used for postfix increment/decrement (stores the argument value before increment/decrement).
val initialValueVar = generateTemporaryVariable( val initialValueVar = generateTemporaryVariable(
this@BaseFirBuilder.baseSession, baseModuleData,
desugaredSource, desugaredSource,
Name.special("<unary>"), Name.special("<unary>"),
firArgument firArgument
@@ -647,7 +648,7 @@ abstract class BaseFirBuilder<T>(val baseSession: FirSession, val context: Conte
// resultVar is only used for prefix increment/decrement. // resultVar is only used for prefix increment/decrement.
val resultVar = generateTemporaryVariable( val resultVar = generateTemporaryVariable(
this@BaseFirBuilder.baseSession, baseModuleData,
desugaredSource, desugaredSource,
Name.special("<unary-result>"), Name.special("<unary-result>"),
resultInitializer resultInitializer
@@ -729,7 +730,7 @@ abstract class BaseFirBuilder<T>(val baseSession: FirSession, val context: Conte
requireNotNull(indices) { "No indices in ${baseExpression.asText}" } requireNotNull(indices) { "No indices in ${baseExpression.asText}" }
val arrayVariable = generateTemporaryVariable( val arrayVariable = generateTemporaryVariable(
this@BaseFirBuilder.baseSession, baseModuleData,
array?.toFirSourceElement(), array?.toFirSourceElement(),
Name.special("<array>"), Name.special("<array>"),
array?.convert() ?: buildErrorExpression { array?.convert() ?: buildErrorExpression {
@@ -740,7 +741,7 @@ abstract class BaseFirBuilder<T>(val baseSession: FirSession, val context: Conte
val indexVariables = indices.mapIndexed { i, index -> val indexVariables = indices.mapIndexed { i, index ->
generateTemporaryVariable( generateTemporaryVariable(
this@BaseFirBuilder.baseSession, baseModuleData,
index.toFirSourceElement(), index.toFirSourceElement(),
Name.special("<index$i>"), Name.special("<index$i>"),
index.convert() index.convert()
@@ -763,7 +764,7 @@ abstract class BaseFirBuilder<T>(val baseSession: FirSession, val context: Conte
// initialValueVar is only used for postfix increment/decrement (stores the argument value before increment/decrement). // initialValueVar is only used for postfix increment/decrement (stores the argument value before increment/decrement).
val initialValueVar = generateTemporaryVariable( val initialValueVar = generateTemporaryVariable(
this@BaseFirBuilder.baseSession, baseModuleData,
desugaredSource, desugaredSource,
Name.special("<unary>"), Name.special("<unary>"),
firArgument firArgument
@@ -785,7 +786,7 @@ abstract class BaseFirBuilder<T>(val baseSession: FirSession, val context: Conte
// resultVar is only used for prefix increment/decrement. // resultVar is only used for prefix increment/decrement.
val resultVar = generateTemporaryVariable( val resultVar = generateTemporaryVariable(
this@BaseFirBuilder.baseSession, baseModuleData,
desugaredSource, desugaredSource,
Name.special("<unary-result>"), Name.special("<unary-result>"),
resultInitializer resultInitializer
@@ -1002,17 +1003,17 @@ abstract class BaseFirBuilder<T>(val baseSession: FirSession, val context: Conte
val baseCall = convert() as FirFunctionCall val baseCall = convert() as FirFunctionCall
val arrayVariable = generateTemporaryVariable( val arrayVariable = generateTemporaryVariable(
baseSession, baseModuleData,
source = null, source = null,
"<array>", specialName = "<array>",
baseCall.explicitReceiver ?: buildErrorExpression { initializer = baseCall.explicitReceiver ?: buildErrorExpression {
source = baseSource source = baseSource
diagnostic = ConeSimpleDiagnostic("No receiver for array access", DiagnosticKind.Syntax) diagnostic = ConeSimpleDiagnostic("No receiver for array access", DiagnosticKind.Syntax)
} }
) )
statements += arrayVariable statements += arrayVariable
val indexVariables = baseCall.arguments.mapIndexed { i, index -> val indexVariables = baseCall.arguments.mapIndexed { i, index ->
generateTemporaryVariable(baseSession, source = null, "<index_$i>", index) generateTemporaryVariable(baseModuleData, source = null, specialName = "<index_$i>", initializer = index)
} }
statements += indexVariables statements += indexVariables
statements += buildFunctionCall { statements += buildFunctionCall {
@@ -1060,7 +1061,6 @@ abstract class BaseFirBuilder<T>(val baseSession: FirSession, val context: Conte
} }
inner class DataClassMembersGenerator( inner class DataClassMembersGenerator(
private val session: FirSession,
private val source: T, private val source: T,
private val classBuilder: FirRegularClassBuilder, private val classBuilder: FirRegularClassBuilder,
private val zippedParameters: List<Pair<T, FirProperty>>, private val zippedParameters: List<Pair<T, FirProperty>>,
@@ -1107,7 +1107,7 @@ abstract class BaseFirBuilder<T>(val baseSession: FirSession, val context: Conte
val parameterSource = sourceNode?.toFirSourceElement() val parameterSource = sourceNode?.toFirSourceElement()
val componentFunction = buildSimpleFunction { val componentFunction = buildSimpleFunction {
source = parameterSource?.fakeElement(FirFakeSourceElementKind.DataClassGeneratedMembers) source = parameterSource?.fakeElement(FirFakeSourceElementKind.DataClassGeneratedMembers)
declarationSiteSession = session moduleData = baseModuleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
returnTypeRef = firProperty.returnTypeRef returnTypeRef = firProperty.returnTypeRef
receiverTypeRef = null receiverTypeRef = null
@@ -1130,7 +1130,7 @@ abstract class BaseFirBuilder<T>(val baseSession: FirSession, val context: Conte
buildSimpleFunction { buildSimpleFunction {
val classTypeRef = createClassTypeRefWithSourceKind(FirFakeSourceElementKind.DataClassGeneratedMembers) val classTypeRef = createClassTypeRefWithSourceKind(FirFakeSourceElementKind.DataClassGeneratedMembers)
source = this@DataClassMembersGenerator.source.toFirSourceElement(FirFakeSourceElementKind.DataClassGeneratedMembers) source = this@DataClassMembersGenerator.source.toFirSourceElement(FirFakeSourceElementKind.DataClassGeneratedMembers)
declarationSiteSession = session moduleData = baseModuleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
returnTypeRef = classTypeRef returnTypeRef = classTypeRef
name = copyName name = copyName
@@ -1144,7 +1144,7 @@ abstract class BaseFirBuilder<T>(val baseSession: FirSession, val context: Conte
createParameterTypeRefWithSourceKind(firProperty, FirFakeSourceElementKind.DataClassGeneratedMembers) createParameterTypeRefWithSourceKind(firProperty, FirFakeSourceElementKind.DataClassGeneratedMembers)
valueParameters += buildValueParameter { valueParameters += buildValueParameter {
source = parameterSource source = parameterSource
declarationSiteSession = session moduleData = baseModuleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
returnTypeRef = propertyReturnTypeRef returnTypeRef = propertyReturnTypeRef
name = propertyName name = propertyName
@@ -271,14 +271,12 @@ fun generateResolvedAccessExpression(source: FirSourceElement?, variable: FirVar
} }
} }
fun generateTemporaryVariable( fun generateTemporaryVariable(
session: FirSession, source: FirSourceElement?, name: Name, initializer: FirExpression, typeRef: FirTypeRef? = null, moduleData: FirModuleData, source: FirSourceElement?, name: Name, initializer: FirExpression, typeRef: FirTypeRef? = null,
): FirVariable<*> = ): FirVariable<*> =
buildProperty { buildProperty {
this.source = source this.source = source
declarationSiteSession = session this.moduleData = moduleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
returnTypeRef = typeRef ?: buildImplicitTypeRef { returnTypeRef = typeRef ?: buildImplicitTypeRef {
this.source = source this.source = source
@@ -292,13 +290,13 @@ fun generateTemporaryVariable(
} }
fun generateTemporaryVariable( fun generateTemporaryVariable(
session: FirSession, source: FirSourceElement?, specialName: String, initializer: FirExpression, moduleData: FirModuleData, source: FirSourceElement?, specialName: String, initializer: FirExpression,
): FirVariable<*> = generateTemporaryVariable(session, source, Name.special("<$specialName>"), initializer) ): FirVariable<*> = generateTemporaryVariable(moduleData, source, Name.special("<$specialName>"), initializer)
fun FirPropertyBuilder.generateAccessorsByDelegate( fun FirPropertyBuilder.generateAccessorsByDelegate(
delegateBuilder: FirWrappedDelegateExpressionBuilder?, delegateBuilder: FirWrappedDelegateExpressionBuilder?,
ownerClassBuilder: FirClassBuilder?, ownerClassBuilder: FirClassBuilder?,
session: FirSession, moduleData: FirModuleData,
isExtension: Boolean, isExtension: Boolean,
stubMode: Boolean, stubMode: Boolean,
receiver: FirExpression? receiver: FirExpression?
@@ -402,7 +400,7 @@ fun FirPropertyBuilder.generateAccessorsByDelegate(
val returnTarget = FirFunctionTarget(null, isLambda = false) val returnTarget = FirFunctionTarget(null, isLambda = false)
getter = buildPropertyAccessor { getter = buildPropertyAccessor {
this.source = fakeSource this.source = fakeSource
declarationSiteSession = session this.moduleData = moduleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
returnTypeRef = buildImplicitTypeRef() returnTypeRef = buildImplicitTypeRef()
isGetter = true isGetter = true
@@ -434,14 +432,14 @@ fun FirPropertyBuilder.generateAccessorsByDelegate(
val annotations = setter?.annotations val annotations = setter?.annotations
setter = buildPropertyAccessor { setter = buildPropertyAccessor {
this.source = fakeSource this.source = fakeSource
declarationSiteSession = session this.moduleData = moduleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
returnTypeRef = session.builtinTypes.unitType returnTypeRef = moduleData.session.builtinTypes.unitType
isGetter = false isGetter = false
status = FirDeclarationStatusImpl(Visibilities.Unknown, Modality.FINAL) status = FirDeclarationStatusImpl(Visibilities.Unknown, Modality.FINAL)
val parameter = buildValueParameter { val parameter = buildValueParameter {
source = fakeSource source = fakeSource
declarationSiteSession = session this.moduleData = moduleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
returnTypeRef = buildImplicitTypeRef() returnTypeRef = buildImplicitTypeRef()
name = DELEGATED_SETTER_PARAM name = DELEGATED_SETTER_PARAM
@@ -61,7 +61,7 @@ fun FirFunctionCall.copy(
fun FirAnonymousFunction.copy( fun FirAnonymousFunction.copy(
receiverTypeRef: FirTypeRef? = this.receiverTypeRef, receiverTypeRef: FirTypeRef? = this.receiverTypeRef,
source: FirSourceElement? = this.source, source: FirSourceElement? = this.source,
session: FirSession = this.declarationSiteSession, moduleData: FirModuleData = this.moduleData,
origin: FirDeclarationOrigin = this.origin, origin: FirDeclarationOrigin = this.origin,
returnTypeRef: FirTypeRef = this.returnTypeRef, returnTypeRef: FirTypeRef = this.returnTypeRef,
valueParameters: List<FirValueParameter> = this.valueParameters, valueParameters: List<FirValueParameter> = this.valueParameters,
@@ -74,7 +74,7 @@ fun FirAnonymousFunction.copy(
): FirAnonymousFunction { ): FirAnonymousFunction {
return buildAnonymousFunction { return buildAnonymousFunction {
this.source = source this.source = source
declarationSiteSession = session this.moduleData = moduleData
this.origin = origin this.origin = origin
this.returnTypeRef = returnTypeRef this.returnTypeRef = returnTypeRef
this.receiverTypeRef = receiverTypeRef this.receiverTypeRef = receiverTypeRef
@@ -122,7 +122,7 @@ fun FirTypeParameter.copy(
): FirTypeParameter { ): FirTypeParameter {
return buildTypeParameter { return buildTypeParameter {
source = this@copy.source source = this@copy.source
declarationSiteSession = this@copy.declarationSiteSession moduleData = this@copy.moduleData
name = this@copy.name name = this@copy.name
symbol = this@copy.symbol symbol = this@copy.symbol
variance = this@copy.variance variance = this@copy.variance
@@ -12,9 +12,9 @@ import org.jetbrains.kotlin.fir.resolve.calls.Candidate
import org.jetbrains.kotlin.fir.resolve.calls.FirSyntheticFunctionSymbol import org.jetbrains.kotlin.fir.resolve.calls.FirSyntheticFunctionSymbol
import org.jetbrains.kotlin.fir.resolve.calls.ReceiverValue import org.jetbrains.kotlin.fir.resolve.calls.ReceiverValue
import org.jetbrains.kotlin.fir.resolve.firProvider import org.jetbrains.kotlin.fir.resolve.firProvider
import org.jetbrains.kotlin.fir.resolve.symbolProvider
import org.jetbrains.kotlin.fir.resolve.fullyExpandedType import org.jetbrains.kotlin.fir.resolve.fullyExpandedType
import org.jetbrains.kotlin.fir.resolve.lookupSuperTypes import org.jetbrains.kotlin.fir.resolve.lookupSuperTypes
import org.jetbrains.kotlin.fir.resolve.symbolProvider
import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirClassLikeSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirClassLikeSymbol
@@ -70,11 +70,11 @@ abstract class FirVisibilityChecker : FirSessionComponent {
val symbol = declaration.symbol val symbol = declaration.symbol
return when (declaration.visibility) { return when (declaration.visibility) {
Visibilities.Internal -> { Visibilities.Internal -> {
declaration.declarationSiteSession == session || session.moduleVisibilityChecker?.isInFriendModule(declaration) == true declaration.moduleData == session.moduleData || session.moduleVisibilityChecker?.isInFriendModule(declaration) == true
} }
Visibilities.Private, Visibilities.PrivateToThis -> { Visibilities.Private, Visibilities.PrivateToThis -> {
val ownerId = symbol.getOwnerId() val ownerId = symbol.getOwnerId()
if (declaration.declarationSiteSession == session) { if (declaration.moduleData == session.moduleData) {
when { when {
ownerId == null -> { ownerId == null -> {
val candidateFile = when (symbol) { val candidateFile = when (symbol) {
@@ -14,15 +14,13 @@ import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.declarations.builder.FirTypeParameterBuilder import org.jetbrains.kotlin.fir.declarations.builder.FirTypeParameterBuilder
import org.jetbrains.kotlin.fir.declarations.builder.buildSimpleFunction import org.jetbrains.kotlin.fir.declarations.builder.buildSimpleFunction
import org.jetbrains.kotlin.fir.declarations.builder.buildValueParameter import org.jetbrains.kotlin.fir.declarations.builder.buildValueParameter
import org.jetbrains.kotlin.fir.declarations.impl.FirDeclarationStatusImpl
import org.jetbrains.kotlin.fir.declarations.impl.FirResolvedDeclarationStatusImpl import org.jetbrains.kotlin.fir.declarations.impl.FirResolvedDeclarationStatusImpl
import org.jetbrains.kotlin.fir.diagnostics.ConeIntermediateDiagnostic import org.jetbrains.kotlin.fir.diagnostics.ConeIntermediateDiagnostic
import org.jetbrains.kotlin.fir.moduleData
import org.jetbrains.kotlin.fir.resolve.calls.FirSyntheticFunctionSymbol import org.jetbrains.kotlin.fir.resolve.calls.FirSyntheticFunctionSymbol
import org.jetbrains.kotlin.fir.resolve.substitution.substitutorByMap import org.jetbrains.kotlin.fir.resolve.substitution.substitutorByMap
import org.jetbrains.kotlin.fir.scopes.impl.hasTypeOf import org.jetbrains.kotlin.fir.scopes.impl.hasTypeOf
import org.jetbrains.kotlin.fir.scopes.unsubstitutedScope import org.jetbrains.kotlin.fir.scopes.unsubstitutedScope
import org.jetbrains.kotlin.name.CallableId
import org.jetbrains.kotlin.name.StandardClassIds
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol
@@ -32,7 +30,9 @@ import org.jetbrains.kotlin.fir.types.*
import org.jetbrains.kotlin.fir.types.builder.buildResolvedTypeRef import org.jetbrains.kotlin.fir.types.builder.buildResolvedTypeRef
import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl
import org.jetbrains.kotlin.fir.types.impl.ConeTypeParameterTypeImpl import org.jetbrains.kotlin.fir.types.impl.ConeTypeParameterTypeImpl
import org.jetbrains.kotlin.name.CallableId
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.name.StandardClassIds
import org.jetbrains.kotlin.types.Variance import org.jetbrains.kotlin.types.Variance
abstract class FirSamResolver { abstract class FirSamResolver {
@@ -133,7 +133,7 @@ class FirSamResolverImpl(
val declaredTypeParameter = typeParameter.symbol.fir // TODO: or really declared? val declaredTypeParameter = typeParameter.symbol.fir // TODO: or really declared?
FirTypeParameterBuilder().apply { FirTypeParameterBuilder().apply {
source = declaredTypeParameter.source source = declaredTypeParameter.source
declarationSiteSession = firSession moduleData = firSession.moduleData
origin = FirDeclarationOrigin.SamConstructor origin = FirDeclarationOrigin.SamConstructor
name = declaredTypeParameter.name name = declaredTypeParameter.name
this.symbol = FirTypeParameterSymbol() this.symbol = FirTypeParameterSymbol()
@@ -165,7 +165,7 @@ class FirSamResolverImpl(
} }
return buildSimpleFunction { return buildSimpleFunction {
declarationSiteSession = firSession moduleData = firSession.moduleData
source = firRegularClass.source source = firRegularClass.source
name = classId.shortClassName name = classId.shortClassName
origin = FirDeclarationOrigin.SamConstructor origin = FirDeclarationOrigin.SamConstructor
@@ -200,7 +200,7 @@ class FirSamResolverImpl(
} }
valueParameters += buildValueParameter { valueParameters += buildValueParameter {
declarationSiteSession = firSession moduleData = firSession.moduleData
origin = FirDeclarationOrigin.SamConstructor origin = FirDeclarationOrigin.SamConstructor
returnTypeRef = buildResolvedTypeRef { returnTypeRef = buildResolvedTypeRef {
source = firRegularClass.source source = firRegularClass.source
@@ -11,6 +11,7 @@ import org.jetbrains.kotlin.fir.declarations.builder.buildErrorFunction
import org.jetbrains.kotlin.fir.declarations.builder.buildErrorProperty import org.jetbrains.kotlin.fir.declarations.builder.buildErrorProperty
import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic
import org.jetbrains.kotlin.fir.expressions.* import org.jetbrains.kotlin.fir.expressions.*
import org.jetbrains.kotlin.fir.moduleData
import org.jetbrains.kotlin.fir.returnExpressions import org.jetbrains.kotlin.fir.returnExpressions
import org.jetbrains.kotlin.fir.scopes.FirScope import org.jetbrains.kotlin.fir.scopes.FirScope
import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol
@@ -82,7 +83,7 @@ class CandidateFactory private constructor(
private fun createErrorFunctionSymbol(diagnostic: ConeDiagnostic): FirErrorFunctionSymbol { private fun createErrorFunctionSymbol(diagnostic: ConeDiagnostic): FirErrorFunctionSymbol {
return FirErrorFunctionSymbol().also { return FirErrorFunctionSymbol().also {
buildErrorFunction { buildErrorFunction {
declarationSiteSession = context.session moduleData = context.session.moduleData
resolvePhase = FirResolvePhase.BODY_RESOLVE resolvePhase = FirResolvePhase.BODY_RESOLVE
origin = FirDeclarationOrigin.Synthetic origin = FirDeclarationOrigin.Synthetic
this.diagnostic = diagnostic this.diagnostic = diagnostic
@@ -94,7 +95,7 @@ class CandidateFactory private constructor(
private fun createErrorPropertySymbol(diagnostic: ConeDiagnostic): FirErrorPropertySymbol { private fun createErrorPropertySymbol(diagnostic: ConeDiagnostic): FirErrorPropertySymbol {
return FirErrorPropertySymbol(diagnostic).also { return FirErrorPropertySymbol(diagnostic).also {
buildErrorProperty { buildErrorProperty {
declarationSiteSession = context.session moduleData = context.session.moduleData
resolvePhase = FirResolvePhase.BODY_RESOLVE resolvePhase = FirResolvePhase.BODY_RESOLVE
origin = FirDeclarationOrigin.Synthetic origin = FirDeclarationOrigin.Synthetic
name = FirErrorPropertySymbol.NAME name = FirErrorPropertySymbol.NAME
@@ -5,22 +5,24 @@
package org.jetbrains.kotlin.fir.resolve.calls package org.jetbrains.kotlin.fir.resolve.calls
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.*
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction
import org.jetbrains.kotlin.fir.declarations.isStatic import org.jetbrains.kotlin.fir.declarations.isStatic
import org.jetbrains.kotlin.fir.declarations.synthetic.buildSyntheticProperty import org.jetbrains.kotlin.fir.declarations.synthetic.buildSyntheticProperty
import org.jetbrains.kotlin.fir.dispatchReceiverClassOrNull
import org.jetbrains.kotlin.fir.scopes.* import org.jetbrains.kotlin.fir.scopes.*
import org.jetbrains.kotlin.name.CallableId
import org.jetbrains.kotlin.name.StandardClassIds
import org.jetbrains.kotlin.fir.symbols.SyntheticSymbol import org.jetbrains.kotlin.fir.symbols.SyntheticSymbol
import org.jetbrains.kotlin.fir.symbols.impl.* import org.jetbrains.kotlin.fir.symbols.impl.FirAccessorSymbol
import org.jetbrains.kotlin.fir.typeContext import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol
import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol
import org.jetbrains.kotlin.fir.types.ConeClassLikeType
import org.jetbrains.kotlin.fir.types.ConeNullability.NOT_NULL import org.jetbrains.kotlin.fir.types.ConeNullability.NOT_NULL
import org.jetbrains.kotlin.fir.unwrapFakeOverrides import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
import org.jetbrains.kotlin.fir.types.withNullability
import org.jetbrains.kotlin.name.CallableId
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.name.StandardClassIds
import org.jetbrains.kotlin.types.AbstractTypeChecker import org.jetbrains.kotlin.types.AbstractTypeChecker
class FirSyntheticPropertySymbol( class FirSyntheticPropertySymbol(
@@ -107,7 +109,7 @@ class FirSyntheticPropertiesScope(
val className = classLookupTag?.classId?.relativeClassName val className = classLookupTag?.classId?.relativeClassName
val property = buildSyntheticProperty { val property = buildSyntheticProperty {
declarationSiteSession = session moduleData = session.moduleData
name = propertyName name = propertyName
symbol = FirSyntheticPropertySymbol( symbol = FirSyntheticPropertySymbol(
accessorId = getterSymbol.callableId, accessorId = getterSymbol.callableId,
@@ -187,7 +187,7 @@ class FirCallCompleter(
val itType = parameters.single() val itType = parameters.single()
buildValueParameter { buildValueParameter {
source = lambdaAtom.atom.source?.fakeElement(FirFakeSourceElementKind.ItLambdaParameter) source = lambdaAtom.atom.source?.fakeElement(FirFakeSourceElementKind.ItLambdaParameter)
declarationSiteSession = session moduleData = session.moduleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
returnTypeRef = itType.approximateLambdaInputType().toFirResolvedTypeRef() returnTypeRef = itType.approximateLambdaInputType().toFirResolvedTypeRef()
this.name = name this.name = name
@@ -9,6 +9,7 @@ import org.jetbrains.kotlin.builtins.StandardNames
import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.ClassKind
import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.descriptors.Visibilities
import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.NoMutableState import org.jetbrains.kotlin.fir.NoMutableState
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
@@ -20,15 +21,19 @@ import org.jetbrains.kotlin.fir.resolve.constructType
import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider
import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProviderInternals import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProviderInternals
import org.jetbrains.kotlin.fir.scopes.FirScopeProvider import org.jetbrains.kotlin.fir.scopes.FirScopeProvider
import org.jetbrains.kotlin.name.CallableId
import org.jetbrains.kotlin.fir.symbols.impl.* import org.jetbrains.kotlin.fir.symbols.impl.*
import org.jetbrains.kotlin.fir.types.builder.buildResolvedTypeRef import org.jetbrains.kotlin.fir.types.builder.buildResolvedTypeRef
import org.jetbrains.kotlin.name.CallableId
import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
@NoMutableState @NoMutableState
class FirCloneableSymbolProvider(session: FirSession, scopeProvider: FirScopeProvider) : FirSymbolProvider(session) { class FirCloneableSymbolProvider(
session: FirSession,
moduleData: FirModuleData,
scopeProvider: FirScopeProvider
) : FirSymbolProvider(session) {
companion object { companion object {
val CLONEABLE: Name = Name.identifier("Cloneable") val CLONEABLE: Name = Name.identifier("Cloneable")
val CLONEABLE_CLASS_ID: ClassId = ClassId(StandardNames.BUILT_INS_PACKAGE_FQ_NAME, CLONEABLE) val CLONEABLE_CLASS_ID: ClassId = ClassId(StandardNames.BUILT_INS_PACKAGE_FQ_NAME, CLONEABLE)
@@ -39,7 +44,7 @@ class FirCloneableSymbolProvider(session: FirSession, scopeProvider: FirScopePro
private val klass = buildRegularClass { private val klass = buildRegularClass {
resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES
origin = FirDeclarationOrigin.Library origin = FirDeclarationOrigin.Library
declarationSiteSession = session this.moduleData = moduleData
status = FirDeclarationStatusImpl( status = FirDeclarationStatusImpl(
Visibilities.Public, Visibilities.Public,
Modality.ABSTRACT Modality.ABSTRACT
@@ -47,7 +52,7 @@ class FirCloneableSymbolProvider(session: FirSession, scopeProvider: FirScopePro
classKind = ClassKind.INTERFACE classKind = ClassKind.INTERFACE
symbol = FirRegularClassSymbol(CLONEABLE_CLASS_ID) symbol = FirRegularClassSymbol(CLONEABLE_CLASS_ID)
declarations += buildSimpleFunction { declarations += buildSimpleFunction {
declarationSiteSession = session this.moduleData = moduleData
resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES
origin = FirDeclarationOrigin.Library origin = FirDeclarationOrigin.Library
returnTypeRef = buildResolvedTypeRef { returnTypeRef = buildResolvedTypeRef {
@@ -40,7 +40,7 @@ abstract class FirAbstractPhaseTransformer<D>(
} }
protected fun checkSessionConsistency(file: FirFile) { protected fun checkSessionConsistency(file: FirFile) {
assert(session === file.declarationSiteSession) { assert(session === file.moduleData.session) {
"File ${file.name} and transformer ${this::class} have inconsistent sessions" "File ${file.name} and transformer ${this::class} have inconsistent sessions"
} }
} }
@@ -8,7 +8,6 @@ package org.jetbrains.kotlin.fir.resolve.transformers
import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.descriptors.Visibilities
import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.resolve.createErrorReferenceWithExistingCandidate
import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.declarations.builder.FirSimpleFunctionBuilder import org.jetbrains.kotlin.fir.declarations.builder.FirSimpleFunctionBuilder
import org.jetbrains.kotlin.fir.declarations.builder.buildTypeParameter import org.jetbrains.kotlin.fir.declarations.builder.buildTypeParameter
@@ -17,13 +16,14 @@ import org.jetbrains.kotlin.fir.declarations.impl.FirDeclarationStatusImpl
import org.jetbrains.kotlin.fir.expressions.* import org.jetbrains.kotlin.fir.expressions.*
import org.jetbrains.kotlin.fir.expressions.builder.buildArgumentList import org.jetbrains.kotlin.fir.expressions.builder.buildArgumentList
import org.jetbrains.kotlin.fir.expressions.builder.buildFunctionCall import org.jetbrains.kotlin.fir.expressions.builder.buildFunctionCall
import org.jetbrains.kotlin.fir.moduleData
import org.jetbrains.kotlin.fir.references.FirReference import org.jetbrains.kotlin.fir.references.FirReference
import org.jetbrains.kotlin.fir.references.impl.FirStubReference import org.jetbrains.kotlin.fir.references.impl.FirStubReference
import org.jetbrains.kotlin.fir.resolve.BodyResolveComponents import org.jetbrains.kotlin.fir.resolve.BodyResolveComponents
import org.jetbrains.kotlin.fir.resolve.calls.* import org.jetbrains.kotlin.fir.resolve.calls.*
import org.jetbrains.kotlin.fir.resolve.createErrorReferenceWithExistingCandidate
import org.jetbrains.kotlin.fir.resolve.diagnostics.ConeInapplicableCandidateError import org.jetbrains.kotlin.fir.resolve.diagnostics.ConeInapplicableCandidateError
import org.jetbrains.kotlin.fir.resolvedTypeFromPrototype import org.jetbrains.kotlin.fir.resolvedTypeFromPrototype
import org.jetbrains.kotlin.name.CallableId
import org.jetbrains.kotlin.fir.symbols.SyntheticCallableId import org.jetbrains.kotlin.fir.symbols.SyntheticCallableId
import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol
@@ -34,6 +34,7 @@ import org.jetbrains.kotlin.fir.types.builder.buildResolvedTypeRef
import org.jetbrains.kotlin.fir.types.builder.buildTypeProjectionWithVariance import org.jetbrains.kotlin.fir.types.builder.buildTypeProjectionWithVariance
import org.jetbrains.kotlin.fir.types.impl.ConeTypeParameterTypeImpl import org.jetbrains.kotlin.fir.types.impl.ConeTypeParameterTypeImpl
import org.jetbrains.kotlin.fir.visitors.FirTransformer import org.jetbrains.kotlin.fir.visitors.FirTransformer
import org.jetbrains.kotlin.name.CallableId
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.resolve.calls.tasks.ExplicitReceiverKind import org.jetbrains.kotlin.resolve.calls.tasks.ExplicitReceiverKind
import org.jetbrains.kotlin.resolve.calls.tower.CandidateApplicability import org.jetbrains.kotlin.resolve.calls.tower.CandidateApplicability
@@ -220,7 +221,7 @@ class FirSyntheticCallGenerator(
val typeParameterSymbol = FirTypeParameterSymbol() val typeParameterSymbol = FirTypeParameterSymbol()
val typeParameter = val typeParameter =
buildTypeParameter { buildTypeParameter {
declarationSiteSession = session moduleData = session.moduleData
origin = FirDeclarationOrigin.Library origin = FirDeclarationOrigin.Library
name = Name.identifier("K") name = Name.identifier("K")
symbol = typeParameterSymbol symbol = typeParameterSymbol
@@ -321,7 +322,7 @@ class FirSyntheticCallGenerator(
symbol: FirNamedFunctionSymbol, name: Name, returnType: FirTypeRef symbol: FirNamedFunctionSymbol, name: Name, returnType: FirTypeRef
): FirSimpleFunctionBuilder { ): FirSimpleFunctionBuilder {
return FirSimpleFunctionBuilder().apply { return FirSimpleFunctionBuilder().apply {
declarationSiteSession = session moduleData = session.moduleData
origin = FirDeclarationOrigin.Synthetic origin = FirDeclarationOrigin.Synthetic
this.symbol = symbol this.symbol = symbol
this.name = name this.name = name
@@ -346,7 +347,7 @@ class FirSyntheticCallGenerator(
): FirValueParameter { ): FirValueParameter {
val name = Name.identifier(nameAsString) val name = Name.identifier(nameAsString)
return buildValueParameter { return buildValueParameter {
declarationSiteSession = session moduleData = session.moduleData
origin = FirDeclarationOrigin.Library origin = FirDeclarationOrigin.Library
this.name = name this.name = name
returnTypeRef = this@toValueParameter returnTypeRef = this@toValueParameter
@@ -23,7 +23,7 @@ fun AbstractFirBasedSymbol<*>.ensureResolved(
// TODO: Decide which one session should be used and probably get rid of the parameter if use-site session is not needed // TODO: Decide which one session should be used and probably get rid of the parameter if use-site session is not needed
@Suppress("UNUSED_PARAMETER") useSiteSession: FirSession, @Suppress("UNUSED_PARAMETER") useSiteSession: FirSession,
) { ) {
val session = (fir as FirDeclaration).declarationSiteSession val session = (fir as FirDeclaration).moduleData.session
val phaseManager = session.phaseManager val phaseManager = session.phaseManager
phaseManager.ensureResolved(this, requiredPhase) phaseManager.ensureResolved(this, requiredPhase)
} }
@@ -653,7 +653,7 @@ open class FirDeclarationsResolveTransformer(transformer: FirBodyResolveTransfor
val name = Name.identifier("it") val name = Name.identifier("it")
val itParam = buildValueParameter { val itParam = buildValueParameter {
source = lambda.source?.fakeElement(FirFakeSourceElementKind.ItLambdaParameter) source = lambda.source?.fakeElement(FirFakeSourceElementKind.ItLambdaParameter)
declarationSiteSession = session moduleData = session.moduleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
returnTypeRef = singleParameterType.toFirResolvedTypeRef() returnTypeRef = singleParameterType.toFirResolvedTypeRef()
this.name = name this.name = name
@@ -5,7 +5,7 @@
package org.jetbrains.kotlin.fir.resolve.transformers.contracts package org.jetbrains.kotlin.fir.resolve.transformers.contracts
import org.jetbrains.kotlin.fir.* import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.contracts.FirLegacyRawContractDescription import org.jetbrains.kotlin.fir.contracts.FirLegacyRawContractDescription
import org.jetbrains.kotlin.fir.contracts.FirRawContractDescription import org.jetbrains.kotlin.fir.contracts.FirRawContractDescription
import org.jetbrains.kotlin.fir.contracts.builder.buildLegacyRawContractDescription import org.jetbrains.kotlin.fir.contracts.builder.buildLegacyRawContractDescription
@@ -16,8 +16,13 @@ import org.jetbrains.kotlin.fir.contracts.toFirEffectDeclaration
import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.declarations.builder.buildAnonymousFunction import org.jetbrains.kotlin.fir.declarations.builder.buildAnonymousFunction
import org.jetbrains.kotlin.fir.declarations.synthetic.FirSyntheticProperty import org.jetbrains.kotlin.fir.declarations.synthetic.FirSyntheticProperty
import org.jetbrains.kotlin.fir.errorTypeFromPrototype
import org.jetbrains.kotlin.fir.expressions.* import org.jetbrains.kotlin.fir.expressions.*
import org.jetbrains.kotlin.fir.expressions.builder.* import org.jetbrains.kotlin.fir.expressions.builder.buildArgumentList
import org.jetbrains.kotlin.fir.expressions.builder.buildBlock
import org.jetbrains.kotlin.fir.expressions.builder.buildFunctionCall
import org.jetbrains.kotlin.fir.expressions.builder.buildLambdaArgumentExpression
import org.jetbrains.kotlin.fir.moduleData
import org.jetbrains.kotlin.fir.references.builder.buildSimpleNamedReference import org.jetbrains.kotlin.fir.references.builder.buildSimpleNamedReference
import org.jetbrains.kotlin.fir.resolve.ResolutionMode import org.jetbrains.kotlin.fir.resolve.ResolutionMode
import org.jetbrains.kotlin.fir.resolve.ScopeSession import org.jetbrains.kotlin.fir.resolve.ScopeSession
@@ -27,7 +32,7 @@ import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolve
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer
import org.jetbrains.kotlin.fir.symbols.impl.FirAnonymousFunctionSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirAnonymousFunctionSymbol
import org.jetbrains.kotlin.fir.types.builder.buildImplicitTypeRef import org.jetbrains.kotlin.fir.types.builder.buildImplicitTypeRef
import org.jetbrains.kotlin.fir.visitors.* import org.jetbrains.kotlin.fir.visitors.transformSingle
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
open class FirContractResolveTransformer( open class FirContractResolveTransformer(
@@ -165,7 +170,7 @@ open class FirContractResolveTransformer(
contractDescription: FirRawContractDescription contractDescription: FirRawContractDescription
): T { ): T {
val effectsBlock = buildAnonymousFunction { val effectsBlock = buildAnonymousFunction {
declarationSiteSession = session moduleData = session.moduleData
origin = FirDeclarationOrigin.Source origin = FirDeclarationOrigin.Source
returnTypeRef = buildImplicitTypeRef() returnTypeRef = buildImplicitTypeRef()
receiverTypeRef = buildImplicitTypeRef() receiverTypeRef = buildImplicitTypeRef()
@@ -11,6 +11,7 @@ import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.declarations.FirMemberDeclaration import org.jetbrains.kotlin.fir.declarations.FirMemberDeclaration
import org.jetbrains.kotlin.fir.declarations.FirResolvedImport import org.jetbrains.kotlin.fir.declarations.FirResolvedImport
import org.jetbrains.kotlin.fir.declarations.expandedConeType import org.jetbrains.kotlin.fir.declarations.expandedConeType
import org.jetbrains.kotlin.fir.moduleData
import org.jetbrains.kotlin.fir.moduleVisibilityChecker import org.jetbrains.kotlin.fir.moduleVisibilityChecker
import org.jetbrains.kotlin.fir.resolve.ScopeSession import org.jetbrains.kotlin.fir.resolve.ScopeSession
import org.jetbrains.kotlin.fir.resolve.toSymbol import org.jetbrains.kotlin.fir.resolve.toSymbol
@@ -37,7 +38,7 @@ enum class FirImportingScopeFilter {
// though, "unknown" will always become public anyway. // though, "unknown" will always become public anyway.
Visibilities.Unknown -> true Visibilities.Unknown -> true
Visibilities.Internal -> Visibilities.Internal ->
symbol.fir.declarationSiteSession == session || session.moduleVisibilityChecker?.isInFriendModule(fir) == true symbol.fir.moduleData == session.moduleData || session.moduleVisibilityChecker?.isInFriendModule(fir) == true
// All non-`internal` visibilities are either even more restrictive (e.g. `private`) or must not // All non-`internal` visibilities are either even more restrictive (e.g. `private`) or must not
// be checked in imports (e.g. `protected` may be valid in some use sites). // be checked in imports (e.g. `protected` may be valid in some use sites).
else -> !fir.status.visibility.mustCheckInImports() else -> !fir.status.visibility.mustCheckInImports()
@@ -8,25 +8,26 @@ package org.jetbrains.kotlin.fir.scopes.impl
import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.descriptors.Visibility
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.copy
import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.declarations.builder.* import org.jetbrains.kotlin.fir.declarations.builder.*
import org.jetbrains.kotlin.fir.declarations.synthetic.FirSyntheticProperty import org.jetbrains.kotlin.fir.declarations.synthetic.FirSyntheticProperty
import org.jetbrains.kotlin.fir.declarations.synthetic.buildSyntheticProperty import org.jetbrains.kotlin.fir.declarations.synthetic.buildSyntheticProperty
import org.jetbrains.kotlin.fir.moduleData
import org.jetbrains.kotlin.fir.originalForSubstitutionOverrideAttr import org.jetbrains.kotlin.fir.originalForSubstitutionOverrideAttr
import org.jetbrains.kotlin.fir.resolve.substitution.ChainedSubstitutor import org.jetbrains.kotlin.fir.resolve.substitution.ChainedSubstitutor
import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor
import org.jetbrains.kotlin.fir.resolve.substitution.substitutorByMap import org.jetbrains.kotlin.fir.resolve.substitution.substitutorByMap
import org.jetbrains.kotlin.fir.scopes.FakeOverrideSubstitution import org.jetbrains.kotlin.fir.scopes.FakeOverrideSubstitution
import org.jetbrains.kotlin.fir.scopes.fakeOverrideSubstitution import org.jetbrains.kotlin.fir.scopes.fakeOverrideSubstitution
import org.jetbrains.kotlin.name.CallableId
import org.jetbrains.kotlin.name.StandardClassIds
import org.jetbrains.kotlin.fir.symbols.impl.* import org.jetbrains.kotlin.fir.symbols.impl.*
import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.fir.types.*
import org.jetbrains.kotlin.fir.types.builder.buildImplicitTypeRef import org.jetbrains.kotlin.fir.types.builder.buildImplicitTypeRef
import org.jetbrains.kotlin.fir.types.builder.buildResolvedTypeRef import org.jetbrains.kotlin.fir.types.builder.buildResolvedTypeRef
import org.jetbrains.kotlin.fir.types.impl.ConeTypeParameterTypeImpl import org.jetbrains.kotlin.fir.types.impl.ConeTypeParameterTypeImpl
import org.jetbrains.kotlin.fir.copy import org.jetbrains.kotlin.name.CallableId
import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.name.StandardClassIds
import org.jetbrains.kotlin.utils.addToStdlib.runIf import org.jetbrains.kotlin.utils.addToStdlib.runIf
object FirFakeOverrideGenerator { object FirFakeOverrideGenerator {
@@ -101,7 +102,7 @@ object FirFakeOverrideGenerator {
): FirSimpleFunction { ): FirSimpleFunction {
return buildSimpleFunction { return buildSimpleFunction {
source = baseFunction.source source = baseFunction.source
declarationSiteSession = session moduleData = session.moduleData
this.origin = origin this.origin = origin
name = baseFunction.name name = baseFunction.name
status = baseFunction.status.copy(isExpect, newModality, newVisibility) status = baseFunction.status.copy(isExpect, newModality, newVisibility)
@@ -130,14 +131,20 @@ object FirFakeOverrideGenerator {
// TODO: consider using here some light-weight functions instead of pseudo-real FirMemberFunctionImpl // TODO: consider using here some light-weight functions instead of pseudo-real FirMemberFunctionImpl
// As second alternative, we can invent some light-weight kind of FirRegularClass // As second alternative, we can invent some light-weight kind of FirRegularClass
return buildConstructor { return buildConstructor {
declarationSiteSession = session moduleData = session.moduleData
origin = FirDeclarationOrigin.SubstitutionOverride origin = FirDeclarationOrigin.SubstitutionOverride
receiverTypeRef = baseConstructor.receiverTypeRef?.withReplacedConeType(null) receiverTypeRef = baseConstructor.receiverTypeRef?.withReplacedConeType(null)
status = baseConstructor.status.copy(isExpect) status = baseConstructor.status.copy(isExpect)
symbol = fakeOverrideSymbol symbol = fakeOverrideSymbol
typeParameters += configureAnnotationsTypeParametersAndSignature( typeParameters += configureAnnotationsTypeParametersAndSignature(
session, baseConstructor, newParameterTypes, newTypeParameters, newReceiverType = null, newReturnType, fakeOverrideSubstitution session,
baseConstructor,
newParameterTypes,
newTypeParameters,
newReceiverType = null,
newReturnType,
fakeOverrideSubstitution
) )
dispatchReceiverType = newDispatchReceiverType dispatchReceiverType = newDispatchReceiverType
@@ -283,7 +290,7 @@ object FirFakeOverrideGenerator {
): FirProperty { ): FirProperty {
return buildProperty { return buildProperty {
source = baseProperty.source source = baseProperty.source
declarationSiteSession = session moduleData = session.moduleData
this.origin = origin this.origin = origin
name = baseProperty.name name = baseProperty.name
isVar = baseProperty.isVar isVar = baseProperty.isVar
@@ -392,7 +399,7 @@ object FirFakeOverrideGenerator {
CallableId(derivedClassId ?: baseSymbol.callableId.classId!!, baseField.name) CallableId(derivedClassId ?: baseSymbol.callableId.classId!!, baseField.name)
) )
buildField { buildField {
declarationSiteSession = session moduleData = session.moduleData
this.symbol = symbol this.symbol = symbol
origin = FirDeclarationOrigin.SubstitutionOverride origin = FirDeclarationOrigin.SubstitutionOverride
returnTypeRef = baseField.returnTypeRef.withReplacedConeType(newReturnType) returnTypeRef = baseField.returnTypeRef.withReplacedConeType(newReturnType)
@@ -448,7 +455,7 @@ object FirFakeOverrideGenerator {
fakeOverrideSubstitution = fakeOverrideSubstitution fakeOverrideSubstitution = fakeOverrideSubstitution
) )
return buildSyntheticProperty { return buildSyntheticProperty {
declarationSiteSession = session moduleData = session.moduleData
name = baseProperty.name name = baseProperty.name
symbol = FirAccessorSymbol(baseSymbol.callableId, baseSymbol.accessorId) symbol = FirAccessorSymbol(baseSymbol.callableId, baseSymbol.accessorId)
delegateGetter = getter delegateGetter = getter
@@ -469,7 +476,7 @@ object FirFakeOverrideGenerator {
if (typeParameter !is FirTypeParameter) return@map null if (typeParameter !is FirTypeParameter) return@map null
FirTypeParameterBuilder().apply { FirTypeParameterBuilder().apply {
source = typeParameter.source source = typeParameter.source
declarationSiteSession = typeParameter.declarationSiteSession moduleData = typeParameter.moduleData
origin = FirDeclarationOrigin.SubstitutionOverride origin = FirDeclarationOrigin.SubstitutionOverride
name = typeParameter.name name = typeParameter.name
symbol = FirTypeParameterSymbol() symbol = FirTypeParameterSymbol()
@@ -12,9 +12,12 @@ import org.jetbrains.kotlin.fir.*
import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor
import org.jetbrains.kotlin.fir.scopes.* import org.jetbrains.kotlin.fir.scopes.*
import org.jetbrains.kotlin.name.CallableId
import org.jetbrains.kotlin.fir.symbols.impl.* import org.jetbrains.kotlin.fir.symbols.impl.*
import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.fir.types.ConeFlexibleType
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.classId
import org.jetbrains.kotlin.fir.types.coneTypeSafe
import org.jetbrains.kotlin.name.CallableId
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.types.AbstractTypeChecker import org.jetbrains.kotlin.types.AbstractTypeChecker
import org.jetbrains.kotlin.types.AbstractTypeCheckerContext import org.jetbrains.kotlin.types.AbstractTypeCheckerContext
@@ -344,7 +347,7 @@ class FirTypeIntersectionScope private constructor(
val newSymbol = FirIntersectionOverridePropertySymbol(mostSpecific.callableId, overrides) val newSymbol = FirIntersectionOverridePropertySymbol(mostSpecific.callableId, overrides)
val mostSpecificProperty = mostSpecific.fir val mostSpecificProperty = mostSpecific.fir
FirFakeOverrideGenerator.createCopyForFirProperty( FirFakeOverrideGenerator.createCopyForFirProperty(
newSymbol, mostSpecificProperty, mostSpecificProperty.declarationSiteSession, FirDeclarationOrigin.IntersectionOverride, newSymbol, mostSpecificProperty, session, FirDeclarationOrigin.IntersectionOverride,
newModality = newModality, newModality = newModality,
newVisibility = newVisibility, newVisibility = newVisibility,
newDispatchReceiverType = dispatchReceiverType, newDispatchReceiverType = dispatchReceiverType,
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.fir.declarations
import org.jetbrains.kotlin.fir.FirAnnotationContainer import org.jetbrains.kotlin.fir.FirAnnotationContainer
import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.visitors.* import org.jetbrains.kotlin.fir.visitors.*
@@ -19,7 +19,7 @@ import org.jetbrains.kotlin.fir.visitors.*
sealed interface FirAnnotatedDeclaration : FirDeclaration, FirAnnotationContainer { sealed interface FirAnnotatedDeclaration : FirDeclaration, FirAnnotationContainer {
override val source: FirSourceElement? override val source: FirSourceElement?
override val declarationSiteSession: FirSession override val moduleData: FirModuleData
override val resolvePhase: FirResolvePhase override val resolvePhase: FirResolvePhase
override val origin: FirDeclarationOrigin override val origin: FirDeclarationOrigin
override val attributes: FirDeclarationAttributes override val attributes: FirDeclarationAttributes
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.fir.declarations
import org.jetbrains.kotlin.contracts.description.EventOccurrencesRange import org.jetbrains.kotlin.contracts.description.EventOccurrencesRange
import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirLabel import org.jetbrains.kotlin.fir.FirLabel
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirBlock import org.jetbrains.kotlin.fir.expressions.FirBlock
@@ -25,7 +25,7 @@ import org.jetbrains.kotlin.fir.visitors.*
abstract class FirAnonymousFunction : FirFunction<FirAnonymousFunction>, FirExpression(), FirTypeParametersOwner { abstract class FirAnonymousFunction : FirFunction<FirAnonymousFunction>, FirExpression(), FirTypeParametersOwner {
abstract override val source: FirSourceElement? abstract override val source: FirSourceElement?
abstract override val declarationSiteSession: FirSession abstract override val moduleData: FirModuleData
abstract override val resolvePhase: FirResolvePhase abstract override val resolvePhase: FirResolvePhase
abstract override val origin: FirDeclarationOrigin abstract override val origin: FirDeclarationOrigin
abstract override val attributes: FirDeclarationAttributes abstract override val attributes: FirDeclarationAttributes
@@ -6,8 +6,8 @@
package org.jetbrains.kotlin.fir.declarations package org.jetbrains.kotlin.fir.declarations
import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.FirPureAbstractElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.FirSymbolOwner import org.jetbrains.kotlin.fir.FirSymbolOwner
import org.jetbrains.kotlin.fir.expressions.FirBlock import org.jetbrains.kotlin.fir.expressions.FirBlock
@@ -22,7 +22,7 @@ import org.jetbrains.kotlin.fir.visitors.*
abstract class FirAnonymousInitializer : FirPureAbstractElement(), FirDeclaration, FirSymbolOwner<FirAnonymousInitializer>, FirControlFlowGraphOwner { abstract class FirAnonymousInitializer : FirPureAbstractElement(), FirDeclaration, FirSymbolOwner<FirAnonymousInitializer>, FirControlFlowGraphOwner {
abstract override val source: FirSourceElement? abstract override val source: FirSourceElement?
abstract override val declarationSiteSession: FirSession abstract override val moduleData: FirModuleData
abstract override val resolvePhase: FirResolvePhase abstract override val resolvePhase: FirResolvePhase
abstract override val origin: FirDeclarationOrigin abstract override val origin: FirDeclarationOrigin
abstract override val attributes: FirDeclarationAttributes abstract override val attributes: FirDeclarationAttributes
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.fir.declarations
import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.ClassKind
import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.FirExpression
@@ -24,7 +24,7 @@ import org.jetbrains.kotlin.fir.visitors.*
abstract class FirAnonymousObject : FirClass<FirAnonymousObject>, FirControlFlowGraphOwner, FirExpression() { abstract class FirAnonymousObject : FirClass<FirAnonymousObject>, FirControlFlowGraphOwner, FirExpression() {
abstract override val source: FirSourceElement? abstract override val source: FirSourceElement?
abstract override val declarationSiteSession: FirSession abstract override val moduleData: FirModuleData
abstract override val resolvePhase: FirResolvePhase abstract override val resolvePhase: FirResolvePhase
abstract override val origin: FirDeclarationOrigin abstract override val origin: FirDeclarationOrigin
abstract override val attributes: FirDeclarationAttributes abstract override val attributes: FirDeclarationAttributes
@@ -6,7 +6,7 @@
package org.jetbrains.kotlin.fir.declarations package org.jetbrains.kotlin.fir.declarations
import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.FirSymbolOwner import org.jetbrains.kotlin.fir.FirSymbolOwner
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
@@ -21,7 +21,7 @@ import org.jetbrains.kotlin.fir.visitors.*
sealed interface FirCallableDeclaration<F : FirCallableDeclaration<F>> : FirTypedDeclaration, FirSymbolOwner<F> { sealed interface FirCallableDeclaration<F : FirCallableDeclaration<F>> : FirTypedDeclaration, FirSymbolOwner<F> {
override val source: FirSourceElement? override val source: FirSourceElement?
override val declarationSiteSession: FirSession override val moduleData: FirModuleData
override val resolvePhase: FirResolvePhase override val resolvePhase: FirResolvePhase
override val origin: FirDeclarationOrigin override val origin: FirDeclarationOrigin
override val attributes: FirDeclarationAttributes override val attributes: FirDeclarationAttributes
@@ -6,7 +6,7 @@
package org.jetbrains.kotlin.fir.declarations package org.jetbrains.kotlin.fir.declarations
import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
@@ -22,7 +22,7 @@ import org.jetbrains.kotlin.fir.visitors.*
sealed interface FirCallableMemberDeclaration<F : FirCallableMemberDeclaration<F>> : FirCallableDeclaration<F>, FirMemberDeclaration { sealed interface FirCallableMemberDeclaration<F : FirCallableMemberDeclaration<F>> : FirCallableDeclaration<F>, FirMemberDeclaration {
override val source: FirSourceElement? override val source: FirSourceElement?
override val declarationSiteSession: FirSession override val moduleData: FirModuleData
override val resolvePhase: FirResolvePhase override val resolvePhase: FirResolvePhase
override val origin: FirDeclarationOrigin override val origin: FirDeclarationOrigin
override val attributes: FirDeclarationAttributes override val attributes: FirDeclarationAttributes
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.fir.declarations
import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.ClassKind
import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirStatement import org.jetbrains.kotlin.fir.expressions.FirStatement
@@ -23,7 +23,7 @@ import org.jetbrains.kotlin.fir.visitors.*
sealed interface FirClass<F : FirClass<F>> : FirClassLikeDeclaration<F>, FirStatement, FirTypeParameterRefsOwner { sealed interface FirClass<F : FirClass<F>> : FirClassLikeDeclaration<F>, FirStatement, FirTypeParameterRefsOwner {
override val source: FirSourceElement? override val source: FirSourceElement?
override val declarationSiteSession: FirSession override val moduleData: FirModuleData
override val resolvePhase: FirResolvePhase override val resolvePhase: FirResolvePhase
override val origin: FirDeclarationOrigin override val origin: FirDeclarationOrigin
override val attributes: FirDeclarationAttributes override val attributes: FirDeclarationAttributes
@@ -6,7 +6,7 @@
package org.jetbrains.kotlin.fir.declarations package org.jetbrains.kotlin.fir.declarations
import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.FirSymbolOwner import org.jetbrains.kotlin.fir.FirSymbolOwner
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
@@ -21,7 +21,7 @@ import org.jetbrains.kotlin.fir.visitors.*
sealed interface FirClassLikeDeclaration<F : FirClassLikeDeclaration<F>> : FirAnnotatedDeclaration, FirStatement, FirSymbolOwner<F> { sealed interface FirClassLikeDeclaration<F : FirClassLikeDeclaration<F>> : FirAnnotatedDeclaration, FirStatement, FirSymbolOwner<F> {
override val source: FirSourceElement? override val source: FirSourceElement?
override val declarationSiteSession: FirSession override val moduleData: FirModuleData
override val resolvePhase: FirResolvePhase override val resolvePhase: FirResolvePhase
override val origin: FirDeclarationOrigin override val origin: FirDeclarationOrigin
override val attributes: FirDeclarationAttributes override val attributes: FirDeclarationAttributes
@@ -6,8 +6,8 @@
package org.jetbrains.kotlin.fir.declarations package org.jetbrains.kotlin.fir.declarations
import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.FirPureAbstractElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirBlock import org.jetbrains.kotlin.fir.expressions.FirBlock
@@ -26,7 +26,7 @@ import org.jetbrains.kotlin.fir.visitors.*
abstract class FirConstructor : FirPureAbstractElement(), FirFunction<FirConstructor>, FirCallableMemberDeclaration<FirConstructor>, FirTypeParameterRefsOwner { abstract class FirConstructor : FirPureAbstractElement(), FirFunction<FirConstructor>, FirCallableMemberDeclaration<FirConstructor>, FirTypeParameterRefsOwner {
abstract override val source: FirSourceElement? abstract override val source: FirSourceElement?
abstract override val declarationSiteSession: FirSession abstract override val moduleData: FirModuleData
abstract override val resolvePhase: FirResolvePhase abstract override val resolvePhase: FirResolvePhase
abstract override val origin: FirDeclarationOrigin abstract override val origin: FirDeclarationOrigin
abstract override val attributes: FirDeclarationAttributes abstract override val attributes: FirDeclarationAttributes
@@ -6,7 +6,7 @@
package org.jetbrains.kotlin.fir.declarations package org.jetbrains.kotlin.fir.declarations
import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.visitors.* import org.jetbrains.kotlin.fir.visitors.*
@@ -17,7 +17,7 @@ import org.jetbrains.kotlin.fir.visitors.*
sealed interface FirDeclaration : FirElement { sealed interface FirDeclaration : FirElement {
override val source: FirSourceElement? override val source: FirSourceElement?
val declarationSiteSession: FirSession val moduleData: FirModuleData
val resolvePhase: FirResolvePhase val resolvePhase: FirResolvePhase
val origin: FirDeclarationOrigin val origin: FirDeclarationOrigin
val attributes: FirDeclarationAttributes val attributes: FirDeclarationAttributes
@@ -6,7 +6,7 @@
package org.jetbrains.kotlin.fir.declarations package org.jetbrains.kotlin.fir.declarations
import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.FirExpression
@@ -25,7 +25,7 @@ import org.jetbrains.kotlin.fir.visitors.*
abstract class FirEnumEntry : FirVariable<FirEnumEntry>(), FirCallableMemberDeclaration<FirEnumEntry> { abstract class FirEnumEntry : FirVariable<FirEnumEntry>(), FirCallableMemberDeclaration<FirEnumEntry> {
abstract override val source: FirSourceElement? abstract override val source: FirSourceElement?
abstract override val declarationSiteSession: FirSession abstract override val moduleData: FirModuleData
abstract override val resolvePhase: FirResolvePhase abstract override val resolvePhase: FirResolvePhase
abstract override val origin: FirDeclarationOrigin abstract override val origin: FirDeclarationOrigin
abstract override val attributes: FirDeclarationAttributes abstract override val attributes: FirDeclarationAttributes
@@ -6,8 +6,8 @@
package org.jetbrains.kotlin.fir.declarations package org.jetbrains.kotlin.fir.declarations
import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.FirPureAbstractElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic
import org.jetbrains.kotlin.fir.diagnostics.FirDiagnosticHolder import org.jetbrains.kotlin.fir.diagnostics.FirDiagnosticHolder
@@ -25,7 +25,7 @@ import org.jetbrains.kotlin.fir.visitors.*
abstract class FirErrorFunction : FirPureAbstractElement(), FirFunction<FirErrorFunction>, FirDiagnosticHolder, FirTypeParametersOwner { abstract class FirErrorFunction : FirPureAbstractElement(), FirFunction<FirErrorFunction>, FirDiagnosticHolder, FirTypeParametersOwner {
abstract override val source: FirSourceElement? abstract override val source: FirSourceElement?
abstract override val declarationSiteSession: FirSession abstract override val moduleData: FirModuleData
abstract override val resolvePhase: FirResolvePhase abstract override val resolvePhase: FirResolvePhase
abstract override val origin: FirDeclarationOrigin abstract override val origin: FirDeclarationOrigin
abstract override val attributes: FirDeclarationAttributes abstract override val attributes: FirDeclarationAttributes
@@ -6,7 +6,7 @@
package org.jetbrains.kotlin.fir.declarations package org.jetbrains.kotlin.fir.declarations
import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic
import org.jetbrains.kotlin.fir.diagnostics.FirDiagnosticHolder import org.jetbrains.kotlin.fir.diagnostics.FirDiagnosticHolder
@@ -25,7 +25,7 @@ import org.jetbrains.kotlin.fir.visitors.*
abstract class FirErrorProperty : FirVariable<FirErrorProperty>(), FirDiagnosticHolder, FirTypeParametersOwner { abstract class FirErrorProperty : FirVariable<FirErrorProperty>(), FirDiagnosticHolder, FirTypeParametersOwner {
abstract override val source: FirSourceElement? abstract override val source: FirSourceElement?
abstract override val declarationSiteSession: FirSession abstract override val moduleData: FirModuleData
abstract override val resolvePhase: FirResolvePhase abstract override val resolvePhase: FirResolvePhase
abstract override val origin: FirDeclarationOrigin abstract override val origin: FirDeclarationOrigin
abstract override val attributes: FirDeclarationAttributes abstract override val attributes: FirDeclarationAttributes
@@ -6,7 +6,7 @@
package org.jetbrains.kotlin.fir.declarations package org.jetbrains.kotlin.fir.declarations
import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.FirExpression
@@ -25,7 +25,7 @@ import org.jetbrains.kotlin.fir.visitors.*
abstract class FirField : FirVariable<FirField>(), FirTypeParametersOwner, FirCallableMemberDeclaration<FirField> { abstract class FirField : FirVariable<FirField>(), FirTypeParametersOwner, FirCallableMemberDeclaration<FirField> {
abstract override val source: FirSourceElement? abstract override val source: FirSourceElement?
abstract override val declarationSiteSession: FirSession abstract override val moduleData: FirModuleData
abstract override val resolvePhase: FirResolvePhase abstract override val resolvePhase: FirResolvePhase
abstract override val origin: FirDeclarationOrigin abstract override val origin: FirDeclarationOrigin
abstract override val attributes: FirDeclarationAttributes abstract override val attributes: FirDeclarationAttributes
@@ -6,8 +6,8 @@
package org.jetbrains.kotlin.fir.declarations package org.jetbrains.kotlin.fir.declarations
import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.FirPureAbstractElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.FqName
@@ -20,7 +20,7 @@ import org.jetbrains.kotlin.fir.visitors.*
abstract class FirFile : FirPureAbstractElement(), FirAnnotatedDeclaration { abstract class FirFile : FirPureAbstractElement(), FirAnnotatedDeclaration {
abstract override val source: FirSourceElement? abstract override val source: FirSourceElement?
abstract override val declarationSiteSession: FirSession abstract override val moduleData: FirModuleData
abstract override val resolvePhase: FirResolvePhase abstract override val resolvePhase: FirResolvePhase
abstract override val origin: FirDeclarationOrigin abstract override val origin: FirDeclarationOrigin
abstract override val attributes: FirDeclarationAttributes abstract override val attributes: FirDeclarationAttributes
@@ -6,7 +6,7 @@
package org.jetbrains.kotlin.fir.declarations package org.jetbrains.kotlin.fir.declarations
import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.FirTargetElement import org.jetbrains.kotlin.fir.FirTargetElement
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
@@ -24,7 +24,7 @@ import org.jetbrains.kotlin.fir.visitors.*
sealed interface FirFunction<F : FirFunction<F>> : FirCallableDeclaration<F>, FirTargetElement, FirTypeParameterRefsOwner, FirControlFlowGraphOwner, FirStatement { sealed interface FirFunction<F : FirFunction<F>> : FirCallableDeclaration<F>, FirTargetElement, FirTypeParameterRefsOwner, FirControlFlowGraphOwner, FirStatement {
override val source: FirSourceElement? override val source: FirSourceElement?
override val declarationSiteSession: FirSession override val moduleData: FirModuleData
override val resolvePhase: FirResolvePhase override val resolvePhase: FirResolvePhase
override val origin: FirDeclarationOrigin override val origin: FirDeclarationOrigin
override val attributes: FirDeclarationAttributes override val attributes: FirDeclarationAttributes
@@ -6,7 +6,7 @@
package org.jetbrains.kotlin.fir.declarations package org.jetbrains.kotlin.fir.declarations
import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.visitors.* import org.jetbrains.kotlin.fir.visitors.*
@@ -18,7 +18,7 @@ import org.jetbrains.kotlin.fir.visitors.*
sealed interface FirMemberDeclaration : FirAnnotatedDeclaration, FirTypeParameterRefsOwner { sealed interface FirMemberDeclaration : FirAnnotatedDeclaration, FirTypeParameterRefsOwner {
override val source: FirSourceElement? override val source: FirSourceElement?
override val declarationSiteSession: FirSession override val moduleData: FirModuleData
override val resolvePhase: FirResolvePhase override val resolvePhase: FirResolvePhase
override val origin: FirDeclarationOrigin override val origin: FirDeclarationOrigin
override val attributes: FirDeclarationAttributes override val attributes: FirDeclarationAttributes
@@ -6,7 +6,7 @@
package org.jetbrains.kotlin.fir.declarations package org.jetbrains.kotlin.fir.declarations
import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.FirExpression
@@ -27,7 +27,7 @@ import org.jetbrains.kotlin.fir.visitors.*
abstract class FirProperty : FirVariable<FirProperty>(), FirTypeParametersOwner, FirControlFlowGraphOwner, FirCallableMemberDeclaration<FirProperty> { abstract class FirProperty : FirVariable<FirProperty>(), FirTypeParametersOwner, FirControlFlowGraphOwner, FirCallableMemberDeclaration<FirProperty> {
abstract override val source: FirSourceElement? abstract override val source: FirSourceElement?
abstract override val declarationSiteSession: FirSession abstract override val moduleData: FirModuleData
abstract override val resolvePhase: FirResolvePhase abstract override val resolvePhase: FirResolvePhase
abstract override val origin: FirDeclarationOrigin abstract override val origin: FirDeclarationOrigin
abstract override val attributes: FirDeclarationAttributes abstract override val attributes: FirDeclarationAttributes
@@ -6,8 +6,8 @@
package org.jetbrains.kotlin.fir.declarations package org.jetbrains.kotlin.fir.declarations
import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.FirPureAbstractElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.contracts.FirContractDescription import org.jetbrains.kotlin.fir.contracts.FirContractDescription
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
@@ -26,7 +26,7 @@ import org.jetbrains.kotlin.fir.visitors.*
abstract class FirPropertyAccessor : FirPureAbstractElement(), FirFunction<FirPropertyAccessor>, FirCallableMemberDeclaration<FirPropertyAccessor>, FirContractDescriptionOwner, FirTypeParametersOwner { abstract class FirPropertyAccessor : FirPureAbstractElement(), FirFunction<FirPropertyAccessor>, FirCallableMemberDeclaration<FirPropertyAccessor>, FirContractDescriptionOwner, FirTypeParametersOwner {
abstract override val source: FirSourceElement? abstract override val source: FirSourceElement?
abstract override val declarationSiteSession: FirSession abstract override val moduleData: FirModuleData
abstract override val resolvePhase: FirResolvePhase abstract override val resolvePhase: FirResolvePhase
abstract override val origin: FirDeclarationOrigin abstract override val origin: FirDeclarationOrigin
abstract override val attributes: FirDeclarationAttributes abstract override val attributes: FirDeclarationAttributes
@@ -7,8 +7,8 @@ package org.jetbrains.kotlin.fir.declarations
import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.ClassKind
import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.FirPureAbstractElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference
@@ -25,7 +25,7 @@ import org.jetbrains.kotlin.fir.visitors.*
abstract class FirRegularClass : FirPureAbstractElement(), FirMemberDeclaration, FirTypeParameterRefsOwner, FirControlFlowGraphOwner, FirClass<FirRegularClass> { abstract class FirRegularClass : FirPureAbstractElement(), FirMemberDeclaration, FirTypeParameterRefsOwner, FirControlFlowGraphOwner, FirClass<FirRegularClass> {
abstract override val source: FirSourceElement? abstract override val source: FirSourceElement?
abstract override val declarationSiteSession: FirSession abstract override val moduleData: FirModuleData
abstract override val resolvePhase: FirResolvePhase abstract override val resolvePhase: FirResolvePhase
abstract override val origin: FirDeclarationOrigin abstract override val origin: FirDeclarationOrigin
abstract override val attributes: FirDeclarationAttributes abstract override val attributes: FirDeclarationAttributes
@@ -6,8 +6,8 @@
package org.jetbrains.kotlin.fir.declarations package org.jetbrains.kotlin.fir.declarations
import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.FirPureAbstractElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.contracts.FirContractDescription import org.jetbrains.kotlin.fir.contracts.FirContractDescription
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
@@ -27,7 +27,7 @@ import org.jetbrains.kotlin.fir.visitors.*
abstract class FirSimpleFunction : FirPureAbstractElement(), FirFunction<FirSimpleFunction>, FirCallableMemberDeclaration<FirSimpleFunction>, FirContractDescriptionOwner, FirTypeParametersOwner { abstract class FirSimpleFunction : FirPureAbstractElement(), FirFunction<FirSimpleFunction>, FirCallableMemberDeclaration<FirSimpleFunction>, FirContractDescriptionOwner, FirTypeParametersOwner {
abstract override val source: FirSourceElement? abstract override val source: FirSourceElement?
abstract override val declarationSiteSession: FirSession abstract override val moduleData: FirModuleData
abstract override val resolvePhase: FirResolvePhase abstract override val resolvePhase: FirResolvePhase
abstract override val origin: FirDeclarationOrigin abstract override val origin: FirDeclarationOrigin
abstract override val attributes: FirDeclarationAttributes abstract override val attributes: FirDeclarationAttributes
@@ -6,8 +6,8 @@
package org.jetbrains.kotlin.fir.declarations package org.jetbrains.kotlin.fir.declarations
import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.FirPureAbstractElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeAliasSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirTypeAliasSymbol
@@ -22,7 +22,7 @@ import org.jetbrains.kotlin.fir.visitors.*
abstract class FirTypeAlias : FirPureAbstractElement(), FirClassLikeDeclaration<FirTypeAlias>, FirMemberDeclaration, FirTypeParametersOwner { abstract class FirTypeAlias : FirPureAbstractElement(), FirClassLikeDeclaration<FirTypeAlias>, FirMemberDeclaration, FirTypeParametersOwner {
abstract override val source: FirSourceElement? abstract override val source: FirSourceElement?
abstract override val declarationSiteSession: FirSession abstract override val moduleData: FirModuleData
abstract override val resolvePhase: FirResolvePhase abstract override val resolvePhase: FirResolvePhase
abstract override val origin: FirDeclarationOrigin abstract override val origin: FirDeclarationOrigin
abstract override val attributes: FirDeclarationAttributes abstract override val attributes: FirDeclarationAttributes
@@ -6,8 +6,8 @@
package org.jetbrains.kotlin.fir.declarations package org.jetbrains.kotlin.fir.declarations
import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.FirPureAbstractElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.FirSymbolOwner import org.jetbrains.kotlin.fir.FirSymbolOwner
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
@@ -24,7 +24,7 @@ import org.jetbrains.kotlin.fir.visitors.*
abstract class FirTypeParameter : FirPureAbstractElement(), FirTypeParameterRef, FirAnnotatedDeclaration, FirSymbolOwner<FirTypeParameter> { abstract class FirTypeParameter : FirPureAbstractElement(), FirTypeParameterRef, FirAnnotatedDeclaration, FirSymbolOwner<FirTypeParameter> {
abstract override val source: FirSourceElement? abstract override val source: FirSourceElement?
abstract override val declarationSiteSession: FirSession abstract override val moduleData: FirModuleData
abstract override val resolvePhase: FirResolvePhase abstract override val resolvePhase: FirResolvePhase
abstract override val origin: FirDeclarationOrigin abstract override val origin: FirDeclarationOrigin
abstract override val attributes: FirDeclarationAttributes abstract override val attributes: FirDeclarationAttributes
@@ -6,7 +6,7 @@
package org.jetbrains.kotlin.fir.declarations package org.jetbrains.kotlin.fir.declarations
import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.fir.types.FirTypeRef
@@ -19,7 +19,7 @@ import org.jetbrains.kotlin.fir.visitors.*
sealed interface FirTypedDeclaration : FirAnnotatedDeclaration { sealed interface FirTypedDeclaration : FirAnnotatedDeclaration {
override val source: FirSourceElement? override val source: FirSourceElement?
override val declarationSiteSession: FirSession override val moduleData: FirModuleData
override val resolvePhase: FirResolvePhase override val resolvePhase: FirResolvePhase
override val origin: FirDeclarationOrigin override val origin: FirDeclarationOrigin
override val attributes: FirDeclarationAttributes override val attributes: FirDeclarationAttributes
@@ -6,7 +6,7 @@
package org.jetbrains.kotlin.fir.declarations package org.jetbrains.kotlin.fir.declarations
import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.FirExpression
@@ -24,7 +24,7 @@ import org.jetbrains.kotlin.fir.visitors.*
abstract class FirValueParameter : FirVariable<FirValueParameter>(), FirControlFlowGraphOwner { abstract class FirValueParameter : FirVariable<FirValueParameter>(), FirControlFlowGraphOwner {
abstract override val source: FirSourceElement? abstract override val source: FirSourceElement?
abstract override val declarationSiteSession: FirSession abstract override val moduleData: FirModuleData
abstract override val resolvePhase: FirResolvePhase abstract override val resolvePhase: FirResolvePhase
abstract override val origin: FirDeclarationOrigin abstract override val origin: FirDeclarationOrigin
abstract override val attributes: FirDeclarationAttributes abstract override val attributes: FirDeclarationAttributes
@@ -6,8 +6,8 @@
package org.jetbrains.kotlin.fir.declarations package org.jetbrains.kotlin.fir.declarations
import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirPureAbstractElement import org.jetbrains.kotlin.fir.FirPureAbstractElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.FirExpression
@@ -25,7 +25,7 @@ import org.jetbrains.kotlin.fir.visitors.*
sealed class FirVariable<F : FirVariable<F>> : FirPureAbstractElement(), FirCallableDeclaration<F>, FirAnnotatedDeclaration, FirStatement { sealed class FirVariable<F : FirVariable<F>> : FirPureAbstractElement(), FirCallableDeclaration<F>, FirAnnotatedDeclaration, FirStatement {
abstract override val source: FirSourceElement? abstract override val source: FirSourceElement?
abstract override val declarationSiteSession: FirSession abstract override val moduleData: FirModuleData
abstract override val resolvePhase: FirResolvePhase abstract override val resolvePhase: FirResolvePhase
abstract override val origin: FirDeclarationOrigin abstract override val origin: FirDeclarationOrigin
abstract override val attributes: FirDeclarationAttributes abstract override val attributes: FirDeclarationAttributes
@@ -5,7 +5,7 @@
package org.jetbrains.kotlin.fir.declarations.builder package org.jetbrains.kotlin.fir.declarations.builder
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.FirConstructor import org.jetbrains.kotlin.fir.declarations.FirConstructor
@@ -34,7 +34,7 @@ import org.jetbrains.kotlin.serialization.deserialization.descriptors.Deserializ
@FirBuilderDsl @FirBuilderDsl
interface FirAbstractConstructorBuilder : FirFunctionBuilder { interface FirAbstractConstructorBuilder : FirFunctionBuilder {
abstract override var source: FirSourceElement? abstract override var source: FirSourceElement?
abstract override var declarationSiteSession: FirSession abstract override var moduleData: FirModuleData
abstract override var resolvePhase: FirResolvePhase abstract override var resolvePhase: FirResolvePhase
abstract override var origin: FirDeclarationOrigin abstract override var origin: FirDeclarationOrigin
abstract override var attributes: FirDeclarationAttributes abstract override var attributes: FirDeclarationAttributes
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.fir.declarations.builder
import kotlin.contracts.* import kotlin.contracts.*
import org.jetbrains.kotlin.contracts.description.EventOccurrencesRange import org.jetbrains.kotlin.contracts.description.EventOccurrencesRange
import org.jetbrains.kotlin.fir.FirLabel import org.jetbrains.kotlin.fir.FirLabel
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
@@ -38,7 +38,7 @@ import org.jetbrains.kotlin.fir.visitors.*
@FirBuilderDsl @FirBuilderDsl
class FirAnonymousFunctionBuilder : FirFunctionBuilder, FirAnnotationContainerBuilder, FirExpressionBuilder { class FirAnonymousFunctionBuilder : FirFunctionBuilder, FirAnnotationContainerBuilder, FirExpressionBuilder {
override var source: FirSourceElement? = null override var source: FirSourceElement? = null
override lateinit var declarationSiteSession: FirSession override lateinit var moduleData: FirModuleData
override lateinit var origin: FirDeclarationOrigin override lateinit var origin: FirDeclarationOrigin
override var attributes: FirDeclarationAttributes = FirDeclarationAttributes() override var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
override val annotations: MutableList<FirAnnotationCall> = mutableListOf() override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
@@ -6,7 +6,7 @@
package org.jetbrains.kotlin.fir.declarations.builder package org.jetbrains.kotlin.fir.declarations.builder
import kotlin.contracts.* import kotlin.contracts.*
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.FirAnonymousInitializer import org.jetbrains.kotlin.fir.declarations.FirAnonymousInitializer
@@ -28,7 +28,7 @@ import org.jetbrains.kotlin.fir.visitors.*
@FirBuilderDsl @FirBuilderDsl
class FirAnonymousInitializerBuilder : FirDeclarationBuilder { class FirAnonymousInitializerBuilder : FirDeclarationBuilder {
override var source: FirSourceElement? = null override var source: FirSourceElement? = null
override lateinit var declarationSiteSession: FirSession override lateinit var moduleData: FirModuleData
override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR
override lateinit var origin: FirDeclarationOrigin override lateinit var origin: FirDeclarationOrigin
override var attributes: FirDeclarationAttributes = FirDeclarationAttributes() override var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.fir.declarations.builder
import kotlin.contracts.* import kotlin.contracts.*
import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.ClassKind
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
@@ -37,7 +37,7 @@ import org.jetbrains.kotlin.fir.visitors.*
@FirBuilderDsl @FirBuilderDsl
class FirAnonymousObjectBuilder : FirDeclarationBuilder, FirClassBuilder, FirAnnotationContainerBuilder, FirExpressionBuilder { class FirAnonymousObjectBuilder : FirDeclarationBuilder, FirClassBuilder, FirAnnotationContainerBuilder, FirExpressionBuilder {
override var source: FirSourceElement? = null override var source: FirSourceElement? = null
override lateinit var declarationSiteSession: FirSession override lateinit var moduleData: FirModuleData
override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR
override lateinit var origin: FirDeclarationOrigin override lateinit var origin: FirDeclarationOrigin
override var attributes: FirDeclarationAttributes = FirDeclarationAttributes() override var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
@@ -6,7 +6,7 @@
package org.jetbrains.kotlin.fir.declarations.builder package org.jetbrains.kotlin.fir.declarations.builder
import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.ClassKind
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
@@ -30,7 +30,7 @@ import org.jetbrains.kotlin.fir.visitors.*
@FirBuilderDsl @FirBuilderDsl
interface FirClassBuilder : FirDeclarationBuilder, FirAnnotationContainerBuilder { interface FirClassBuilder : FirDeclarationBuilder, FirAnnotationContainerBuilder {
abstract override var source: FirSourceElement? abstract override var source: FirSourceElement?
abstract override var declarationSiteSession: FirSession abstract override var moduleData: FirModuleData
abstract override var resolvePhase: FirResolvePhase abstract override var resolvePhase: FirResolvePhase
abstract override var origin: FirDeclarationOrigin abstract override var origin: FirDeclarationOrigin
abstract override var attributes: FirDeclarationAttributes abstract override var attributes: FirDeclarationAttributes
@@ -6,7 +6,7 @@
package org.jetbrains.kotlin.fir.declarations.builder package org.jetbrains.kotlin.fir.declarations.builder
import kotlin.contracts.* import kotlin.contracts.*
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
@@ -37,7 +37,7 @@ import org.jetbrains.kotlin.serialization.deserialization.descriptors.Deserializ
@FirBuilderDsl @FirBuilderDsl
open class FirConstructorBuilder : FirAbstractConstructorBuilder, FirAnnotationContainerBuilder { open class FirConstructorBuilder : FirAbstractConstructorBuilder, FirAnnotationContainerBuilder {
override var source: FirSourceElement? = null override var source: FirSourceElement? = null
override lateinit var declarationSiteSession: FirSession override lateinit var moduleData: FirModuleData
override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR
override lateinit var origin: FirDeclarationOrigin override lateinit var origin: FirDeclarationOrigin
override var attributes: FirDeclarationAttributes = FirDeclarationAttributes() override var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
@@ -5,7 +5,7 @@
package org.jetbrains.kotlin.fir.declarations.builder package org.jetbrains.kotlin.fir.declarations.builder
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.FirDeclaration import org.jetbrains.kotlin.fir.declarations.FirDeclaration
@@ -22,7 +22,7 @@ import org.jetbrains.kotlin.fir.visitors.*
@FirBuilderDsl @FirBuilderDsl
interface FirDeclarationBuilder { interface FirDeclarationBuilder {
abstract var source: FirSourceElement? abstract var source: FirSourceElement?
abstract var declarationSiteSession: FirSession abstract var moduleData: FirModuleData
abstract var resolvePhase: FirResolvePhase abstract var resolvePhase: FirResolvePhase
abstract var origin: FirDeclarationOrigin abstract var origin: FirDeclarationOrigin
abstract var attributes: FirDeclarationAttributes abstract var attributes: FirDeclarationAttributes
@@ -6,7 +6,7 @@
package org.jetbrains.kotlin.fir.declarations.builder package org.jetbrains.kotlin.fir.declarations.builder
import kotlin.contracts.* import kotlin.contracts.*
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
@@ -33,7 +33,7 @@ import org.jetbrains.kotlin.name.Name
@FirBuilderDsl @FirBuilderDsl
class FirDefaultSetterValueParameterBuilder : FirAnnotationContainerBuilder { class FirDefaultSetterValueParameterBuilder : FirAnnotationContainerBuilder {
override var source: FirSourceElement? = null override var source: FirSourceElement? = null
lateinit var declarationSiteSession: FirSession lateinit var moduleData: FirModuleData
var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR
lateinit var origin: FirDeclarationOrigin lateinit var origin: FirDeclarationOrigin
var attributes: FirDeclarationAttributes = FirDeclarationAttributes() var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
@@ -6,7 +6,7 @@
package org.jetbrains.kotlin.fir.declarations.builder package org.jetbrains.kotlin.fir.declarations.builder
import kotlin.contracts.* import kotlin.contracts.*
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
@@ -36,7 +36,7 @@ import org.jetbrains.kotlin.serialization.deserialization.descriptors.Deserializ
@FirBuilderDsl @FirBuilderDsl
class FirEnumEntryBuilder : FirAnnotationContainerBuilder { class FirEnumEntryBuilder : FirAnnotationContainerBuilder {
override var source: FirSourceElement? = null override var source: FirSourceElement? = null
lateinit var declarationSiteSession: FirSession lateinit var moduleData: FirModuleData
var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR
lateinit var origin: FirDeclarationOrigin lateinit var origin: FirDeclarationOrigin
var attributes: FirDeclarationAttributes = FirDeclarationAttributes() var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
@@ -6,7 +6,7 @@
package org.jetbrains.kotlin.fir.declarations.builder package org.jetbrains.kotlin.fir.declarations.builder
import kotlin.contracts.* import kotlin.contracts.*
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
@@ -34,7 +34,7 @@ import org.jetbrains.kotlin.fir.visitors.*
@FirBuilderDsl @FirBuilderDsl
class FirErrorFunctionBuilder : FirAnnotationContainerBuilder { class FirErrorFunctionBuilder : FirAnnotationContainerBuilder {
override var source: FirSourceElement? = null override var source: FirSourceElement? = null
lateinit var declarationSiteSession: FirSession lateinit var moduleData: FirModuleData
var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR
lateinit var origin: FirDeclarationOrigin lateinit var origin: FirDeclarationOrigin
var attributes: FirDeclarationAttributes = FirDeclarationAttributes() var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
@@ -6,7 +6,7 @@
package org.jetbrains.kotlin.fir.declarations.builder package org.jetbrains.kotlin.fir.declarations.builder
import kotlin.contracts.* import kotlin.contracts.*
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
@@ -35,7 +35,7 @@ import org.jetbrains.kotlin.name.Name
@FirBuilderDsl @FirBuilderDsl
class FirErrorPropertyBuilder : FirAnnotationContainerBuilder { class FirErrorPropertyBuilder : FirAnnotationContainerBuilder {
override var source: FirSourceElement? = null override var source: FirSourceElement? = null
lateinit var declarationSiteSession: FirSession lateinit var moduleData: FirModuleData
var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR
lateinit var origin: FirDeclarationOrigin lateinit var origin: FirDeclarationOrigin
var attributes: FirDeclarationAttributes = FirDeclarationAttributes() var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.fir.declarations.builder
import kotlin.contracts.* import kotlin.contracts.*
import org.jetbrains.kotlin.fir.FirImplementationDetail import org.jetbrains.kotlin.fir.FirImplementationDetail
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
@@ -38,7 +38,7 @@ import org.jetbrains.kotlin.serialization.deserialization.descriptors.Deserializ
@FirBuilderDsl @FirBuilderDsl
open class FirFieldBuilder : FirDeclarationBuilder, FirAnnotationContainerBuilder { open class FirFieldBuilder : FirDeclarationBuilder, FirAnnotationContainerBuilder {
override var source: FirSourceElement? = null override var source: FirSourceElement? = null
override lateinit var declarationSiteSession: FirSession override lateinit var moduleData: FirModuleData
override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR
override lateinit var origin: FirDeclarationOrigin override lateinit var origin: FirDeclarationOrigin
override var attributes: FirDeclarationAttributes = FirDeclarationAttributes() override var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
@@ -6,7 +6,7 @@
package org.jetbrains.kotlin.fir.declarations.builder package org.jetbrains.kotlin.fir.declarations.builder
import kotlin.contracts.* import kotlin.contracts.*
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
@@ -29,7 +29,7 @@ import org.jetbrains.kotlin.name.FqName
@FirBuilderDsl @FirBuilderDsl
class FirFileBuilder : FirAnnotationContainerBuilder { class FirFileBuilder : FirAnnotationContainerBuilder {
override var source: FirSourceElement? = null override var source: FirSourceElement? = null
lateinit var declarationSiteSession: FirSession lateinit var moduleData: FirModuleData
var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR
lateinit var origin: FirDeclarationOrigin lateinit var origin: FirDeclarationOrigin
var attributes: FirDeclarationAttributes = FirDeclarationAttributes() var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
@@ -5,7 +5,7 @@
package org.jetbrains.kotlin.fir.declarations.builder package org.jetbrains.kotlin.fir.declarations.builder
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
@@ -28,7 +28,7 @@ import org.jetbrains.kotlin.fir.visitors.*
@FirBuilderDsl @FirBuilderDsl
interface FirFunctionBuilder : FirDeclarationBuilder, FirAnnotationContainerBuilder { interface FirFunctionBuilder : FirDeclarationBuilder, FirAnnotationContainerBuilder {
abstract override var source: FirSourceElement? abstract override var source: FirSourceElement?
abstract override var declarationSiteSession: FirSession abstract override var moduleData: FirModuleData
abstract override var resolvePhase: FirResolvePhase abstract override var resolvePhase: FirResolvePhase
abstract override var origin: FirDeclarationOrigin abstract override var origin: FirDeclarationOrigin
abstract override var attributes: FirDeclarationAttributes abstract override var attributes: FirDeclarationAttributes
@@ -6,7 +6,7 @@
package org.jetbrains.kotlin.fir.declarations.builder package org.jetbrains.kotlin.fir.declarations.builder
import kotlin.contracts.* import kotlin.contracts.*
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
@@ -37,7 +37,7 @@ import org.jetbrains.kotlin.serialization.deserialization.descriptors.Deserializ
@FirBuilderDsl @FirBuilderDsl
class FirPrimaryConstructorBuilder : FirAbstractConstructorBuilder, FirAnnotationContainerBuilder { class FirPrimaryConstructorBuilder : FirAbstractConstructorBuilder, FirAnnotationContainerBuilder {
override var source: FirSourceElement? = null override var source: FirSourceElement? = null
override lateinit var declarationSiteSession: FirSession override lateinit var moduleData: FirModuleData
override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR
override lateinit var origin: FirDeclarationOrigin override lateinit var origin: FirDeclarationOrigin
override var attributes: FirDeclarationAttributes = FirDeclarationAttributes() override var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.fir.declarations.builder
import kotlin.contracts.* import kotlin.contracts.*
import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.fir.FirImplementationDetail import org.jetbrains.kotlin.fir.FirImplementationDetail
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
@@ -40,7 +40,7 @@ import org.jetbrains.kotlin.serialization.deserialization.descriptors.Deserializ
@FirBuilderDsl @FirBuilderDsl
class FirPropertyAccessorBuilder : FirFunctionBuilder, FirAnnotationContainerBuilder { class FirPropertyAccessorBuilder : FirFunctionBuilder, FirAnnotationContainerBuilder {
override var source: FirSourceElement? = null override var source: FirSourceElement? = null
override lateinit var declarationSiteSession: FirSession override lateinit var moduleData: FirModuleData
override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR
override lateinit var origin: FirDeclarationOrigin override lateinit var origin: FirDeclarationOrigin
override var attributes: FirDeclarationAttributes = FirDeclarationAttributes() override var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
@@ -6,7 +6,7 @@
package org.jetbrains.kotlin.fir.declarations.builder package org.jetbrains.kotlin.fir.declarations.builder
import kotlin.contracts.* import kotlin.contracts.*
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
@@ -40,7 +40,7 @@ import org.jetbrains.kotlin.serialization.deserialization.descriptors.Deserializ
@FirBuilderDsl @FirBuilderDsl
class FirPropertyBuilder : FirDeclarationBuilder, FirTypeParametersOwnerBuilder, FirAnnotationContainerBuilder { class FirPropertyBuilder : FirDeclarationBuilder, FirTypeParametersOwnerBuilder, FirAnnotationContainerBuilder {
override var source: FirSourceElement? = null override var source: FirSourceElement? = null
override lateinit var declarationSiteSession: FirSession override lateinit var moduleData: FirModuleData
override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR
override lateinit var origin: FirDeclarationOrigin override lateinit var origin: FirDeclarationOrigin
override var attributes: FirDeclarationAttributes = FirDeclarationAttributes() override var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.fir.declarations.builder
import kotlin.contracts.* import kotlin.contracts.*
import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.ClassKind
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
@@ -37,7 +37,7 @@ import org.jetbrains.kotlin.name.Name
@FirBuilderDsl @FirBuilderDsl
open class FirRegularClassBuilder : FirClassBuilder, FirTypeParameterRefsOwnerBuilder, FirAnnotationContainerBuilder { open class FirRegularClassBuilder : FirClassBuilder, FirTypeParameterRefsOwnerBuilder, FirAnnotationContainerBuilder {
override var source: FirSourceElement? = null override var source: FirSourceElement? = null
override lateinit var declarationSiteSession: FirSession override lateinit var moduleData: FirModuleData
override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR
override lateinit var origin: FirDeclarationOrigin override lateinit var origin: FirDeclarationOrigin
override var attributes: FirDeclarationAttributes = FirDeclarationAttributes() override var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
@@ -6,7 +6,7 @@
package org.jetbrains.kotlin.fir.declarations.builder package org.jetbrains.kotlin.fir.declarations.builder
import kotlin.contracts.* import kotlin.contracts.*
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
@@ -40,7 +40,7 @@ import org.jetbrains.kotlin.serialization.deserialization.descriptors.Deserializ
@FirBuilderDsl @FirBuilderDsl
open class FirSimpleFunctionBuilder : FirFunctionBuilder, FirTypeParametersOwnerBuilder, FirAnnotationContainerBuilder { open class FirSimpleFunctionBuilder : FirFunctionBuilder, FirTypeParametersOwnerBuilder, FirAnnotationContainerBuilder {
override var source: FirSourceElement? = null override var source: FirSourceElement? = null
override lateinit var declarationSiteSession: FirSession override lateinit var moduleData: FirModuleData
override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR
override lateinit var origin: FirDeclarationOrigin override lateinit var origin: FirDeclarationOrigin
override var attributes: FirDeclarationAttributes = FirDeclarationAttributes() override var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
@@ -6,7 +6,7 @@
package org.jetbrains.kotlin.fir.declarations.builder package org.jetbrains.kotlin.fir.declarations.builder
import kotlin.contracts.* import kotlin.contracts.*
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
@@ -33,7 +33,7 @@ import org.jetbrains.kotlin.name.Name
@FirBuilderDsl @FirBuilderDsl
class FirTypeAliasBuilder : FirDeclarationBuilder, FirTypeParametersOwnerBuilder, FirAnnotationContainerBuilder { class FirTypeAliasBuilder : FirDeclarationBuilder, FirTypeParametersOwnerBuilder, FirAnnotationContainerBuilder {
override var source: FirSourceElement? = null override var source: FirSourceElement? = null
override lateinit var declarationSiteSession: FirSession override lateinit var moduleData: FirModuleData
override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR
override lateinit var origin: FirDeclarationOrigin override lateinit var origin: FirDeclarationOrigin
override var attributes: FirDeclarationAttributes = FirDeclarationAttributes() override var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
@@ -6,7 +6,7 @@
package org.jetbrains.kotlin.fir.declarations.builder package org.jetbrains.kotlin.fir.declarations.builder
import kotlin.contracts.* import kotlin.contracts.*
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
@@ -30,7 +30,7 @@ import org.jetbrains.kotlin.types.Variance
@FirBuilderDsl @FirBuilderDsl
class FirTypeParameterBuilder : FirAnnotationContainerBuilder { class FirTypeParameterBuilder : FirAnnotationContainerBuilder {
override var source: FirSourceElement? = null override var source: FirSourceElement? = null
lateinit var declarationSiteSession: FirSession lateinit var moduleData: FirModuleData
var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR
lateinit var origin: FirDeclarationOrigin lateinit var origin: FirDeclarationOrigin
var attributes: FirDeclarationAttributes = FirDeclarationAttributes() var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
@@ -6,7 +6,7 @@
package org.jetbrains.kotlin.fir.declarations.builder package org.jetbrains.kotlin.fir.declarations.builder
import kotlin.contracts.* import kotlin.contracts.*
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
@@ -33,7 +33,7 @@ import org.jetbrains.kotlin.name.Name
@FirBuilderDsl @FirBuilderDsl
open class FirValueParameterBuilder : FirAnnotationContainerBuilder { open class FirValueParameterBuilder : FirAnnotationContainerBuilder {
override var source: FirSourceElement? = null override var source: FirSourceElement? = null
open lateinit var declarationSiteSession: FirSession open lateinit var moduleData: FirModuleData
open var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR open var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR
open lateinit var origin: FirDeclarationOrigin open lateinit var origin: FirDeclarationOrigin
open var attributes: FirDeclarationAttributes = FirDeclarationAttributes() open var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.fir.declarations.impl
import org.jetbrains.kotlin.contracts.description.EventOccurrencesRange import org.jetbrains.kotlin.contracts.description.EventOccurrencesRange
import org.jetbrains.kotlin.fir.FirLabel import org.jetbrains.kotlin.fir.FirLabel
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirModuleData
import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.declarations.FirAnonymousFunction import org.jetbrains.kotlin.fir.declarations.FirAnonymousFunction
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
@@ -30,7 +30,7 @@ import org.jetbrains.kotlin.fir.visitors.*
internal class FirAnonymousFunctionImpl( internal class FirAnonymousFunctionImpl(
override val source: FirSourceElement?, override val source: FirSourceElement?,
override val declarationSiteSession: FirSession, override val moduleData: FirModuleData,
override val origin: FirDeclarationOrigin, override val origin: FirDeclarationOrigin,
override val attributes: FirDeclarationAttributes, override val attributes: FirDeclarationAttributes,
override val annotations: MutableList<FirAnnotationCall>, override val annotations: MutableList<FirAnnotationCall>,

Some files were not shown because too many files have changed in this diff Show More