FIR LT: extract syntax diagnostic info from error element

#KT-56701 fixed
This commit is contained in:
Ilya Chernikov
2023-02-15 18:52:09 +01:00
committed by Space Team
parent e39eb62e6e
commit 27db8ce1bb
8 changed files with 33 additions and 2 deletions
@@ -4931,4 +4931,11 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
token,
)
}
add(FirSyntaxErrors.SYNTAX_WITH_MESSAGE) { firDiagnostic ->
SyntaxWithMessageImpl(
firDiagnostic.a,
firDiagnostic as KtPsiDiagnostic,
token,
)
}
}
@@ -3428,4 +3428,9 @@ sealed class KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
override val diagnosticClass get() = Syntax::class
}
abstract class SyntaxWithMessage : KtFirDiagnostic<PsiElement>() {
override val diagnosticClass get() = SyntaxWithMessage::class
abstract val message: String
}
}
@@ -4150,3 +4150,9 @@ internal class SyntaxImpl(
override val token: KtLifetimeToken,
) : KtFirDiagnostic.Syntax(), KtAbstractFirDiagnostic<PsiElement>
internal class SyntaxWithMessageImpl(
override val message: String,
override val firDiagnostic: KtPsiDiagnostic,
override val token: KtLifetimeToken,
) : KtFirDiagnostic.SyntaxWithMessage(), KtAbstractFirDiagnostic<PsiElement>