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

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