[FIR] Introduce FirAssignExpressionAltererExtension
This extension can be used to override resolution of assign statements with custom statement
This commit is contained in:
committed by
teamcity
parent
42b1621b4b
commit
bb38690273
+9
@@ -363,6 +363,15 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirErrors.AMBIGUOUS_ALTERED_ASSIGN) { firDiagnostic ->
|
||||
AmbiguousAlteredAssignImpl(
|
||||
firDiagnostic.a.map { string ->
|
||||
string
|
||||
},
|
||||
firDiagnostic as KtPsiDiagnostic,
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirErrors.SUPER_IS_NOT_AN_EXPRESSION) { firDiagnostic ->
|
||||
SuperIsNotAnExpressionImpl(
|
||||
firDiagnostic as KtPsiDiagnostic,
|
||||
|
||||
+5
@@ -291,6 +291,11 @@ sealed class KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
|
||||
abstract val classSymbol: KtClassLikeSymbol
|
||||
}
|
||||
|
||||
abstract class AmbiguousAlteredAssign : KtFirDiagnostic<PsiElement>() {
|
||||
override val diagnosticClass get() = AmbiguousAlteredAssign::class
|
||||
abstract val altererNames: List<String?>
|
||||
}
|
||||
|
||||
abstract class SuperIsNotAnExpression : KtFirDiagnostic<PsiElement>() {
|
||||
override val diagnosticClass get() = SuperIsNotAnExpression::class
|
||||
}
|
||||
|
||||
+6
@@ -336,6 +336,12 @@ internal class ResolutionToClassifierImpl(
|
||||
override val token: KtLifetimeToken,
|
||||
) : KtFirDiagnostic.ResolutionToClassifier(), KtAbstractFirDiagnostic<PsiElement>
|
||||
|
||||
internal class AmbiguousAlteredAssignImpl(
|
||||
override val altererNames: List<String?>,
|
||||
override val firDiagnostic: KtPsiDiagnostic,
|
||||
override val token: KtLifetimeToken,
|
||||
) : KtFirDiagnostic.AmbiguousAlteredAssign(), KtAbstractFirDiagnostic<PsiElement>
|
||||
|
||||
internal class SuperIsNotAnExpressionImpl(
|
||||
override val firDiagnostic: KtPsiDiagnostic,
|
||||
override val token: KtLifetimeToken,
|
||||
|
||||
Reference in New Issue
Block a user