[FIR] Fix ClassCastException when rendering ACTUAL_WITHOUT_EXPECT
#KT-57320
This commit is contained in:
committed by
Space Team
parent
3b09313192
commit
3b0c36da3f
+1
@@ -361,6 +361,7 @@ internal object FirToKtConversionCreator {
|
||||
FqName::class,
|
||||
ClassId::class,
|
||||
FirModuleData::class,
|
||||
ExpectActualCompatibility::class,
|
||||
ExpectActualCompatibility.Incompatible::class,
|
||||
DeprecationInfo::class,
|
||||
ApiVersion::class,
|
||||
|
||||
+4
-4
@@ -3215,8 +3215,8 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
|
||||
NoActualForExpectImpl(
|
||||
firSymbolBuilder.buildSymbol(firDiagnostic.a),
|
||||
firDiagnostic.b,
|
||||
firDiagnostic.c.mapKeys { (incompatible, _) ->
|
||||
incompatible
|
||||
firDiagnostic.c.mapKeys { (expectActualCompatibility, _) ->
|
||||
expectActualCompatibility
|
||||
}.mapValues { (_, collection) ->
|
||||
collection.map { firBasedSymbol ->
|
||||
firSymbolBuilder.buildSymbol(firBasedSymbol)
|
||||
@@ -3229,8 +3229,8 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
|
||||
add(FirErrors.ACTUAL_WITHOUT_EXPECT) { firDiagnostic ->
|
||||
ActualWithoutExpectImpl(
|
||||
firSymbolBuilder.buildSymbol(firDiagnostic.a),
|
||||
firDiagnostic.b.mapKeys { (incompatible, _) ->
|
||||
incompatible
|
||||
firDiagnostic.b.mapKeys { (expectActualCompatibility, _) ->
|
||||
expectActualCompatibility
|
||||
}.mapValues { (_, collection) ->
|
||||
collection.map { firBasedSymbol ->
|
||||
firSymbolBuilder.buildSymbol(firBasedSymbol)
|
||||
|
||||
+3
-2
@@ -80,6 +80,7 @@ import org.jetbrains.kotlin.psi.KtWhenEntry
|
||||
import org.jetbrains.kotlin.psi.KtWhenExpression
|
||||
import org.jetbrains.kotlin.resolve.ForbiddenNamedArgumentsTarget
|
||||
import org.jetbrains.kotlin.resolve.deprecation.DeprecationInfo
|
||||
import org.jetbrains.kotlin.resolve.multiplatform.ExpectActualCompatibility
|
||||
import org.jetbrains.kotlin.resolve.multiplatform.ExpectActualCompatibility.Incompatible
|
||||
import org.jetbrains.kotlin.types.Variance
|
||||
|
||||
@@ -2262,13 +2263,13 @@ sealed class KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
|
||||
override val diagnosticClass get() = NoActualForExpect::class
|
||||
abstract val declaration: KtSymbol
|
||||
abstract val module: FirModuleData
|
||||
abstract val compatibility: Map<Incompatible<FirBasedSymbol<*>>, List<KtSymbol>>
|
||||
abstract val compatibility: Map<ExpectActualCompatibility<FirBasedSymbol<*>>, List<KtSymbol>>
|
||||
}
|
||||
|
||||
abstract class ActualWithoutExpect : KtFirDiagnostic<KtNamedDeclaration>() {
|
||||
override val diagnosticClass get() = ActualWithoutExpect::class
|
||||
abstract val declaration: KtSymbol
|
||||
abstract val compatibility: Map<Incompatible<FirBasedSymbol<*>>, List<KtSymbol>>
|
||||
abstract val compatibility: Map<ExpectActualCompatibility<FirBasedSymbol<*>>, List<KtSymbol>>
|
||||
}
|
||||
|
||||
abstract class AmbiguousActuals : KtFirDiagnostic<KtNamedDeclaration>() {
|
||||
|
||||
+3
-2
@@ -81,6 +81,7 @@ import org.jetbrains.kotlin.psi.KtWhenEntry
|
||||
import org.jetbrains.kotlin.psi.KtWhenExpression
|
||||
import org.jetbrains.kotlin.resolve.ForbiddenNamedArgumentsTarget
|
||||
import org.jetbrains.kotlin.resolve.deprecation.DeprecationInfo
|
||||
import org.jetbrains.kotlin.resolve.multiplatform.ExpectActualCompatibility
|
||||
import org.jetbrains.kotlin.resolve.multiplatform.ExpectActualCompatibility.Incompatible
|
||||
import org.jetbrains.kotlin.types.Variance
|
||||
|
||||
@@ -2727,14 +2728,14 @@ internal class ExpectedFunctionSourceWithDefaultArgumentsNotFoundImpl(
|
||||
internal class NoActualForExpectImpl(
|
||||
override val declaration: KtSymbol,
|
||||
override val module: FirModuleData,
|
||||
override val compatibility: Map<Incompatible<FirBasedSymbol<*>>, List<KtSymbol>>,
|
||||
override val compatibility: Map<ExpectActualCompatibility<FirBasedSymbol<*>>, List<KtSymbol>>,
|
||||
override val firDiagnostic: KtPsiDiagnostic,
|
||||
override val token: KtLifetimeToken,
|
||||
) : KtFirDiagnostic.NoActualForExpect(), KtAbstractFirDiagnostic<KtNamedDeclaration>
|
||||
|
||||
internal class ActualWithoutExpectImpl(
|
||||
override val declaration: KtSymbol,
|
||||
override val compatibility: Map<Incompatible<FirBasedSymbol<*>>, List<KtSymbol>>,
|
||||
override val compatibility: Map<ExpectActualCompatibility<FirBasedSymbol<*>>, List<KtSymbol>>,
|
||||
override val firDiagnostic: KtPsiDiagnostic,
|
||||
override val token: KtLifetimeToken,
|
||||
) : KtFirDiagnostic.ActualWithoutExpect(), KtAbstractFirDiagnostic<KtNamedDeclaration>
|
||||
|
||||
Reference in New Issue
Block a user