[K2] Disallow named functions as expressions
^KT-62573 Fixed ^KT-59945 Fixed
This commit is contained in:
committed by
Space Team
parent
aaf7ccbebd
commit
f227447837
+12
@@ -3056,6 +3056,18 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirErrors.SINGLE_ANONYMOUS_FUNCTION_WITH_NAME.errorFactory) { firDiagnostic ->
|
||||
SingleAnonymousFunctionWithNameErrorImpl(
|
||||
firDiagnostic as KtPsiDiagnostic,
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirErrors.SINGLE_ANONYMOUS_FUNCTION_WITH_NAME.warningFactory) { firDiagnostic ->
|
||||
SingleAnonymousFunctionWithNameWarningImpl(
|
||||
firDiagnostic as KtPsiDiagnostic,
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirErrors.ANONYMOUS_FUNCTION_PARAMETER_WITH_DEFAULT_VALUE) { firDiagnostic ->
|
||||
AnonymousFunctionParameterWithDefaultValueImpl(
|
||||
firDiagnostic as KtPsiDiagnostic,
|
||||
|
||||
+8
@@ -2164,6 +2164,14 @@ sealed interface KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
|
||||
override val diagnosticClass get() = AnonymousFunctionWithName::class
|
||||
}
|
||||
|
||||
interface SingleAnonymousFunctionWithNameError : KtFirDiagnostic<KtFunction> {
|
||||
override val diagnosticClass get() = SingleAnonymousFunctionWithNameError::class
|
||||
}
|
||||
|
||||
interface SingleAnonymousFunctionWithNameWarning : KtFirDiagnostic<KtFunction> {
|
||||
override val diagnosticClass get() = SingleAnonymousFunctionWithNameWarning::class
|
||||
}
|
||||
|
||||
interface AnonymousFunctionParameterWithDefaultValue : KtFirDiagnostic<KtParameter> {
|
||||
override val diagnosticClass get() = AnonymousFunctionParameterWithDefaultValue::class
|
||||
}
|
||||
|
||||
+10
@@ -2592,6 +2592,16 @@ internal class AnonymousFunctionWithNameImpl(
|
||||
token: KtLifetimeToken,
|
||||
) : KtAbstractFirDiagnostic<KtFunction>(firDiagnostic, token), KtFirDiagnostic.AnonymousFunctionWithName
|
||||
|
||||
internal class SingleAnonymousFunctionWithNameErrorImpl(
|
||||
firDiagnostic: KtPsiDiagnostic,
|
||||
token: KtLifetimeToken,
|
||||
) : KtAbstractFirDiagnostic<KtFunction>(firDiagnostic, token), KtFirDiagnostic.SingleAnonymousFunctionWithNameError
|
||||
|
||||
internal class SingleAnonymousFunctionWithNameWarningImpl(
|
||||
firDiagnostic: KtPsiDiagnostic,
|
||||
token: KtLifetimeToken,
|
||||
) : KtAbstractFirDiagnostic<KtFunction>(firDiagnostic, token), KtFirDiagnostic.SingleAnonymousFunctionWithNameWarning
|
||||
|
||||
internal class AnonymousFunctionParameterWithDefaultValueImpl(
|
||||
firDiagnostic: KtPsiDiagnostic,
|
||||
token: KtLifetimeToken,
|
||||
|
||||
+6
@@ -9212,6 +9212,12 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia
|
||||
runTest("compiler/testData/diagnostics/tests/declarationChecks/kt2643MultiDeclInControlFlow.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("kt47245.kt")
|
||||
public void testKt47245() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/declarationChecks/kt47245.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("kt559.kt")
|
||||
public void testKt559() throws Exception {
|
||||
|
||||
+6
@@ -9212,6 +9212,12 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated
|
||||
runTest("compiler/testData/diagnostics/tests/declarationChecks/kt2643MultiDeclInControlFlow.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("kt47245.kt")
|
||||
public void testKt47245() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/declarationChecks/kt47245.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("kt559.kt")
|
||||
public void testKt559() throws Exception {
|
||||
|
||||
Reference in New Issue
Block a user