[FIR] Initialize origin in all places with creating of declarations
This commit is contained in:
+2
@@ -18,6 +18,7 @@ import org.jetbrains.kotlin.codegen.writeSyntheticClassMetadata
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.backend.FirMetadataSource
|
||||
import org.jetbrains.kotlin.fir.declarations.FirAnonymousFunction
|
||||
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
|
||||
import org.jetbrains.kotlin.fir.declarations.FirFunction
|
||||
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
|
||||
import org.jetbrains.kotlin.fir.declarations.builder.buildAnonymousFunction
|
||||
@@ -55,6 +56,7 @@ class FirJvmClassCodegen(
|
||||
val function = this
|
||||
return buildAnonymousFunction {
|
||||
session = function.session
|
||||
origin = FirDeclarationOrigin.Source
|
||||
symbol = FirAnonymousFunctionSymbol()
|
||||
returnTypeRef = function.returnTypeRef
|
||||
receiverTypeRef = function.receiverTypeRef
|
||||
|
||||
+2
@@ -231,6 +231,7 @@ class DataClassMembersGenerator(val components: Fir2IrComponents) {
|
||||
}
|
||||
metadata = FirMetadataSource.Function(
|
||||
buildSimpleFunction {
|
||||
origin = FirDeclarationOrigin.Synthetic
|
||||
this.name = name
|
||||
this.symbol = FirNamedFunctionSymbol(CallableId(classId.packageFqName, classId.relativeClassName, name))
|
||||
this.status = FirDeclarationStatusImpl(Visibilities.PUBLIC, Modality.FINAL)
|
||||
@@ -245,6 +246,7 @@ class DataClassMembersGenerator(val components: Fir2IrComponents) {
|
||||
this.valueParameters.add(
|
||||
buildValueParameter {
|
||||
this.name = irValueParameter.name
|
||||
origin = FirDeclarationOrigin.Synthetic
|
||||
this.session = components.session
|
||||
this.returnTypeRef = FirImplicitNullableAnyTypeRef(null)
|
||||
this.symbol = FirVariableSymbol(irValueParameter.name)
|
||||
|
||||
@@ -12,6 +12,7 @@ import com.intellij.psi.search.GlobalSearchScope
|
||||
import org.jetbrains.kotlin.descriptors.ClassKind
|
||||
import org.jetbrains.kotlin.descriptors.Visibility
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
|
||||
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
||||
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
|
||||
import org.jetbrains.kotlin.fir.declarations.addDefaultBoundIfNecessary
|
||||
@@ -95,6 +96,7 @@ class JavaSymbolProvider(
|
||||
): FirTypeParameter {
|
||||
return FirTypeParameterBuilder().apply {
|
||||
this.session = this@JavaSymbolProvider.session
|
||||
origin = FirDeclarationOrigin.Java
|
||||
this.name = this@toFirTypeParameter.name
|
||||
symbol = firSymbol
|
||||
variance = INVARIANT
|
||||
|
||||
+5
-4
@@ -195,6 +195,7 @@ class JavaClassEnhancementScope(
|
||||
buildValueParameter {
|
||||
source = valueParameter.source
|
||||
session = this@JavaClassEnhancementScope.session
|
||||
origin = FirDeclarationOrigin.Enhancement
|
||||
returnTypeRef = newTypeRef
|
||||
this.name = valueParameter.name
|
||||
symbol = FirVariableSymbol(this.name)
|
||||
@@ -211,8 +212,6 @@ class JavaClassEnhancementScope(
|
||||
val symbol = FirConstructorSymbol(methodId)
|
||||
if (firMethod.isPrimary) {
|
||||
FirPrimaryConstructorBuilder().apply {
|
||||
source = firMethod.source
|
||||
session = this@JavaClassEnhancementScope.session
|
||||
returnTypeRef = newReturnTypeRef
|
||||
status = FirDeclarationStatusImpl(firMethod.visibility, Modality.FINAL).apply {
|
||||
isExpect = false
|
||||
@@ -223,14 +222,15 @@ class JavaClassEnhancementScope(
|
||||
}
|
||||
} else {
|
||||
FirConstructorBuilder().apply {
|
||||
source = firMethod.source
|
||||
session = this@JavaClassEnhancementScope.session
|
||||
returnTypeRef = newReturnTypeRef
|
||||
status = firMethod.status
|
||||
this.symbol = symbol
|
||||
}
|
||||
}.apply {
|
||||
source = firMethod.source
|
||||
session = this@JavaClassEnhancementScope.session
|
||||
resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES
|
||||
origin = FirDeclarationOrigin.Enhancement
|
||||
this.valueParameters += newValueParameters
|
||||
this.typeParameters += firMethod.typeParameters
|
||||
}
|
||||
@@ -239,6 +239,7 @@ class JavaClassEnhancementScope(
|
||||
FirSimpleFunctionBuilder().apply {
|
||||
source = firMethod.source
|
||||
session = this@JavaClassEnhancementScope.session
|
||||
origin = FirDeclarationOrigin.Enhancement
|
||||
returnTypeRef = newReturnTypeRef
|
||||
receiverTypeRef = newReceiverTypeRef
|
||||
this.name = name!!
|
||||
|
||||
@@ -127,6 +127,7 @@ abstract class BaseFirBuilder<T>(val baseSession: FirSession, val context: Conte
|
||||
buildErrorFunction {
|
||||
source = baseSource
|
||||
session = this@BaseFirBuilder.baseSession
|
||||
origin = FirDeclarationOrigin.Source
|
||||
diagnostic = ConeSimpleDiagnostic(message, kind)
|
||||
symbol = FirErrorFunctionSymbol()
|
||||
}
|
||||
@@ -695,6 +696,7 @@ abstract class BaseFirBuilder<T>(val baseSession: FirSession, val context: Conte
|
||||
val componentFunction = buildSimpleFunction {
|
||||
source = parameterSource
|
||||
session = this@DataClassMembersGenerator.session
|
||||
origin = FirDeclarationOrigin.Source
|
||||
returnTypeRef = firProperty.returnTypeRef
|
||||
receiverTypeRef = null
|
||||
this.name = name
|
||||
@@ -714,6 +716,7 @@ abstract class BaseFirBuilder<T>(val baseSession: FirSession, val context: Conte
|
||||
buildSimpleFunction {
|
||||
source = this@DataClassMembersGenerator.source.toFirSourceElement()
|
||||
session = this@DataClassMembersGenerator.session
|
||||
origin = FirDeclarationOrigin.Source
|
||||
returnTypeRef = classTypeRef
|
||||
name = copyName
|
||||
status = FirDeclarationStatusImpl(Visibilities.PUBLIC, Modality.FINAL)
|
||||
@@ -724,6 +727,7 @@ abstract class BaseFirBuilder<T>(val baseSession: FirSession, val context: Conte
|
||||
valueParameters += buildValueParameter {
|
||||
source = parameterSource
|
||||
session = this@DataClassMembersGenerator.session
|
||||
origin = FirDeclarationOrigin.Source
|
||||
returnTypeRef = firProperty.returnTypeRef
|
||||
name = propertyName
|
||||
symbol = FirVariableSymbol(propertyName)
|
||||
|
||||
+5
@@ -11,6 +11,7 @@ import org.jetbrains.kotlin.descriptors.Visibilities
|
||||
import org.jetbrains.kotlin.fir.*
|
||||
import org.jetbrains.kotlin.fir.contracts.FirContractDescription
|
||||
import org.jetbrains.kotlin.fir.contracts.builder.buildRawContractDescription
|
||||
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
|
||||
import org.jetbrains.kotlin.fir.declarations.FirProperty
|
||||
import org.jetbrains.kotlin.fir.declarations.FirVariable
|
||||
import org.jetbrains.kotlin.fir.declarations.builder.*
|
||||
@@ -280,6 +281,7 @@ fun generateTemporaryVariable(
|
||||
buildProperty {
|
||||
this.source = source
|
||||
this.session = session
|
||||
origin = FirDeclarationOrigin.Source
|
||||
returnTypeRef = typeRef ?: buildImplicitTypeRef {
|
||||
this.source = source
|
||||
}
|
||||
@@ -386,6 +388,7 @@ fun FirPropertyBuilder.generateAccessorsByDelegate(
|
||||
val returnTarget = FirFunctionTarget(null, isLambda = false)
|
||||
getter = buildPropertyAccessor {
|
||||
this.session = session
|
||||
origin = FirDeclarationOrigin.Source
|
||||
returnTypeRef = buildImplicitTypeRef()
|
||||
isGetter = true
|
||||
status = FirDeclarationStatusImpl(Visibilities.UNKNOWN, Modality.FINAL)
|
||||
@@ -412,11 +415,13 @@ fun FirPropertyBuilder.generateAccessorsByDelegate(
|
||||
if (isVar && (setter == null || setter is FirDefaultPropertyAccessor)) {
|
||||
setter = buildPropertyAccessor {
|
||||
this.session = session
|
||||
origin = FirDeclarationOrigin.Source
|
||||
returnTypeRef = session.builtinTypes.unitType
|
||||
isGetter = false
|
||||
status = FirDeclarationStatusImpl(Visibilities.UNKNOWN, Modality.FINAL)
|
||||
val parameter = buildValueParameter {
|
||||
this.session = session
|
||||
origin = FirDeclarationOrigin.Source
|
||||
returnTypeRef = buildImplicitTypeRef()
|
||||
name = DELEGATED_SETTER_PARAM
|
||||
symbol = FirVariableSymbol(this@generateAccessorsByDelegate.name)
|
||||
|
||||
+2
@@ -14,6 +14,7 @@ import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.builder.generateResolvedAccessExpression
|
||||
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
|
||||
import org.jetbrains.kotlin.fir.declarations.FirVariable
|
||||
import org.jetbrains.kotlin.fir.declarations.builder.buildProperty
|
||||
import org.jetbrains.kotlin.fir.declarations.impl.FirDeclarationStatusImpl
|
||||
@@ -112,6 +113,7 @@ fun generateDestructuringBlock(
|
||||
for ((index, entry) in multiDeclaration.entries.withIndex()) {
|
||||
statements += buildProperty {
|
||||
this.session = session
|
||||
origin = FirDeclarationOrigin.Source
|
||||
returnTypeRef = entry.returnTypeRef
|
||||
name = entry.name
|
||||
initializer = buildComponentCall {
|
||||
|
||||
+20
-3
@@ -88,6 +88,7 @@ class DeclarationsConverter(
|
||||
|
||||
return buildFile {
|
||||
source = file.toFirSourceElement()
|
||||
origin = FirDeclarationOrigin.Source
|
||||
session = baseSession
|
||||
name = fileName
|
||||
packageFqName = context.packageFqName
|
||||
@@ -391,6 +392,7 @@ class DeclarationsConverter(
|
||||
classBuilder.apply {
|
||||
source = classNode.toFirSourceElement()
|
||||
session = baseSession
|
||||
origin = FirDeclarationOrigin.Source
|
||||
name = className
|
||||
this.status = status
|
||||
this.classKind = classKind
|
||||
@@ -526,6 +528,7 @@ class DeclarationsConverter(
|
||||
return withChildClassName(ANONYMOUS_OBJECT_NAME) {
|
||||
buildAnonymousObject {
|
||||
source = objectLiteral.toFirSourceElement()
|
||||
origin = FirDeclarationOrigin.Source
|
||||
session = baseSession
|
||||
classKind = ClassKind.OBJECT
|
||||
scopeProvider = baseScopeProvider
|
||||
@@ -578,6 +581,7 @@ class DeclarationsConverter(
|
||||
return buildEnumEntry {
|
||||
source = enumEntry.toFirSourceElement()
|
||||
session = baseSession
|
||||
origin = FirDeclarationOrigin.Source
|
||||
returnTypeRef = classWrapper.delegatedSelfTypeRef
|
||||
name = enumEntryName
|
||||
symbol = FirVariableSymbol(CallableId(context.currentClassId, enumEntryName))
|
||||
@@ -593,6 +597,7 @@ class DeclarationsConverter(
|
||||
buildAnonymousObject {
|
||||
source = this@buildEnumEntry.source
|
||||
session = baseSession
|
||||
origin = FirDeclarationOrigin.Source
|
||||
classKind = ClassKind.ENUM_ENTRY
|
||||
scopeProvider = baseScopeProvider
|
||||
symbol = FirAnonymousObjectSymbol()
|
||||
@@ -693,6 +698,7 @@ class DeclarationsConverter(
|
||||
buildPrimaryConstructor {
|
||||
source = primaryConstructor?.toFirSourceElement()
|
||||
session = baseSession
|
||||
origin = FirDeclarationOrigin.Source
|
||||
returnTypeRef = classWrapper.delegatedSelfTypeRef
|
||||
this.status = status
|
||||
symbol = FirConstructorSymbol(callableIdForClassConstructor())
|
||||
@@ -719,6 +725,7 @@ class DeclarationsConverter(
|
||||
return buildAnonymousInitializer {
|
||||
source = anonymousInitializer.toFirSourceElement()
|
||||
session = baseSession
|
||||
origin = FirDeclarationOrigin.Source
|
||||
body = if (stubMode) buildEmptyExpressionBlock() else firBlock
|
||||
}
|
||||
}
|
||||
@@ -756,6 +763,7 @@ class DeclarationsConverter(
|
||||
return buildConstructor {
|
||||
source = secondaryConstructor.toFirSourceElement()
|
||||
session = baseSession
|
||||
origin = FirDeclarationOrigin.Source
|
||||
returnTypeRef = delegatedSelfTypeRef
|
||||
this.status = status
|
||||
symbol = FirConstructorSymbol(callableIdForClassConstructor())
|
||||
@@ -828,6 +836,7 @@ class DeclarationsConverter(
|
||||
return@withChildClassName buildTypeAlias {
|
||||
source = typeAlias.toFirSourceElement()
|
||||
session = baseSession
|
||||
origin = FirDeclarationOrigin.Source
|
||||
name = typeAliasName
|
||||
status = FirDeclarationStatusImpl(modifiers.getVisibility(), Modality.FINAL).apply {
|
||||
isExpect = modifiers.hasExpect()
|
||||
@@ -885,6 +894,7 @@ class DeclarationsConverter(
|
||||
return buildProperty {
|
||||
source = propertySource
|
||||
session = baseSession
|
||||
origin = FirDeclarationOrigin.Source
|
||||
returnTypeRef = returnType
|
||||
name = propertyName
|
||||
this.isVar = isVar
|
||||
@@ -940,11 +950,11 @@ class DeclarationsConverter(
|
||||
|
||||
val convertedAccessors = accessors.map { convertGetterOrSetter(it, returnType) }
|
||||
this.getter = convertedAccessors.find { it.isGetter }
|
||||
?: FirDefaultPropertyGetter(null, session, returnType, modifiers.getVisibility())
|
||||
?: FirDefaultPropertyGetter(null, session, FirDeclarationOrigin.Source, returnType, modifiers.getVisibility())
|
||||
this.setter =
|
||||
if (isVar) {
|
||||
convertedAccessors.find { it.isSetter }
|
||||
?: FirDefaultPropertySetter(null, session, returnType, modifiers.getVisibility())
|
||||
?: FirDefaultPropertySetter(null, session, FirDeclarationOrigin.Source, returnType, modifiers.getVisibility())
|
||||
} else null
|
||||
|
||||
val receiver = delegateExpression?.let {
|
||||
@@ -1003,6 +1013,7 @@ class DeclarationsConverter(
|
||||
return buildProperty {
|
||||
source = entry.toFirSourceElement()
|
||||
session = baseSession
|
||||
origin = FirDeclarationOrigin.Source
|
||||
returnTypeRef = firType ?: implicitType
|
||||
this.name = name
|
||||
isVar = false
|
||||
@@ -1022,6 +1033,7 @@ class DeclarationsConverter(
|
||||
var returnType: FirTypeRef? = null
|
||||
var firValueParameters: FirValueParameter = buildDefaultSetterValueParameter {
|
||||
session = baseSession
|
||||
origin = FirDeclarationOrigin.Source
|
||||
returnTypeRef = propertyTypeRef
|
||||
symbol = FirVariableSymbol(NAME_FOR_DEFAULT_VALUE_PARAMETER)
|
||||
}
|
||||
@@ -1042,7 +1054,7 @@ class DeclarationsConverter(
|
||||
val sourceElement = getterOrSetter.toFirSourceElement()
|
||||
if (block == null && expression == null) {
|
||||
return FirDefaultPropertyAccessor
|
||||
.createGetterOrSetter(sourceElement, baseSession, propertyTypeRef, modifiers.getVisibility(), isGetter)
|
||||
.createGetterOrSetter(sourceElement, baseSession, FirDeclarationOrigin.Source, propertyTypeRef, modifiers.getVisibility(), isGetter)
|
||||
.also {
|
||||
it.annotations += modifiers.annotations
|
||||
}
|
||||
@@ -1051,6 +1063,7 @@ class DeclarationsConverter(
|
||||
return buildPropertyAccessor {
|
||||
source = sourceElement
|
||||
session = baseSession
|
||||
origin = FirDeclarationOrigin.Source
|
||||
returnTypeRef = returnType ?: if (isGetter) propertyTypeRef else implicitUnitType
|
||||
symbol = FirPropertyAccessorSymbol()
|
||||
this.isGetter = isGetter
|
||||
@@ -1092,6 +1105,7 @@ class DeclarationsConverter(
|
||||
return buildValueParameter {
|
||||
source = setterParameter.toFirSourceElement()
|
||||
session = baseSession
|
||||
origin = FirDeclarationOrigin.Source
|
||||
returnTypeRef = if (firValueParameter.returnTypeRef == implicitType) propertyTypeRef else firValueParameter.returnTypeRef
|
||||
name = firValueParameter.name
|
||||
symbol = FirVariableSymbol(firValueParameter.name)
|
||||
@@ -1180,6 +1194,7 @@ class DeclarationsConverter(
|
||||
|
||||
return functionBuilder.apply {
|
||||
session = baseSession
|
||||
origin = FirDeclarationOrigin.Source
|
||||
returnTypeRef = returnType!!
|
||||
|
||||
context.firFunctionTargets += target
|
||||
@@ -1382,6 +1397,7 @@ class DeclarationsConverter(
|
||||
return buildTypeParameter {
|
||||
source = typeParameter.toFirSourceElement()
|
||||
session = baseSession
|
||||
origin = FirDeclarationOrigin.Source
|
||||
name = identifier.nameAsSafeName()
|
||||
symbol = FirTypeParameterSymbol()
|
||||
variance = typeParameterModifiers.getVariance()
|
||||
@@ -1592,6 +1608,7 @@ class DeclarationsConverter(
|
||||
val firValueParameter = buildValueParameter {
|
||||
source = valueParameter.toFirSourceElement()
|
||||
session = baseSession
|
||||
origin = FirDeclarationOrigin.Source
|
||||
returnTypeRef = firType ?: implicitType
|
||||
this.name = name
|
||||
symbol = FirVariableSymbol(name)
|
||||
|
||||
+4
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
||||
import org.jetbrains.kotlin.fir.*
|
||||
import org.jetbrains.kotlin.fir.builder.*
|
||||
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
|
||||
import org.jetbrains.kotlin.fir.declarations.FirVariable
|
||||
import org.jetbrains.kotlin.fir.declarations.builder.buildAnonymousFunction
|
||||
import org.jetbrains.kotlin.fir.declarations.builder.buildProperty
|
||||
@@ -133,6 +134,7 @@ class ExpressionsConverter(
|
||||
return buildAnonymousFunction {
|
||||
source = expressionSource
|
||||
session = baseSession
|
||||
origin = FirDeclarationOrigin.Source
|
||||
returnTypeRef = implicitType
|
||||
receiverTypeRef = implicitType
|
||||
symbol = FirAnonymousFunctionSymbol()
|
||||
@@ -149,6 +151,7 @@ class ExpressionsConverter(
|
||||
val name = Name.special("<destruct>")
|
||||
val multiParameter = buildValueParameter {
|
||||
session = baseSession
|
||||
origin = FirDeclarationOrigin.Source
|
||||
returnTypeRef = buildImplicitTypeRef()
|
||||
this.name = name
|
||||
symbol = FirVariableSymbol(name)
|
||||
@@ -610,6 +613,7 @@ class ExpressionsConverter(
|
||||
PROPERTY -> subjectVariable = (declarationsConverter.convertPropertyDeclaration(it) as FirVariable<*>).let { variable ->
|
||||
buildProperty {
|
||||
source = it.toFirSourceElement()
|
||||
origin = FirDeclarationOrigin.Source
|
||||
session = baseSession
|
||||
returnTypeRef = variable.returnTypeRef
|
||||
name = variable.name
|
||||
|
||||
+4
-2
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir.lightTree.fir
|
||||
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.builder.convertToArrayType
|
||||
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
|
||||
import org.jetbrains.kotlin.fir.declarations.FirProperty
|
||||
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
|
||||
import org.jetbrains.kotlin.fir.declarations.builder.buildProperty
|
||||
@@ -47,6 +48,7 @@ class ValueParameter(
|
||||
return buildProperty {
|
||||
source = firValueParameter.source
|
||||
this.session = session
|
||||
origin = FirDeclarationOrigin.Source
|
||||
returnTypeRef = type
|
||||
this.name = name
|
||||
initializer = buildQualifiedAccessExpression {
|
||||
@@ -66,8 +68,8 @@ class ValueParameter(
|
||||
isLateInit = false
|
||||
}
|
||||
annotations += this@ValueParameter.firValueParameter.annotations
|
||||
getter = FirDefaultPropertyGetter(null, session, type, modifiers.getVisibility())
|
||||
setter = if (this.isVar) FirDefaultPropertySetter(null, session, type, modifiers.getVisibility()) else null
|
||||
getter = FirDefaultPropertyGetter(null, session, FirDeclarationOrigin.Source, type, modifiers.getVisibility())
|
||||
setter = if (this.isVar) FirDefaultPropertySetter(null, session, FirDeclarationOrigin.Source, type, modifiers.getVisibility()) else null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+2
@@ -10,6 +10,7 @@ import org.jetbrains.kotlin.descriptors.Visibilities
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.FirSourceElement
|
||||
import org.jetbrains.kotlin.fir.FirWhenSubject
|
||||
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
|
||||
import org.jetbrains.kotlin.fir.declarations.FirVariable
|
||||
import org.jetbrains.kotlin.fir.declarations.builder.buildProperty
|
||||
import org.jetbrains.kotlin.fir.declarations.impl.FirDeclarationStatusImpl
|
||||
@@ -104,6 +105,7 @@ internal fun generateDestructuringBlock(
|
||||
statements += buildProperty {
|
||||
source = entrySource
|
||||
this.session = session
|
||||
origin = FirDeclarationOrigin.Source
|
||||
returnTypeRef = entry.typeReference.toFirOrImplicitTypeRef()
|
||||
this.name = name
|
||||
initializer = buildComponentCall {
|
||||
|
||||
@@ -271,7 +271,7 @@ class RawFirBuilder(
|
||||
val propertySource = property.toFirSourceElement()
|
||||
val accessorVisibility = this?.visibility ?: property.visibility
|
||||
return FirDefaultPropertyAccessor
|
||||
.createGetterOrSetter(propertySource, baseSession, propertyTypeRef, accessorVisibility, isGetter)
|
||||
.createGetterOrSetter(propertySource, baseSession, FirDeclarationOrigin.Source, propertyTypeRef, accessorVisibility, isGetter)
|
||||
.also {
|
||||
if (this != null) {
|
||||
it.extractAnnotationsFrom(this)
|
||||
@@ -283,6 +283,7 @@ class RawFirBuilder(
|
||||
return buildPropertyAccessor {
|
||||
this.source = source
|
||||
session = baseSession
|
||||
origin = FirDeclarationOrigin.Source
|
||||
returnTypeRef = if (isGetter) {
|
||||
returnTypeReference?.convertSafe() ?: propertyTypeRef
|
||||
} else {
|
||||
@@ -297,6 +298,7 @@ class RawFirBuilder(
|
||||
valueParameters += buildDefaultSetterValueParameter {
|
||||
this.source = source
|
||||
session = baseSession
|
||||
origin = FirDeclarationOrigin.Source
|
||||
returnTypeRef = propertyTypeRef
|
||||
symbol = FirVariableSymbol(NAME_FOR_DEFAULT_VALUE_PARAMETER)
|
||||
}
|
||||
@@ -318,6 +320,7 @@ class RawFirBuilder(
|
||||
return buildValueParameter {
|
||||
source = toFirSourceElement()
|
||||
session = baseSession
|
||||
origin = FirDeclarationOrigin.Source
|
||||
returnTypeRef = when {
|
||||
typeReference != null -> typeReference.toFirOrErrorType()
|
||||
defaultTypeRef != null -> defaultTypeRef
|
||||
@@ -354,6 +357,7 @@ class RawFirBuilder(
|
||||
return buildProperty {
|
||||
source = parameterSource
|
||||
session = baseSession
|
||||
origin = FirDeclarationOrigin.Source
|
||||
returnTypeRef = type
|
||||
receiverTypeRef = null
|
||||
name = propertyName
|
||||
@@ -369,8 +373,8 @@ class RawFirBuilder(
|
||||
symbol = FirPropertySymbol(callableIdForName(propertyName))
|
||||
isLocal = false
|
||||
this.status = status
|
||||
getter = FirDefaultPropertyGetter(propertySource, baseSession, type, visibility)
|
||||
setter = if (isMutable) FirDefaultPropertySetter(propertySource, baseSession, type, visibility) else null
|
||||
getter = FirDefaultPropertyGetter(propertySource, baseSession, FirDeclarationOrigin.Source, type, visibility)
|
||||
setter = if (isMutable) FirDefaultPropertySetter(propertySource, baseSession, FirDeclarationOrigin.Source, type, visibility) else null
|
||||
extractAnnotationsTo(this)
|
||||
}
|
||||
}
|
||||
@@ -544,6 +548,7 @@ class RawFirBuilder(
|
||||
return buildPrimaryConstructor {
|
||||
source = constructorSource
|
||||
session = baseSession
|
||||
origin = FirDeclarationOrigin.Source
|
||||
returnTypeRef = delegatedSelfTypeRef
|
||||
this.status = status
|
||||
symbol = FirConstructorSymbol(callableIdForClassConstructor())
|
||||
@@ -559,6 +564,7 @@ class RawFirBuilder(
|
||||
return buildFile {
|
||||
source = file.toFirSourceElement()
|
||||
session = baseSession
|
||||
origin = FirDeclarationOrigin.Source
|
||||
name = file.name
|
||||
packageFqName = context.packageFqName
|
||||
for (annotationEntry in file.annotationEntries) {
|
||||
@@ -586,6 +592,7 @@ class RawFirBuilder(
|
||||
return buildEnumEntry {
|
||||
source = toFirSourceElement()
|
||||
session = baseSession
|
||||
origin = FirDeclarationOrigin.Source
|
||||
returnTypeRef = delegatedEnumSelfTypeRef
|
||||
name = nameAsSafeName
|
||||
status = FirDeclarationStatusImpl(Visibilities.PUBLIC, Modality.FINAL).apply {
|
||||
@@ -602,6 +609,7 @@ class RawFirBuilder(
|
||||
buildAnonymousObject {
|
||||
source = toFirSourceElement()
|
||||
session = baseSession
|
||||
origin = FirDeclarationOrigin.Source
|
||||
classKind = ClassKind.ENUM_ENTRY
|
||||
scopeProvider = this@RawFirBuilder.baseScopeProvider
|
||||
symbol = FirAnonymousObjectSymbol()
|
||||
@@ -669,6 +677,7 @@ class RawFirBuilder(
|
||||
classBuilder.apply {
|
||||
source = classOrObject.toFirSourceElement()
|
||||
session = baseSession
|
||||
origin = FirDeclarationOrigin.Source
|
||||
name = classOrObject.nameAsSafeName
|
||||
this.status = status
|
||||
this.classKind = classKind
|
||||
@@ -739,6 +748,7 @@ class RawFirBuilder(
|
||||
buildAnonymousObject {
|
||||
source = expression.toFirSourceElement()
|
||||
session = baseSession
|
||||
origin = FirDeclarationOrigin.Source
|
||||
classKind = ClassKind.OBJECT
|
||||
scopeProvider = baseScopeProvider
|
||||
symbol = FirAnonymousObjectSymbol()
|
||||
@@ -774,6 +784,7 @@ class RawFirBuilder(
|
||||
buildTypeAlias {
|
||||
source = typeAlias.toFirSourceElement()
|
||||
session = baseSession
|
||||
origin = FirDeclarationOrigin.Source
|
||||
name = typeAlias.nameAsSafeName
|
||||
status = FirDeclarationStatusImpl(typeAlias.visibility, Modality.FINAL).apply {
|
||||
isExpect = typeAlias.hasExpectModifier()
|
||||
@@ -832,6 +843,7 @@ class RawFirBuilder(
|
||||
return functionBuilder.apply {
|
||||
source = function.toFirSourceElement()
|
||||
session = baseSession
|
||||
origin = FirDeclarationOrigin.Source
|
||||
returnTypeRef = returnType
|
||||
|
||||
context.firFunctionTargets += target
|
||||
@@ -873,6 +885,7 @@ class RawFirBuilder(
|
||||
return buildAnonymousFunction {
|
||||
source = literalSource
|
||||
session = baseSession
|
||||
origin = FirDeclarationOrigin.Source
|
||||
returnTypeRef = returnType
|
||||
receiverTypeRef = receiverType
|
||||
symbol = FirAnonymousFunctionSymbol()
|
||||
@@ -886,6 +899,7 @@ class RawFirBuilder(
|
||||
val multiParameter = buildValueParameter {
|
||||
source = valueParameter.toFirSourceElement()
|
||||
session = baseSession
|
||||
origin = FirDeclarationOrigin.Source
|
||||
returnTypeRef = buildImplicitTypeRef {
|
||||
source = multiDeclaration.toFirSourceElement()
|
||||
}
|
||||
@@ -959,6 +973,7 @@ class RawFirBuilder(
|
||||
return buildConstructor {
|
||||
source = this@toFirConstructor.toFirSourceElement()
|
||||
session = baseSession
|
||||
origin = FirDeclarationOrigin.Source
|
||||
returnTypeRef = delegatedSelfTypeRef
|
||||
val explicitVisibility = visibility
|
||||
status = FirDeclarationStatusImpl(explicitVisibility, Modality.FINAL).apply {
|
||||
@@ -1020,6 +1035,7 @@ class RawFirBuilder(
|
||||
return buildProperty {
|
||||
source = propertySource
|
||||
session = baseSession
|
||||
origin = FirDeclarationOrigin.Source
|
||||
returnTypeRef = propertyType
|
||||
name = propertyName
|
||||
this.isVar = isVar
|
||||
@@ -1087,6 +1103,7 @@ class RawFirBuilder(
|
||||
return buildAnonymousInitializer {
|
||||
source = initializer.toFirSourceElement()
|
||||
session = baseSession
|
||||
origin = FirDeclarationOrigin.Source
|
||||
body = if (stubMode) buildEmptyExpressionBlock() else initializer.body.toFirBlock()
|
||||
}
|
||||
}
|
||||
@@ -1178,6 +1195,7 @@ class RawFirBuilder(
|
||||
return buildTypeParameter {
|
||||
source = parameter.toFirSourceElement()
|
||||
session = baseSession
|
||||
origin = FirDeclarationOrigin.Source
|
||||
name = parameterName
|
||||
symbol = FirTypeParameterSymbol()
|
||||
variance = parameter.variance
|
||||
@@ -1310,6 +1328,7 @@ class RawFirBuilder(
|
||||
buildProperty {
|
||||
source = ktSubjectExpression.toFirSourceElement()
|
||||
session = baseSession
|
||||
origin = FirDeclarationOrigin.Source
|
||||
returnTypeRef = ktSubjectExpression.typeReference.toFirOrImplicitType()
|
||||
receiverTypeRef = null
|
||||
this.name = name
|
||||
|
||||
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir
|
||||
|
||||
import org.jetbrains.kotlin.contracts.description.InvocationKind
|
||||
import org.jetbrains.kotlin.fir.declarations.FirAnonymousFunction
|
||||
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
|
||||
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
|
||||
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
|
||||
import org.jetbrains.kotlin.fir.declarations.builder.buildAnonymousFunction
|
||||
@@ -62,6 +63,7 @@ fun FirAnonymousFunction.copy(
|
||||
receiverTypeRef: FirTypeRef? = this.receiverTypeRef,
|
||||
source: FirSourceElement? = this.source,
|
||||
session: FirSession = this.session,
|
||||
origin: FirDeclarationOrigin = this.origin,
|
||||
returnTypeRef: FirTypeRef = this.returnTypeRef,
|
||||
valueParameters: List<FirValueParameter> = this.valueParameters,
|
||||
body: FirBlock? = this.body,
|
||||
@@ -74,6 +76,7 @@ fun FirAnonymousFunction.copy(
|
||||
return buildAnonymousFunction {
|
||||
this.source = source
|
||||
this.session = session
|
||||
this.origin = origin
|
||||
this.returnTypeRef = returnTypeRef
|
||||
this.receiverTypeRef = receiverTypeRef
|
||||
symbol = this@copy.symbol
|
||||
|
||||
+4
@@ -11,6 +11,7 @@ import org.jetbrains.kotlin.descriptors.ClassKind
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
|
||||
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
|
||||
import org.jetbrains.kotlin.fir.declarations.addDeclarations
|
||||
import org.jetbrains.kotlin.fir.declarations.builder.*
|
||||
@@ -84,6 +85,7 @@ fun deserializeClassToSymbol(
|
||||
)
|
||||
classBuilder.apply {
|
||||
this.session = session
|
||||
origin = FirDeclarationOrigin.Library
|
||||
name = classId.shortClassName
|
||||
this.status = status
|
||||
classKind = ProtoEnumFlags.classKind(kind)
|
||||
@@ -132,6 +134,7 @@ fun deserializeClassToSymbol(
|
||||
val enumType = ConeClassLikeTypeImpl(symbol.toLookupTag(), emptyArray(), false)
|
||||
val property = buildEnumEntry {
|
||||
this.session = session
|
||||
origin = FirDeclarationOrigin.Library
|
||||
returnTypeRef = buildResolvedTypeRef { type = enumType }
|
||||
name = enumEntryName
|
||||
this.symbol = FirVariableSymbol(CallableId(classId, enumEntryName))
|
||||
@@ -200,6 +203,7 @@ private fun AbstractFirRegularClassBuilder.addCloneForArrayIfNeeded(classId: Cla
|
||||
}
|
||||
declarations += buildSimpleFunction {
|
||||
session = this@addCloneForArrayIfNeeded.session
|
||||
origin = FirDeclarationOrigin.Library
|
||||
resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES
|
||||
returnTypeRef = buildResolvedTypeRef {
|
||||
val typeArguments = if (classId.shortClassName == ARRAY) {
|
||||
|
||||
+7
-2
@@ -151,6 +151,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) {
|
||||
val local = c.childContext(proto.typeParameterList)
|
||||
return buildTypeAlias {
|
||||
session = c.session
|
||||
origin = FirDeclarationOrigin.Library
|
||||
this.name = name
|
||||
status = FirDeclarationStatusImpl(ProtoEnumFlags.visibility(Flags.VISIBILITY.get(flags)), Modality.FINAL).apply {
|
||||
isExpect = Flags.IS_EXPECT_CLASS.get(flags)
|
||||
@@ -176,6 +177,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) {
|
||||
val isVar = Flags.IS_VAR.get(flags)
|
||||
return buildProperty {
|
||||
session = c.session
|
||||
origin = FirDeclarationOrigin.Library
|
||||
returnTypeRef = proto.returnType(c.typeTable).toTypeRef(local)
|
||||
receiverTypeRef = proto.receiverType(c.typeTable)?.toTypeRef(local)
|
||||
name = callableName
|
||||
@@ -196,9 +198,9 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) {
|
||||
resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES
|
||||
typeParameters += local.typeDeserializer.ownTypeParameters.map { it.fir }
|
||||
annotations += c.annotationDeserializer.loadPropertyAnnotations(proto, local.nameResolver)
|
||||
getter = FirDefaultPropertyGetter(null, c.session, returnTypeRef, ProtoEnumFlags.visibility(Flags.VISIBILITY.get(getterFlags)))
|
||||
getter = FirDefaultPropertyGetter(null, c.session, FirDeclarationOrigin.Library, returnTypeRef, ProtoEnumFlags.visibility(Flags.VISIBILITY.get(getterFlags)))
|
||||
setter = if (isVar) {
|
||||
FirDefaultPropertySetter(null, c.session, returnTypeRef, ProtoEnumFlags.visibility(Flags.VISIBILITY.get(setterFlags)))
|
||||
FirDefaultPropertySetter(null, c.session, FirDeclarationOrigin.Library, returnTypeRef, ProtoEnumFlags.visibility(Flags.VISIBILITY.get(setterFlags)))
|
||||
} else null
|
||||
this.containerSource = c.containerSource
|
||||
this.initializer = if (Flags.HAS_CONSTANT.get(flags)) {
|
||||
@@ -227,6 +229,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) {
|
||||
|
||||
val simpleFunction = buildSimpleFunction {
|
||||
session = c.session
|
||||
origin = FirDeclarationOrigin.Library
|
||||
returnTypeRef = proto.returnType(local.typeTable).toTypeRef(local)
|
||||
receiverTypeRef = proto.receiverType(local.typeTable)?.toTypeRef(local)
|
||||
name = callableName
|
||||
@@ -283,6 +286,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) {
|
||||
FirConstructorBuilder()
|
||||
}.apply {
|
||||
session = c.session
|
||||
origin = FirDeclarationOrigin.Library
|
||||
returnTypeRef = delegatedSelfType
|
||||
status = FirDeclarationStatusImpl(ProtoEnumFlags.visibility(Flags.VISIBILITY.get(flags)), Modality.FINAL).apply {
|
||||
isExpect = Flags.IS_EXPECT_FUNCTION.get(flags)
|
||||
@@ -317,6 +321,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) {
|
||||
val name = c.nameResolver.getName(proto.name)
|
||||
buildValueParameter {
|
||||
session = c.session
|
||||
origin = FirDeclarationOrigin.Library
|
||||
returnTypeRef = proto.type(c.typeTable).toTypeRef(c)
|
||||
this.name = name
|
||||
symbol = FirVariableSymbol(name)
|
||||
|
||||
+2
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir.deserialization
|
||||
|
||||
import org.jetbrains.kotlin.builtins.functions.FunctionClassDescriptor
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
|
||||
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRefsOwner
|
||||
import org.jetbrains.kotlin.fir.declarations.FirTypeParametersOwner
|
||||
import org.jetbrains.kotlin.fir.declarations.addDefaultBoundIfNecessary
|
||||
@@ -63,6 +64,7 @@ class FirTypeDeserializer(
|
||||
}
|
||||
builders += FirTypeParameterBuilder().apply {
|
||||
session = this@FirTypeDeserializer.session
|
||||
origin = FirDeclarationOrigin.Library
|
||||
this.name = name
|
||||
this.symbol = symbol
|
||||
variance = proto.variance.convertVariance()
|
||||
|
||||
@@ -124,6 +124,7 @@ class FirSamResolverImpl(
|
||||
FirTypeParameterBuilder().apply {
|
||||
source = declaredTypeParameter.source
|
||||
session = firSession
|
||||
origin = FirDeclarationOrigin.SamConstructor
|
||||
name = declaredTypeParameter.name
|
||||
this.symbol = FirTypeParameterSymbol()
|
||||
variance = Variance.INVARIANT
|
||||
@@ -155,6 +156,7 @@ class FirSamResolverImpl(
|
||||
return buildSimpleFunction {
|
||||
session = firSession
|
||||
name = classId.shortClassName
|
||||
origin = FirDeclarationOrigin.SamConstructor
|
||||
status = FirDeclarationStatusImpl(firRegularClass.visibility, Modality.FINAL).apply {
|
||||
isExpect = firRegularClass.isExpect
|
||||
isActual = firRegularClass.isActual
|
||||
@@ -182,6 +184,7 @@ class FirSamResolverImpl(
|
||||
|
||||
valueParameters += buildValueParameter {
|
||||
session = firSession
|
||||
origin = FirDeclarationOrigin.SamConstructor
|
||||
returnTypeRef = buildResolvedTypeRef {
|
||||
source = firRegularClass.source
|
||||
type = substitutedFunctionType
|
||||
|
||||
+2
@@ -235,6 +235,7 @@ private fun prepareSubstitutingScopeForTypeAliasConstructors(
|
||||
buildConstructor {
|
||||
source = this@factory.source
|
||||
this.session = session
|
||||
origin = FirDeclarationOrigin.FakeOverride
|
||||
returnTypeRef = this@factory.returnTypeRef.withReplacedConeType(newReturnType)
|
||||
receiverTypeRef = this@factory.receiverTypeRef
|
||||
status = this@factory.status
|
||||
@@ -248,6 +249,7 @@ private fun prepareSubstitutingScopeForTypeAliasConstructors(
|
||||
buildValueParameter {
|
||||
source = valueParameter.source
|
||||
this.session = session
|
||||
origin = FirDeclarationOrigin.FakeOverride
|
||||
returnTypeRef = valueParameter.returnTypeRef.withReplacedConeType(newParameterType)
|
||||
name = valueParameter.name
|
||||
symbol = FirVariableSymbol(valueParameter.symbol.callableId)
|
||||
|
||||
+6
@@ -157,6 +157,7 @@ class FirBuiltinSymbolProvider(val session: FirSession, val kotlinScopeProvider:
|
||||
FirRegularClassSymbol(this).apply symbol@{
|
||||
buildClassImpl klass@{
|
||||
session = this@FirBuiltinSymbolProvider.session
|
||||
origin = FirDeclarationOrigin.Synthetic
|
||||
name = relativeClassName.shortName()
|
||||
status = FirDeclarationStatusImpl(Visibilities.PUBLIC, Modality.ABSTRACT).apply {
|
||||
isExpect = false
|
||||
@@ -174,6 +175,7 @@ class FirBuiltinSymbolProvider(val session: FirSession, val kotlinScopeProvider:
|
||||
(1..arity).map {
|
||||
buildTypeParameter {
|
||||
session = this@FirBuiltinSymbolProvider.session
|
||||
origin = FirDeclarationOrigin.Synthetic
|
||||
name = Name.identifier("P$it")
|
||||
symbol = FirTypeParameterSymbol()
|
||||
variance = Variance.IN_VARIANCE
|
||||
@@ -185,6 +187,7 @@ class FirBuiltinSymbolProvider(val session: FirSession, val kotlinScopeProvider:
|
||||
typeParameters.add(
|
||||
buildTypeParameter {
|
||||
session = this@FirBuiltinSymbolProvider.session
|
||||
origin = FirDeclarationOrigin.Synthetic
|
||||
name = Name.identifier("R")
|
||||
symbol = FirTypeParameterSymbol()
|
||||
variance = Variance.OUT_VARIANCE
|
||||
@@ -260,6 +263,7 @@ class FirBuiltinSymbolProvider(val session: FirSession, val kotlinScopeProvider:
|
||||
addDeclaration(
|
||||
buildSimpleFunction {
|
||||
session = this@FirBuiltinSymbolProvider.session
|
||||
origin = FirDeclarationOrigin.Synthetic
|
||||
returnTypeRef = typeArguments.last()
|
||||
this.name = name
|
||||
status = functionStatus
|
||||
@@ -273,6 +277,8 @@ class FirBuiltinSymbolProvider(val session: FirSession, val kotlinScopeProvider:
|
||||
val parameterName = Name.identifier("p${index + 1}")
|
||||
buildValueParameter {
|
||||
session = this@FirBuiltinSymbolProvider.session
|
||||
origin = FirDeclarationOrigin.Synthetic
|
||||
resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES
|
||||
returnTypeRef = typeArgument
|
||||
this.name = parameterName
|
||||
symbol = FirVariableSymbol(parameterName)
|
||||
|
||||
+3
@@ -10,6 +10,7 @@ import org.jetbrains.kotlin.descriptors.ClassKind
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
|
||||
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
|
||||
import org.jetbrains.kotlin.fir.declarations.builder.buildClassImpl
|
||||
import org.jetbrains.kotlin.fir.declarations.builder.buildSimpleFunction
|
||||
@@ -37,6 +38,7 @@ class FirClonableSymbolProvider(session: FirSession, scopeProvider: FirScopeProv
|
||||
|
||||
private val klass = buildClassImpl {
|
||||
resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES
|
||||
origin = FirDeclarationOrigin.Library
|
||||
this.session = session
|
||||
status = FirDeclarationStatusImpl(
|
||||
Visibilities.PUBLIC,
|
||||
@@ -46,6 +48,7 @@ class FirClonableSymbolProvider(session: FirSession, scopeProvider: FirScopeProv
|
||||
declarations += buildSimpleFunction {
|
||||
this.session = session
|
||||
resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES
|
||||
origin = FirDeclarationOrigin.Library
|
||||
returnTypeRef = buildResolvedTypeRef {
|
||||
type = session.builtinTypes.anyType.type
|
||||
}
|
||||
|
||||
+2
@@ -6,6 +6,7 @@
|
||||
package org.jetbrains.kotlin.fir.resolve.inference
|
||||
|
||||
import org.jetbrains.kotlin.fir.declarations.FirAnonymousFunction
|
||||
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
|
||||
import org.jetbrains.kotlin.fir.declarations.builder.buildValueParameter
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirFunctionCall
|
||||
@@ -159,6 +160,7 @@ class FirCallCompleter(
|
||||
val itType = parameters.single()
|
||||
buildValueParameter {
|
||||
session = this@FirCallCompleter.session
|
||||
origin = FirDeclarationOrigin.Source
|
||||
returnTypeRef = buildResolvedTypeRef { type = itType.approximateLambdaInputType() }
|
||||
this.name = name
|
||||
symbol = FirVariableSymbol(name)
|
||||
|
||||
+3
@@ -166,6 +166,7 @@ class FirSyntheticCallGenerator(
|
||||
val typeParameter =
|
||||
buildTypeParameter {
|
||||
session = this@FirSyntheticCallGenerator.session
|
||||
origin = FirDeclarationOrigin.Library
|
||||
name = Name.identifier("K")
|
||||
symbol = typeParameterSymbol
|
||||
variance = Variance.INVARIANT
|
||||
@@ -230,6 +231,7 @@ class FirSyntheticCallGenerator(
|
||||
): FirSimpleFunctionBuilder {
|
||||
return FirSimpleFunctionBuilder().apply {
|
||||
session = this@FirSyntheticCallGenerator.session
|
||||
origin = FirDeclarationOrigin.Synthetic
|
||||
this.symbol = symbol
|
||||
this.name = name
|
||||
status = FirDeclarationStatusImpl(Visibilities.PUBLIC, Modality.FINAL).apply {
|
||||
@@ -254,6 +256,7 @@ class FirSyntheticCallGenerator(
|
||||
val name = Name.identifier(nameAsString)
|
||||
return buildValueParameter {
|
||||
session = this@FirSyntheticCallGenerator.session
|
||||
origin = FirDeclarationOrigin.Library
|
||||
this.name = name
|
||||
returnTypeRef = this@toValueParameter
|
||||
isCrossinline = false
|
||||
|
||||
+1
@@ -566,6 +566,7 @@ open class FirDeclarationsResolveTransformer(transformer: FirBodyResolveTransfor
|
||||
val name = Name.identifier("it")
|
||||
buildValueParameter {
|
||||
session = this@FirDeclarationsResolveTransformer.session
|
||||
origin = FirDeclarationOrigin.Source
|
||||
returnTypeRef = buildResolvedTypeRef { type = singleParameterType }
|
||||
this.name = name
|
||||
symbol = FirVariableSymbol(name)
|
||||
|
||||
+3
@@ -6,6 +6,7 @@
|
||||
package org.jetbrains.kotlin.fir.scopes.impl
|
||||
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
|
||||
import org.jetbrains.kotlin.fir.declarations.FirFunction
|
||||
import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction
|
||||
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
|
||||
@@ -96,6 +97,7 @@ abstract class AbstractFirUseSiteMemberScope(
|
||||
FirSimpleFunctionBuilder().apply {
|
||||
source = firSimpleFunction.source
|
||||
session = firSimpleFunction.session
|
||||
origin = FirDeclarationOrigin.FakeOverride
|
||||
returnTypeRef = firSimpleFunction.returnTypeRef
|
||||
receiverTypeRef = firSimpleFunction.receiverTypeRef
|
||||
name = firSimpleFunction.name
|
||||
@@ -107,6 +109,7 @@ abstract class AbstractFirUseSiteMemberScope(
|
||||
FirValueParameterBuilder().apply {
|
||||
source = parameter.source
|
||||
session = parameter.session
|
||||
origin = FirDeclarationOrigin.FakeOverride
|
||||
returnTypeRef = parameter.returnTypeRef
|
||||
name = parameter.name
|
||||
symbol = FirVariableSymbol(parameter.symbol.callableId)
|
||||
|
||||
+7
@@ -168,6 +168,7 @@ class FirClassSubstitutionScope(
|
||||
FirTypeParameterBuilder().apply {
|
||||
source = typeParameter.source
|
||||
session = typeParameter.session
|
||||
origin = FirDeclarationOrigin.FakeOverride
|
||||
name = typeParameter.name
|
||||
symbol = FirTypeParameterSymbol()
|
||||
variance = typeParameter.variance
|
||||
@@ -285,6 +286,7 @@ class FirClassSubstitutionScope(
|
||||
return buildSimpleFunction {
|
||||
source = baseFunction.source
|
||||
this.session = session
|
||||
origin = FirDeclarationOrigin.FakeOverride
|
||||
returnTypeRef = baseFunction.returnTypeRef.withReplacedReturnType(newReturnType)
|
||||
receiverTypeRef = baseFunction.receiverTypeRef?.withReplacedConeType(newReceiverType)
|
||||
name = baseFunction.name
|
||||
@@ -298,6 +300,7 @@ class FirClassSubstitutionScope(
|
||||
buildValueParameter {
|
||||
source = valueParameter.source
|
||||
this.session = session
|
||||
origin = FirDeclarationOrigin.FakeOverride
|
||||
returnTypeRef = valueParameter.returnTypeRef.withReplacedConeType(newType)
|
||||
name = valueParameter.name
|
||||
symbol = FirVariableSymbol(valueParameter.symbol.callableId)
|
||||
@@ -355,6 +358,7 @@ class FirClassSubstitutionScope(
|
||||
buildProperty {
|
||||
source = baseProperty.source
|
||||
this.session = session
|
||||
origin = FirDeclarationOrigin.FakeOverride
|
||||
returnTypeRef = baseProperty.returnTypeRef.withReplacedReturnType(newReturnType)
|
||||
receiverTypeRef = baseProperty.receiverTypeRef?.withReplacedConeType(newReceiverType)
|
||||
name = baseProperty.name
|
||||
@@ -384,6 +388,7 @@ class FirClassSubstitutionScope(
|
||||
buildField {
|
||||
source = baseField.source
|
||||
this.session = session
|
||||
origin = FirDeclarationOrigin.FakeOverride
|
||||
returnTypeRef = baseField.returnTypeRef.withReplacedConeType(newReturnType)
|
||||
name = baseField.name
|
||||
this.symbol = symbol
|
||||
@@ -428,6 +433,7 @@ class FirClassSubstitutionScope(
|
||||
return buildConstructor {
|
||||
source = baseConstructor.source
|
||||
this.session = session
|
||||
origin = FirDeclarationOrigin.FakeOverride
|
||||
returnTypeRef = baseConstructor.returnTypeRef.withReplacedReturnType(newReturnType)
|
||||
receiverTypeRef = baseConstructor.receiverTypeRef?.withReplacedConeType(newReceiverType)
|
||||
status = baseConstructor.status
|
||||
@@ -440,6 +446,7 @@ class FirClassSubstitutionScope(
|
||||
buildValueParameter {
|
||||
source = valueParameter.source
|
||||
this.session = session
|
||||
origin = FirDeclarationOrigin.FakeOverride
|
||||
returnTypeRef = valueParameter.returnTypeRef.withReplacedConeType(newType)
|
||||
name = valueParameter.name
|
||||
symbol = FirVariableSymbol(valueParameter.symbol.callableId)
|
||||
|
||||
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir
|
||||
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
||||
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
|
||||
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
|
||||
import org.jetbrains.kotlin.fir.declarations.builder.AbstractFirRegularClassBuilder
|
||||
import org.jetbrains.kotlin.fir.declarations.builder.buildSimpleFunction
|
||||
@@ -31,6 +32,7 @@ private val VALUE = Name.identifier("value")
|
||||
fun AbstractFirRegularClassBuilder.generateValuesFunction(session: FirSession, packageFqName: FqName, classFqName: FqName) {
|
||||
declarations += buildSimpleFunction {
|
||||
source = this@generateValuesFunction.source
|
||||
origin = FirDeclarationOrigin.Source
|
||||
this.session = session
|
||||
returnTypeRef = buildResolvedTypeRef {
|
||||
source = this@generateValuesFunction.source
|
||||
@@ -55,6 +57,7 @@ fun AbstractFirRegularClassBuilder.generateValuesFunction(session: FirSession, p
|
||||
fun AbstractFirRegularClassBuilder.generateValueOfFunction(session: FirSession, packageFqName: FqName, classFqName: FqName) {
|
||||
declarations += buildSimpleFunction {
|
||||
source = this@generateValueOfFunction.source
|
||||
origin = FirDeclarationOrigin.Source
|
||||
this.session = session
|
||||
returnTypeRef = buildResolvedTypeRef {
|
||||
source = this@generateValueOfFunction.source
|
||||
@@ -71,6 +74,7 @@ fun AbstractFirRegularClassBuilder.generateValueOfFunction(session: FirSession,
|
||||
symbol = FirNamedFunctionSymbol(CallableId(packageFqName, classFqName, ENUM_VALUE_OF))
|
||||
valueParameters += buildValueParameter vp@{
|
||||
source = this@generateValueOfFunction.source
|
||||
origin = FirDeclarationOrigin.Source
|
||||
this@vp.session = session
|
||||
returnTypeRef = FirImplicitStringTypeRef(source)
|
||||
name = VALUE
|
||||
|
||||
+1
@@ -107,6 +107,7 @@ class FirDefaultPropertySetter(
|
||||
buildDefaultSetterValueParameter builder@{
|
||||
this@builder.source = source
|
||||
this@builder.session = session
|
||||
this@builder.origin = origin
|
||||
this@builder.returnTypeRef = propertyTypeRef
|
||||
this@builder.symbol = FirVariableSymbol(CallableId(FqName.ROOT, Name.special("<default-setter-parameter>")))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user