[FIR] Merge FirPropertyFieldDeclarationSymbol into FirBackingFieldSymbol

This commit is contained in:
Nikolay Lunyak
2021-08-13 22:04:20 +03:00
committed by TeamCityServer
parent 1291f9e460
commit aefd6c30ad
32 changed files with 372 additions and 78 deletions
@@ -286,7 +286,7 @@ private object FirToKtConversionCreator {
importsToAdd = listOf("org.jetbrains.kotlin.fir.declarations.FirProperty")
),
FirBackingFieldSymbol::class to HLFunctionCallConversion(
"firSymbolBuilder.variableLikeBuilder.buildVariableSymbol({0}.fir)",
"firSymbolBuilder.variableLikeBuilder.buildVariableSymbol({0}.fir.propertySymbol.fir)",
KtVariableSymbol::class.createType(),
importsToAdd = listOf("org.jetbrains.kotlin.fir.declarations.FirProperty")
),
@@ -290,11 +290,14 @@ internal class KtSymbolByFirBuilder private constructor(
}
fun buildBackingFieldSymbol(fir: FirBackingFieldSymbol): KtFirBackingFieldSymbol {
return backingFieldCache.cache(fir) { KtFirBackingFieldSymbol(fir.fir, resolveState, token, this@KtSymbolByFirBuilder) }
return backingFieldCache.cache(fir) {
KtFirBackingFieldSymbol(fir.fir.propertySymbol.fir, resolveState, token, this@KtSymbolByFirBuilder)
}
}
fun buildBackingFieldSymbolByProperty(fir: FirProperty): KtFirBackingFieldSymbol {
val backingFieldSymbol = fir.backingFieldSymbol
val backingFieldSymbol = fir.backingField?.symbol
?: error("FirProperty backingField is null")
return buildBackingFieldSymbol(backingFieldSymbol)
}
@@ -2719,14 +2719,14 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
}
add(FirErrors.VAL_REASSIGNMENT_VIA_BACKING_FIELD.errorFactory) { firDiagnostic ->
ValReassignmentViaBackingFieldErrorImpl(
firSymbolBuilder.variableLikeBuilder.buildVariableSymbol(firDiagnostic.a.fir),
firSymbolBuilder.variableLikeBuilder.buildVariableSymbol(firDiagnostic.a.fir.propertySymbol.fir),
firDiagnostic as FirPsiDiagnostic,
token,
)
}
add(FirErrors.VAL_REASSIGNMENT_VIA_BACKING_FIELD.warningFactory) { firDiagnostic ->
ValReassignmentViaBackingFieldWarningImpl(
firSymbolBuilder.variableLikeBuilder.buildVariableSymbol(firDiagnostic.a.fir),
firSymbolBuilder.variableLikeBuilder.buildVariableSymbol(firDiagnostic.a.fir.propertySymbol.fir),
firDiagnostic as FirPsiDiagnostic,
token,
)