[FIR] Refactor DiagnosticKind.Syntax into ConeSyntaxDiagnostic

#KT-58469
This commit is contained in:
Kirill Rakhman
2023-05-08 10:29:39 +02:00
committed by Space Team
parent 7a9021aa6b
commit 93ee4d7ce7
11 changed files with 76 additions and 76 deletions
@@ -16,11 +16,8 @@ import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
import org.jetbrains.kotlin.fir.declarations.FirVariable
import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic
import org.jetbrains.kotlin.fir.diagnostics.ConeSimpleDiagnostic
import org.jetbrains.kotlin.fir.diagnostics.DiagnosticKind
import org.jetbrains.kotlin.fir.diagnostics.ConeSyntaxDiagnostic
import org.jetbrains.kotlin.fir.expressions.*
import org.jetbrains.kotlin.fir.references.FirErrorNamedReference
import org.jetbrains.kotlin.fir.references.FirResolvedErrorReference
import org.jetbrains.kotlin.fir.references.isError
import org.jetbrains.kotlin.fir.references.toResolvedVariableSymbol
import org.jetbrains.kotlin.fir.resolve.diagnostics.*
@@ -97,7 +94,7 @@ object FirDestructuringDeclarationChecker : FirPropertyChecker() {
val needToReport =
when (initializer) {
null -> true
is FirErrorExpression -> (initializer.diagnostic as? ConeSimpleDiagnostic)?.kind == DiagnosticKind.Syntax
is FirErrorExpression -> initializer.diagnostic is ConeSyntaxDiagnostic
else -> false
}
if (needToReport) {
@@ -100,9 +100,10 @@ private fun ConeDiagnostic.toKtDiagnostic(
is ConeNoTypeArgumentsOnRhsError ->
FirErrors.NO_TYPE_ARGUMENTS_ON_RHS.createOn(qualifiedAccessSource ?: source, this.desiredCount, this.symbol)
is ConeSyntaxDiagnostic -> FirSyntaxErrors.SYNTAX.createOn(qualifiedAccessSource ?: source, reason)
is ConeSimpleDiagnostic -> when {
source.kind is KtFakeSourceElementKind && source.kind != KtFakeSourceElementKind.ReferenceInAtomicQualifiedAccess -> null
kind == DiagnosticKind.Syntax -> FirSyntaxErrors.SYNTAX.createOn(qualifiedAccessSource ?: source, reason)
else -> this.getFactory(source).createOn(qualifiedAccessSource ?: source)
}
@@ -534,7 +535,6 @@ private fun ConeSimpleDiagnostic.getFactory(source: KtSourceElement): KtDiagnost
DiagnosticKind.UnresolvedSupertype,
DiagnosticKind.UnresolvedExpandedType,
DiagnosticKind.Other -> FirErrors.OTHER_ERROR
DiagnosticKind.Syntax -> error("Must not be called on `Syntax` because a message is required.")
}
}