From 97ebf2867a391006b13673d18a835c43ebe18754 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Mon, 14 Sep 2020 13:44:33 +0300 Subject: [PATCH] [FIR] Get rid of type mismatch suppression during diagnostic casting --- .../cli/jvm/compiler/KotlinToJVMBytecodeCompiler.kt | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.kt index 2896fe63f49..3b810d96d07 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.kt +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.kt @@ -16,9 +16,9 @@ package org.jetbrains.kotlin.cli.jvm.compiler -import com.intellij.openapi.extensions.Extensions import com.intellij.openapi.project.Project import com.intellij.openapi.vfs.* +import com.intellij.psi.PsiElement import com.intellij.psi.PsiElementFinder import com.intellij.psi.PsiJavaModule import com.intellij.psi.search.DelegatingGlobalSearchScope @@ -429,23 +429,24 @@ object KotlinToJVMBytecodeCompiler { private fun FirDiagnostic<*>.toRegularDiagnostic(): Diagnostic { val psiSource = element as FirPsiSourceElement<*> - @Suppress("TYPE_MISMATCH") + @Suppress("UNCHECKED_CAST") when (this) { is FirSimpleDiagnostic -> return SimpleDiagnostic( - psiSource.psi, factory.psiDiagnosticFactory, severity + psiSource.psi, factory.psiDiagnosticFactory as DiagnosticFactory0, severity ) is FirDiagnosticWithParameters1<*, *> -> return DiagnosticWithParameters1( - psiSource.psi, this.a, factory.psiDiagnosticFactory, severity + psiSource.psi, this.a, factory.psiDiagnosticFactory as DiagnosticFactory1, severity ) is FirDiagnosticWithParameters2<*, *, *> -> return DiagnosticWithParameters2( - psiSource.psi, this.a, this.b, factory.psiDiagnosticFactory, severity + psiSource.psi, this.a, this.b, factory.psiDiagnosticFactory as DiagnosticFactory2, severity ) is FirDiagnosticWithParameters3<*, *, *, *> -> 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, severity ) } }