[FIR] PsiRawFirBuilder: drop obsolete LL FIR parts

This commit is contained in:
Dmitrii Gridin
2024-02-13 20:38:04 +01:00
committed by Space Team
parent 58a1662c02
commit 3962f26583
3 changed files with 16 additions and 61 deletions
@@ -268,8 +268,7 @@ internal class RawFirNonLocalDeclarationBuilder private constructor(
return when (declarationToBuild) { return when (declarationToBuild) {
is KtProperty -> { is KtProperty -> {
val ownerSymbol = containingClass?.symbol val ownerSymbol = containingClass?.symbol
val ownerTypeArgumentsCount = containingClass?.typeParameters?.size visitor.convertProperty(declarationToBuild, ownerSymbol)
visitor.convertProperty(declarationToBuild, ownerSymbol, ownerTypeArgumentsCount)
} }
is KtConstructor<*> -> { is KtConstructor<*> -> {
if (containingClass == null) { if (containingClass == null) {
@@ -68,11 +68,6 @@ open class PsiRawFirBuilder(
target.bind(function) target.bind(function)
} }
protected open fun FirFunctionBuilder.additionalFunctionInit() {}
protected open fun FirPropertyBuilder.additionalPropertyInit() {}
protected open fun FirPropertyAccessorBuilder.additionalPropertyAccessorInit() {}
protected open fun FirBackingFieldBuilder.additionalBackingFieldInit() {}
var mode: BodyBuildingMode = bodyBuildingMode var mode: BodyBuildingMode = bodyBuildingMode
private set private set
@@ -257,43 +252,17 @@ open class PsiRawFirBuilder(
} }
} }
open fun convertElement(element: KtElement, original: FirElement? = null): FirElement? = fun convertElement(element: KtElement, original: FirElement? = null): FirElement? =
element.accept(this@Visitor, original) element.accept(this@Visitor, original)
open fun convertProperty( fun convertProperty(
property: KtProperty, ownerRegularOrAnonymousObjectSymbol: FirClassSymbol<*>?, property: KtProperty,
ownerRegularClassTypeParametersCount: Int?, ownerRegularOrAnonymousObjectSymbol: FirClassSymbol<*>?,
): FirProperty = property.toFirProperty( ): FirProperty = property.toFirProperty(
ownerRegularOrAnonymousObjectSymbol, ownerRegularOrAnonymousObjectSymbol,
context context
) )
open fun convertPropertyAccessor(
accessor: KtPropertyAccessor?,
property: KtProperty,
propertyTypeRef: FirTypeRef,
propertySymbol: FirPropertySymbol,
isGetter: Boolean,
accessorAnnotationsFromProperty: List<FirAnnotation>,
parameterAnnotationsFromProperty: List<FirAnnotation>,
): FirPropertyAccessor? = accessor.toFirPropertyAccessor(
property,
propertyTypeRef,
propertySymbol,
isGetter,
accessorAnnotationsFromProperty,
parameterAnnotationsFromProperty,
)
open fun convertValueParameter(
valueParameter: KtParameter,
functionSymbol: FirFunctionSymbol<*>,
defaultTypeRef: FirTypeRef? = null,
valueParameterDeclaration: ValueParameterDeclaration,
additionalAnnotations: List<FirAnnotation> = emptyList(),
): FirValueParameter =
valueParameter.toFirValueParameter(defaultTypeRef, functionSymbol, valueParameterDeclaration, additionalAnnotations)
private fun KtTypeReference?.toFirOrImplicitType(): FirTypeRef = private fun KtTypeReference?.toFirOrImplicitType(): FirTypeRef =
this?.toFirType() ?: FirImplicitTypeRefImplWithoutSource this?.toFirType() ?: FirImplicitTypeRefImplWithoutSource
@@ -407,8 +376,7 @@ open class PsiRawFirBuilder(
is KtProperty -> { is KtProperty -> {
convertProperty( convertProperty(
this@toFirDeclaration, this@toFirDeclaration,
ownerClassBuilder.ownerRegularOrAnonymousObjectSymbol, ownerClassBuilder.ownerRegularOrAnonymousObjectSymbol
ownerClassBuilder.ownerRegularClassTypeParametersCount
) )
} }
is KtDestructuringDeclaration -> { is KtDestructuringDeclaration -> {
@@ -566,8 +534,6 @@ open class PsiRawFirBuilder(
this.contractDescription = it this.contractDescription = it
} }
this.propertySymbol = propertySymbol this.propertySymbol = propertySymbol
additionalPropertyAccessorInit()
}.also { }.also {
it.initContainingClassAttr() it.initContainingClassAttr()
bindFunctionTarget(accessorTarget, it) bindFunctionTarget(accessorTarget, it)
@@ -650,8 +616,6 @@ open class PsiRawFirBuilder(
this.initializer = backingFieldInitializer this.initializer = backingFieldInitializer
this.isVar = property.isVar this.isVar = property.isVar
this.isVal = !property.isVar this.isVal = !property.isVar
additionalBackingFieldInit()
} }
} else { } else {
FirDefaultPropertyBackingField( FirDefaultPropertyBackingField(
@@ -671,7 +635,7 @@ open class PsiRawFirBuilder(
defaultTypeRef: FirTypeRef?, defaultTypeRef: FirTypeRef?,
functionSymbol: FirFunctionSymbol<*>, functionSymbol: FirFunctionSymbol<*>,
valueParameterDeclaration: ValueParameterDeclaration, valueParameterDeclaration: ValueParameterDeclaration,
additionalAnnotations: List<FirAnnotation>, additionalAnnotations: List<FirAnnotation> = emptyList(),
): FirValueParameter { ): FirValueParameter {
val name = convertValueParameterName(nameAsSafeName, valueParameterDeclaration) { nameIdentifier?.node?.text } val name = convertValueParameterName(nameAsSafeName, valueParameterDeclaration) { nameIdentifier?.node?.text }
return buildValueParameter { return buildValueParameter {
@@ -927,8 +891,8 @@ open class PsiRawFirBuilder(
additionalAnnotations: List<FirAnnotation> = emptyList(), additionalAnnotations: List<FirAnnotation> = emptyList(),
) { ) {
for (valueParameter in valueParameters) { for (valueParameter in valueParameters) {
container.valueParameters += convertValueParameter( container.valueParameters += valueParameter.toFirValueParameter(
valueParameter, functionSymbol, defaultTypeRef, valueParameterDeclaration, additionalAnnotations = additionalAnnotations defaultTypeRef, functionSymbol, valueParameterDeclaration, additionalAnnotations = additionalAnnotations
) )
} }
} }
@@ -1824,11 +1788,10 @@ open class PsiRawFirBuilder(
function.extractTypeParametersTo(this, symbol) function.extractTypeParametersTo(this, symbol)
} }
for (valueParameter in function.valueParameters) { for (valueParameter in function.valueParameters) {
valueParameters += convertValueParameter( valueParameters += valueParameter.toFirValueParameter(
valueParameter,
functionSymbol,
null, null,
if (isAnonymousFunction) ValueParameterDeclaration.LAMBDA else ValueParameterDeclaration.FUNCTION functionSymbol,
if (isAnonymousFunction) ValueParameterDeclaration.LAMBDA else ValueParameterDeclaration.FUNCTION,
) )
} }
val actualTypeParameters = if (this is FirSimpleFunctionBuilder) val actualTypeParameters = if (this is FirSimpleFunctionBuilder)
@@ -1851,7 +1814,6 @@ open class PsiRawFirBuilder(
} }
} }
context.firFunctionTargets.removeLast() context.firFunctionTargets.removeLast()
additionalFunctionInit()
}.build().also { }.build().also {
bindFunctionTarget(target, it) bindFunctionTarget(target, it)
if (it is FirSimpleFunction) { if (it is FirSimpleFunction) {
@@ -1930,7 +1892,7 @@ open class PsiRawFirBuilder(
multiParameter multiParameter
} else { } else {
val typeRef = valueParameter.typeReference.toFirOrImplicitType() val typeRef = valueParameter.typeReference.toFirOrImplicitType()
convertValueParameter(valueParameter, symbol, typeRef, ValueParameterDeclaration.LAMBDA) valueParameter.toFirValueParameter(typeRef, symbol, ValueParameterDeclaration.LAMBDA)
} }
} }
val expressionSource = expression.toFirSourceElement() val expressionSource = expression.toFirSourceElement()
@@ -2169,8 +2131,7 @@ open class PsiRawFirBuilder(
propertyAnnotations.filter { it.useSiteTarget == FIELD || it.useSiteTarget == PROPERTY_DELEGATE_FIELD }, propertyAnnotations.filter { it.useSiteTarget == FIELD || it.useSiteTarget == PROPERTY_DELEGATE_FIELD },
) )
getter = convertPropertyAccessor( getter = this@toFirProperty.getter.toFirPropertyAccessor(
this@toFirProperty.getter,
this@toFirProperty, this@toFirProperty,
propertyType, propertyType,
propertySymbol = symbol, propertySymbol = symbol,
@@ -2179,8 +2140,7 @@ open class PsiRawFirBuilder(
parameterAnnotationsFromProperty = emptyList() parameterAnnotationsFromProperty = emptyList()
) )
setter = convertPropertyAccessor( setter = this@toFirProperty.setter.toFirPropertyAccessor(
this@toFirProperty.setter,
this@toFirProperty, this@toFirProperty,
propertyType, propertyType,
propertySymbol = symbol, propertySymbol = symbol,
@@ -2240,7 +2200,6 @@ open class PsiRawFirBuilder(
} }
contextReceivers.addAll(convertContextReceivers(this@toFirProperty.contextReceivers)) contextReceivers.addAll(convertContextReceivers(this@toFirProperty.contextReceivers))
additionalPropertyInit()
}.also { }.also {
if (!isLocal) { if (!isLocal) {
fillDanglingConstraintsTo(it) fillDanglingConstraintsTo(it)
@@ -1,5 +1,5 @@
/* /*
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/ */
@@ -313,9 +313,6 @@ val FirClassBuilder.ownerRegularOrAnonymousObjectSymbol
else -> null else -> null
} }
val FirClassBuilder.ownerRegularClassTypeParametersCount
get() = if (this is FirRegularClassBuilder) typeParameters.size else null
fun <T> FirPropertyBuilder.generateAccessorsByDelegate( fun <T> FirPropertyBuilder.generateAccessorsByDelegate(
delegateBuilder: FirWrappedDelegateExpressionBuilder?, delegateBuilder: FirWrappedDelegateExpressionBuilder?,
moduleData: FirModuleData, moduleData: FirModuleData,