Analysis API: add validity assertions to diagnostics
This commit is contained in:
committed by
TeamCityServer
parent
9fd988d727
commit
7d4d035287
+8
-6
@@ -7,20 +7,22 @@ package org.jetbrains.kotlin.analysis.api.fir.diagnostics
|
|||||||
|
|
||||||
import com.intellij.openapi.util.TextRange
|
import com.intellij.openapi.util.TextRange
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
|
import org.jetbrains.kotlin.analysis.api.ValidityTokenOwner
|
||||||
import org.jetbrains.kotlin.diagnostics.Severity
|
import org.jetbrains.kotlin.diagnostics.Severity
|
||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirDefaultErrorMessages
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirDefaultErrorMessages
|
||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirDiagnostic
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirDiagnostic
|
||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirPsiDiagnostic
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirPsiDiagnostic
|
||||||
import org.jetbrains.kotlin.analysis.api.diagnostics.KtDiagnosticWithPsi
|
import org.jetbrains.kotlin.analysis.api.diagnostics.KtDiagnosticWithPsi
|
||||||
|
import org.jetbrains.kotlin.analysis.api.withValidityAssertion
|
||||||
|
|
||||||
internal interface KtAbstractFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
|
internal interface KtAbstractFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI>, ValidityTokenOwner {
|
||||||
val firDiagnostic: FirPsiDiagnostic
|
val firDiagnostic: FirPsiDiagnostic
|
||||||
|
|
||||||
override val factoryName: String
|
override val factoryName: String
|
||||||
get() = firDiagnostic.factory.name
|
get() = withValidityAssertion { firDiagnostic.factory.name }
|
||||||
|
|
||||||
override val defaultMessage: String
|
override val defaultMessage: String
|
||||||
get() {
|
get() = withValidityAssertion {
|
||||||
val diagnostic = firDiagnostic as FirDiagnostic
|
val diagnostic = firDiagnostic as FirDiagnostic
|
||||||
|
|
||||||
val firDiagnosticRenderer = FirDefaultErrorMessages.getRendererForDiagnostic(diagnostic)
|
val firDiagnosticRenderer = FirDefaultErrorMessages.getRendererForDiagnostic(diagnostic)
|
||||||
@@ -28,12 +30,12 @@ internal interface KtAbstractFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithP
|
|||||||
}
|
}
|
||||||
|
|
||||||
override val textRanges: Collection<TextRange>
|
override val textRanges: Collection<TextRange>
|
||||||
get() = firDiagnostic.textRanges
|
get() = withValidityAssertion { firDiagnostic.textRanges }
|
||||||
|
|
||||||
@Suppress("UNCHECKED_CAST")
|
@Suppress("UNCHECKED_CAST")
|
||||||
override val psi: PSI
|
override val psi: PSI
|
||||||
get() = firDiagnostic.psiElement as PSI
|
get() = withValidityAssertion { firDiagnostic.psiElement as PSI }
|
||||||
|
|
||||||
override val severity: Severity
|
override val severity: Severity
|
||||||
get() = firDiagnostic.severity
|
get() = withValidityAssertion { firDiagnostic.severity }
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user