[FIR] Use builder to create synthetic properties
This commit is contained in:
+7
-5
@@ -15,6 +15,7 @@ import org.jetbrains.kotlin.fir.declarations.builder.FirSimpleFunctionBuilder
|
||||
import org.jetbrains.kotlin.fir.declarations.builder.buildValueParameter
|
||||
import org.jetbrains.kotlin.fir.declarations.impl.*
|
||||
import org.jetbrains.kotlin.fir.declarations.synthetic.FirSyntheticProperty
|
||||
import org.jetbrains.kotlin.fir.declarations.synthetic.buildSyntheticProperty
|
||||
import org.jetbrains.kotlin.fir.expressions.FirConstKind
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.builder.buildConstExpression
|
||||
@@ -110,11 +111,12 @@ class JavaClassEnhancementScope(
|
||||
val enhancedFunctionSymbol = enhanceMethod(
|
||||
firElement.getter.delegate, accessorSymbol.accessorId, accessorSymbol.accessorId.callableName
|
||||
)
|
||||
val enhancedProperty = FirSyntheticProperty(
|
||||
session, name, FirAccessorSymbol(accessorSymbol.callableId, accessorSymbol.accessorId),
|
||||
enhancedFunctionSymbol.fir as FirSimpleFunction
|
||||
)
|
||||
return enhancedProperty.symbol
|
||||
return buildSyntheticProperty {
|
||||
session = this@JavaClassEnhancementScope.session
|
||||
this.name = name
|
||||
symbol = FirAccessorSymbol(accessorSymbol.callableId, accessorSymbol.accessorId)
|
||||
delegateGetter = enhancedFunctionSymbol.fir as FirSimpleFunction
|
||||
}.symbol
|
||||
}
|
||||
else -> {
|
||||
if (original is FirPropertySymbol || original is FirAccessorSymbol) return original
|
||||
|
||||
+6
-5
@@ -10,6 +10,7 @@ import org.jetbrains.kotlin.fir.declarations.*
|
||||
import org.jetbrains.kotlin.fir.declarations.builder.FirSimpleFunctionBuilder
|
||||
import org.jetbrains.kotlin.fir.declarations.builder.FirValueParameterBuilder
|
||||
import org.jetbrains.kotlin.fir.declarations.synthetic.FirSyntheticProperty
|
||||
import org.jetbrains.kotlin.fir.declarations.synthetic.buildSyntheticProperty
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.java.JavaTypeParameterStack
|
||||
import org.jetbrains.kotlin.fir.java.declarations.*
|
||||
@@ -66,15 +67,15 @@ class JavaClassUseSiteMemberScope(
|
||||
}
|
||||
}
|
||||
overrideCandidates += functionSymbol
|
||||
val accessorProperty = FirSyntheticProperty(
|
||||
session, syntheticPropertyName,
|
||||
return buildSyntheticProperty {
|
||||
session = this@JavaClassUseSiteMemberScope.session
|
||||
name = syntheticPropertyName
|
||||
symbol = FirAccessorSymbol(
|
||||
accessorId = functionSymbol.callableId,
|
||||
callableId = CallableId(functionSymbol.callableId.packageName, functionSymbol.callableId.className, syntheticPropertyName)
|
||||
),
|
||||
)
|
||||
delegateGetter = fir
|
||||
)
|
||||
return accessorProperty.symbol
|
||||
}.symbol
|
||||
}
|
||||
|
||||
private fun processAccessorFunctionsAndPropertiesByName(
|
||||
|
||||
Reference in New Issue
Block a user