[FIR] Get rid of type mismatch suppression during diagnostic casting

This commit is contained in:
Mikhail Glukhikh
2020-09-14 13:44:33 +03:00
parent 6fd3b011ca
commit 97ebf2867a
@@ -16,9 +16,9 @@
package org.jetbrains.kotlin.cli.jvm.compiler package org.jetbrains.kotlin.cli.jvm.compiler
import com.intellij.openapi.extensions.Extensions
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import com.intellij.openapi.vfs.* import com.intellij.openapi.vfs.*
import com.intellij.psi.PsiElement
import com.intellij.psi.PsiElementFinder import com.intellij.psi.PsiElementFinder
import com.intellij.psi.PsiJavaModule import com.intellij.psi.PsiJavaModule
import com.intellij.psi.search.DelegatingGlobalSearchScope import com.intellij.psi.search.DelegatingGlobalSearchScope
@@ -429,23 +429,24 @@ object KotlinToJVMBytecodeCompiler {
private fun FirDiagnostic<*>.toRegularDiagnostic(): Diagnostic { private fun FirDiagnostic<*>.toRegularDiagnostic(): Diagnostic {
val psiSource = element as FirPsiSourceElement<*> val psiSource = element as FirPsiSourceElement<*>
@Suppress("TYPE_MISMATCH") @Suppress("UNCHECKED_CAST")
when (this) { when (this) {
is FirSimpleDiagnostic -> is FirSimpleDiagnostic ->
return SimpleDiagnostic( return SimpleDiagnostic(
psiSource.psi, factory.psiDiagnosticFactory, severity psiSource.psi, factory.psiDiagnosticFactory as DiagnosticFactory0<PsiElement>, severity
) )
is FirDiagnosticWithParameters1<*, *> -> is FirDiagnosticWithParameters1<*, *> ->
return DiagnosticWithParameters1( return DiagnosticWithParameters1(
psiSource.psi, this.a, factory.psiDiagnosticFactory, severity psiSource.psi, this.a, factory.psiDiagnosticFactory as DiagnosticFactory1<PsiElement, Any>, severity
) )
is FirDiagnosticWithParameters2<*, *, *> -> is FirDiagnosticWithParameters2<*, *, *> ->
return DiagnosticWithParameters2( return DiagnosticWithParameters2(
psiSource.psi, this.a, this.b, factory.psiDiagnosticFactory, severity psiSource.psi, this.a, this.b, factory.psiDiagnosticFactory as DiagnosticFactory2<PsiElement, Any, Any>, severity
) )
is FirDiagnosticWithParameters3<*, *, *, *> -> is FirDiagnosticWithParameters3<*, *, *, *> ->
return DiagnosticWithParameters3( return DiagnosticWithParameters3(
psiSource.psi, this.a, this.b, this.c, factory.psiDiagnosticFactory, severity psiSource.psi, this.a, this.b, this.c,
factory.psiDiagnosticFactory as DiagnosticFactory3<PsiElement, Any, Any, Any>, severity
) )
} }
} }