[FIR] Prohibit expect class members with default values actualized
...by fake-override. It is error without deprecation cycle because `expect` and `actual` classes are still in Beta and expected impact of change is negligible. ^KT-62036 Fixed
This commit is contained in:
committed by
Space Team
parent
02680442a0
commit
81fd9a679d
+10
@@ -3628,6 +3628,16 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirErrors.DEFAULT_ARGUMENTS_IN_EXPECT_ACTUALIZED_BY_FAKE_OVERRIDE) { firDiagnostic ->
|
||||
DefaultArgumentsInExpectActualizedByFakeOverrideImpl(
|
||||
firSymbolBuilder.classifierBuilder.buildClassLikeSymbol(firDiagnostic.a),
|
||||
firDiagnostic.b.map { firNamedFunctionSymbol ->
|
||||
firSymbolBuilder.functionLikeBuilder.buildFunctionSymbol(firNamedFunctionSymbol)
|
||||
},
|
||||
firDiagnostic as KtPsiDiagnostic,
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirErrors.EXPECTED_FUNCTION_SOURCE_WITH_DEFAULT_ARGUMENTS_NOT_FOUND) { firDiagnostic ->
|
||||
ExpectedFunctionSourceWithDefaultArgumentsNotFoundImpl(
|
||||
firDiagnostic as KtPsiDiagnostic,
|
||||
|
||||
+6
@@ -2548,6 +2548,12 @@ sealed interface KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
|
||||
val members: List<KtCallableSymbol>
|
||||
}
|
||||
|
||||
interface DefaultArgumentsInExpectActualizedByFakeOverride : KtFirDiagnostic<KtClass> {
|
||||
override val diagnosticClass get() = DefaultArgumentsInExpectActualizedByFakeOverride::class
|
||||
val expectClassSymbol: KtClassLikeSymbol
|
||||
val members: List<KtFunctionLikeSymbol>
|
||||
}
|
||||
|
||||
interface ExpectedFunctionSourceWithDefaultArgumentsNotFound : KtFirDiagnostic<PsiElement> {
|
||||
override val diagnosticClass get() = ExpectedFunctionSourceWithDefaultArgumentsNotFound::class
|
||||
}
|
||||
|
||||
+7
@@ -3069,6 +3069,13 @@ internal class DefaultArgumentsInExpectWithActualTypealiasImpl(
|
||||
token: KtLifetimeToken,
|
||||
) : KtAbstractFirDiagnostic<KtTypeAlias>(firDiagnostic, token), KtFirDiagnostic.DefaultArgumentsInExpectWithActualTypealias
|
||||
|
||||
internal class DefaultArgumentsInExpectActualizedByFakeOverrideImpl(
|
||||
override val expectClassSymbol: KtClassLikeSymbol,
|
||||
override val members: List<KtFunctionLikeSymbol>,
|
||||
firDiagnostic: KtPsiDiagnostic,
|
||||
token: KtLifetimeToken,
|
||||
) : KtAbstractFirDiagnostic<KtClass>(firDiagnostic, token), KtFirDiagnostic.DefaultArgumentsInExpectActualizedByFakeOverride
|
||||
|
||||
internal class ExpectedFunctionSourceWithDefaultArgumentsNotFoundImpl(
|
||||
firDiagnostic: KtPsiDiagnostic,
|
||||
token: KtLifetimeToken,
|
||||
|
||||
Reference in New Issue
Block a user