FIR IDE: add PSI type parameter to KtDiagnostic

This commit is contained in:
Ilya Kirillov
2021-02-02 21:18:05 +01:00
parent e008ad03a2
commit 79baffb69d
14 changed files with 359 additions and 559 deletions
@@ -85,7 +85,7 @@ abstract class KtAnalysisSession(final override val token: ValidityToken) : Vali
fun KtElement.getDiagnostics(): Collection<KtDiagnostic> = diagnosticProvider.getDiagnosticsForElement(this)
fun KtFile.collectDiagnosticsForFile(): Collection<KtDiagnosticWithPsi> = diagnosticProvider.collectDiagnosticsForFile(this)
fun KtFile.collectDiagnosticsForFile(): Collection<KtDiagnosticWithPsi<*>> = diagnosticProvider.collectDiagnosticsForFile(this)
fun KtSymbolWithKind.getContainingSymbol(): KtSymbolWithKind? = containingDeclarationProvider.getContainingDeclaration(this)
@@ -10,6 +10,6 @@ import org.jetbrains.kotlin.psi.KtElement
import org.jetbrains.kotlin.psi.KtFile
abstract class KtDiagnosticProvider : KtAnalysisSessionComponent() {
abstract fun getDiagnosticsForElement(element: KtElement): Collection<KtDiagnosticWithPsi>
abstract fun collectDiagnosticsForFile(ktFile: KtFile): Collection<KtDiagnosticWithPsi>
abstract fun getDiagnosticsForElement(element: KtElement): Collection<KtDiagnosticWithPsi<*>>
abstract fun collectDiagnosticsForFile(ktFile: KtFile): Collection<KtDiagnosticWithPsi<*>>
}
@@ -18,10 +18,10 @@ interface KtDiagnostic : ValidityTokenOwner {
val defaultMessage: String
}
interface KtDiagnosticWithPsi : KtDiagnostic {
val psi: PsiElement
interface KtDiagnosticWithPsi<out PSI: PsiElement> : KtDiagnostic {
val psi: PSI
val textRanges: Collection<TextRange>
val diagnosticClass: KClass<out KtDiagnosticWithPsi>
val diagnosticClass: KClass<out KtDiagnosticWithPsi<PSI>>
}
class KtNonBoundToPsiErrorDiagnostic(