FIR IDE: use WhenMissingCase in NoElseInWhen diagnostic
This commit is contained in:
+1
-5
@@ -163,11 +163,6 @@ private object FirToKtConversionCreator {
|
||||
KtVariableSymbol::class.createType(),
|
||||
importsToAdd = listOf("org.jetbrains.kotlin.fir.declarations.FirProperty")
|
||||
),
|
||||
WhenMissingCase::class to HLFunctionCallConversion(
|
||||
"""TODO("WhenMissingCase conversion is not supported yet")""",
|
||||
Any::class.createType(),
|
||||
importsToAdd = listOf("org.jetbrains.kotlin.diagnostics.WhenMissingCase")
|
||||
),
|
||||
)
|
||||
|
||||
private val allowedTypesWithoutTypeParams = setOf(
|
||||
@@ -177,6 +172,7 @@ private object FirToKtConversionCreator {
|
||||
EventOccurrencesRange::class,
|
||||
KtModifierKeywordToken::class,
|
||||
Visibility::class,
|
||||
WhenMissingCase::class,
|
||||
)
|
||||
|
||||
private val KType.kClass: KClass<*>
|
||||
|
||||
+1
-2
@@ -7,7 +7,6 @@ package org.jetbrains.kotlin.idea.frontend.api.fir.diagnostics
|
||||
|
||||
import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.PsiTypeElement
|
||||
import org.jetbrains.kotlin.diagnostics.WhenMissingCase
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirPsiDiagnostic
|
||||
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
||||
@@ -1058,7 +1057,7 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
|
||||
add(FirErrors.NO_ELSE_IN_WHEN) { firDiagnostic ->
|
||||
NoElseInWhenImpl(
|
||||
firDiagnostic.a.map { whenMissingCase ->
|
||||
TODO("WhenMissingCase conversion is not supported yet")
|
||||
whenMissingCase
|
||||
},
|
||||
firDiagnostic as FirPsiDiagnostic<*>,
|
||||
token,
|
||||
|
||||
+2
-1
@@ -9,6 +9,7 @@ import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.PsiTypeElement
|
||||
import org.jetbrains.kotlin.contracts.description.EventOccurrencesRange
|
||||
import org.jetbrains.kotlin.descriptors.Visibility
|
||||
import org.jetbrains.kotlin.diagnostics.WhenMissingCase
|
||||
import org.jetbrains.kotlin.idea.frontend.api.diagnostics.KtDiagnosticWithPsi
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtCallableSymbol
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtClassLikeSymbol
|
||||
@@ -745,7 +746,7 @@ sealed class KtFirDiagnostic<PSI: PsiElement> : KtDiagnosticWithPsi<PSI> {
|
||||
|
||||
abstract class NoElseInWhen : KtFirDiagnostic<KtWhenExpression>() {
|
||||
override val diagnosticClass get() = NoElseInWhen::class
|
||||
abstract val missingWhenCases: List<Any>
|
||||
abstract val missingWhenCases: List<WhenMissingCase>
|
||||
}
|
||||
|
||||
abstract class InvalidIfAsExpression : KtFirDiagnostic<KtIfExpression>() {
|
||||
|
||||
+2
-1
@@ -9,6 +9,7 @@ import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.PsiTypeElement
|
||||
import org.jetbrains.kotlin.contracts.description.EventOccurrencesRange
|
||||
import org.jetbrains.kotlin.descriptors.Visibility
|
||||
import org.jetbrains.kotlin.diagnostics.WhenMissingCase
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirPsiDiagnostic
|
||||
import org.jetbrains.kotlin.idea.frontend.api.ValidityToken
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.weakRef
|
||||
@@ -1198,7 +1199,7 @@ internal class UnsafeOperatorCallImpl(
|
||||
}
|
||||
|
||||
internal class NoElseInWhenImpl(
|
||||
override val missingWhenCases: List<Any>,
|
||||
override val missingWhenCases: List<WhenMissingCase>,
|
||||
firDiagnostic: FirPsiDiagnostic<*>,
|
||||
override val token: ValidityToken,
|
||||
) : KtFirDiagnostic.NoElseInWhen(), KtAbstractFirDiagnostic<KtWhenExpression> {
|
||||
|
||||
Reference in New Issue
Block a user