diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/lazy/resolve/RawFirNonLocalDeclarationBuilder.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/lazy/resolve/RawFirNonLocalDeclarationBuilder.kt index c48b88ae07b..ff99fc6933e 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/lazy/resolve/RawFirNonLocalDeclarationBuilder.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/lazy/resolve/RawFirNonLocalDeclarationBuilder.kt @@ -268,8 +268,7 @@ internal class RawFirNonLocalDeclarationBuilder private constructor( return when (declarationToBuild) { is KtProperty -> { val ownerSymbol = containingClass?.symbol - val ownerTypeArgumentsCount = containingClass?.typeParameters?.size - visitor.convertProperty(declarationToBuild, ownerSymbol, ownerTypeArgumentsCount) + visitor.convertProperty(declarationToBuild, ownerSymbol) } is KtConstructor<*> -> { if (containingClass == null) { diff --git a/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/PsiRawFirBuilder.kt b/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/PsiRawFirBuilder.kt index 1eff107080a..1317aedbaaa 100644 --- a/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/PsiRawFirBuilder.kt +++ b/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/PsiRawFirBuilder.kt @@ -68,11 +68,6 @@ open class PsiRawFirBuilder( 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 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) - open fun convertProperty( - property: KtProperty, ownerRegularOrAnonymousObjectSymbol: FirClassSymbol<*>?, - ownerRegularClassTypeParametersCount: Int?, + fun convertProperty( + property: KtProperty, + ownerRegularOrAnonymousObjectSymbol: FirClassSymbol<*>?, ): FirProperty = property.toFirProperty( ownerRegularOrAnonymousObjectSymbol, context ) - open fun convertPropertyAccessor( - accessor: KtPropertyAccessor?, - property: KtProperty, - propertyTypeRef: FirTypeRef, - propertySymbol: FirPropertySymbol, - isGetter: Boolean, - accessorAnnotationsFromProperty: List, - parameterAnnotationsFromProperty: List, - ): FirPropertyAccessor? = accessor.toFirPropertyAccessor( - property, - propertyTypeRef, - propertySymbol, - isGetter, - accessorAnnotationsFromProperty, - parameterAnnotationsFromProperty, - ) - - open fun convertValueParameter( - valueParameter: KtParameter, - functionSymbol: FirFunctionSymbol<*>, - defaultTypeRef: FirTypeRef? = null, - valueParameterDeclaration: ValueParameterDeclaration, - additionalAnnotations: List = emptyList(), - ): FirValueParameter = - valueParameter.toFirValueParameter(defaultTypeRef, functionSymbol, valueParameterDeclaration, additionalAnnotations) - private fun KtTypeReference?.toFirOrImplicitType(): FirTypeRef = this?.toFirType() ?: FirImplicitTypeRefImplWithoutSource @@ -407,8 +376,7 @@ open class PsiRawFirBuilder( is KtProperty -> { convertProperty( this@toFirDeclaration, - ownerClassBuilder.ownerRegularOrAnonymousObjectSymbol, - ownerClassBuilder.ownerRegularClassTypeParametersCount + ownerClassBuilder.ownerRegularOrAnonymousObjectSymbol ) } is KtDestructuringDeclaration -> { @@ -566,8 +534,6 @@ open class PsiRawFirBuilder( this.contractDescription = it } this.propertySymbol = propertySymbol - - additionalPropertyAccessorInit() }.also { it.initContainingClassAttr() bindFunctionTarget(accessorTarget, it) @@ -650,8 +616,6 @@ open class PsiRawFirBuilder( this.initializer = backingFieldInitializer this.isVar = property.isVar this.isVal = !property.isVar - - additionalBackingFieldInit() } } else { FirDefaultPropertyBackingField( @@ -671,7 +635,7 @@ open class PsiRawFirBuilder( defaultTypeRef: FirTypeRef?, functionSymbol: FirFunctionSymbol<*>, valueParameterDeclaration: ValueParameterDeclaration, - additionalAnnotations: List, + additionalAnnotations: List = emptyList(), ): FirValueParameter { val name = convertValueParameterName(nameAsSafeName, valueParameterDeclaration) { nameIdentifier?.node?.text } return buildValueParameter { @@ -927,8 +891,8 @@ open class PsiRawFirBuilder( additionalAnnotations: List = emptyList(), ) { for (valueParameter in valueParameters) { - container.valueParameters += convertValueParameter( - valueParameter, functionSymbol, defaultTypeRef, valueParameterDeclaration, additionalAnnotations = additionalAnnotations + container.valueParameters += valueParameter.toFirValueParameter( + defaultTypeRef, functionSymbol, valueParameterDeclaration, additionalAnnotations = additionalAnnotations ) } } @@ -1824,11 +1788,10 @@ open class PsiRawFirBuilder( function.extractTypeParametersTo(this, symbol) } for (valueParameter in function.valueParameters) { - valueParameters += convertValueParameter( - valueParameter, - functionSymbol, + valueParameters += valueParameter.toFirValueParameter( null, - if (isAnonymousFunction) ValueParameterDeclaration.LAMBDA else ValueParameterDeclaration.FUNCTION + functionSymbol, + if (isAnonymousFunction) ValueParameterDeclaration.LAMBDA else ValueParameterDeclaration.FUNCTION, ) } val actualTypeParameters = if (this is FirSimpleFunctionBuilder) @@ -1851,7 +1814,6 @@ open class PsiRawFirBuilder( } } context.firFunctionTargets.removeLast() - additionalFunctionInit() }.build().also { bindFunctionTarget(target, it) if (it is FirSimpleFunction) { @@ -1930,7 +1892,7 @@ open class PsiRawFirBuilder( multiParameter } else { val typeRef = valueParameter.typeReference.toFirOrImplicitType() - convertValueParameter(valueParameter, symbol, typeRef, ValueParameterDeclaration.LAMBDA) + valueParameter.toFirValueParameter(typeRef, symbol, ValueParameterDeclaration.LAMBDA) } } val expressionSource = expression.toFirSourceElement() @@ -2169,8 +2131,7 @@ open class PsiRawFirBuilder( propertyAnnotations.filter { it.useSiteTarget == FIELD || it.useSiteTarget == PROPERTY_DELEGATE_FIELD }, ) - getter = convertPropertyAccessor( - this@toFirProperty.getter, + getter = this@toFirProperty.getter.toFirPropertyAccessor( this@toFirProperty, propertyType, propertySymbol = symbol, @@ -2179,8 +2140,7 @@ open class PsiRawFirBuilder( parameterAnnotationsFromProperty = emptyList() ) - setter = convertPropertyAccessor( - this@toFirProperty.setter, + setter = this@toFirProperty.setter.toFirPropertyAccessor( this@toFirProperty, propertyType, propertySymbol = symbol, @@ -2240,7 +2200,6 @@ open class PsiRawFirBuilder( } contextReceivers.addAll(convertContextReceivers(this@toFirProperty.contextReceivers)) - additionalPropertyInit() }.also { if (!isLocal) { fillDanglingConstraintsTo(it) diff --git a/compiler/fir/raw-fir/raw-fir.common/src/org/jetbrains/kotlin/fir/builder/ConversionUtils.kt b/compiler/fir/raw-fir/raw-fir.common/src/org/jetbrains/kotlin/fir/builder/ConversionUtils.kt index 95d811e888b..85c6430f3d3 100644 --- a/compiler/fir/raw-fir/raw-fir.common/src/org/jetbrains/kotlin/fir/builder/ConversionUtils.kt +++ b/compiler/fir/raw-fir/raw-fir.common/src/org/jetbrains/kotlin/fir/builder/ConversionUtils.kt @@ -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. */ @@ -313,9 +313,6 @@ val FirClassBuilder.ownerRegularOrAnonymousObjectSymbol else -> null } -val FirClassBuilder.ownerRegularClassTypeParametersCount - get() = if (this is FirRegularClassBuilder) typeParameters.size else null - fun FirPropertyBuilder.generateAccessorsByDelegate( delegateBuilder: FirWrappedDelegateExpressionBuilder?, moduleData: FirModuleData,