[FIR] Report the use of inline on primary constructor parameters
^KT-59664 Fixed
This commit is contained in:
committed by
Space Team
parent
6c4f6907ea
commit
77feb86a85
+24
@@ -4544,6 +4544,18 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirErrors.DECLARATION_CANT_BE_INLINED_DEPRECATION.errorFactory) { firDiagnostic ->
|
||||
DeclarationCantBeInlinedDeprecationErrorImpl(
|
||||
firDiagnostic as KtPsiDiagnostic,
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirErrors.DECLARATION_CANT_BE_INLINED_DEPRECATION.warningFactory) { firDiagnostic ->
|
||||
DeclarationCantBeInlinedDeprecationWarningImpl(
|
||||
firDiagnostic as KtPsiDiagnostic,
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirErrors.OVERRIDE_BY_INLINE) { firDiagnostic ->
|
||||
OverrideByInlineImpl(
|
||||
firDiagnostic as KtPsiDiagnostic,
|
||||
@@ -4582,6 +4594,18 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirErrors.INLINE_PROPERTY_WITH_BACKING_FIELD_DEPRECATION.errorFactory) { firDiagnostic ->
|
||||
InlinePropertyWithBackingFieldDeprecationErrorImpl(
|
||||
firDiagnostic as KtPsiDiagnostic,
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirErrors.INLINE_PROPERTY_WITH_BACKING_FIELD_DEPRECATION.warningFactory) { firDiagnostic ->
|
||||
InlinePropertyWithBackingFieldDeprecationWarningImpl(
|
||||
firDiagnostic as KtPsiDiagnostic,
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirErrors.ILLEGAL_INLINE_PARAMETER_MODIFIER) { firDiagnostic ->
|
||||
IllegalInlineParameterModifierImpl(
|
||||
firDiagnostic as KtPsiDiagnostic,
|
||||
|
||||
+16
@@ -3173,6 +3173,14 @@ sealed interface KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
|
||||
override val diagnosticClass get() = DeclarationCantBeInlined::class
|
||||
}
|
||||
|
||||
interface DeclarationCantBeInlinedDeprecationError : KtFirDiagnostic<KtDeclaration> {
|
||||
override val diagnosticClass get() = DeclarationCantBeInlinedDeprecationError::class
|
||||
}
|
||||
|
||||
interface DeclarationCantBeInlinedDeprecationWarning : KtFirDiagnostic<KtDeclaration> {
|
||||
override val diagnosticClass get() = DeclarationCantBeInlinedDeprecationWarning::class
|
||||
}
|
||||
|
||||
interface OverrideByInline : KtFirDiagnostic<KtDeclaration> {
|
||||
override val diagnosticClass get() = OverrideByInline::class
|
||||
}
|
||||
@@ -3199,6 +3207,14 @@ sealed interface KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
|
||||
override val diagnosticClass get() = InlinePropertyWithBackingField::class
|
||||
}
|
||||
|
||||
interface InlinePropertyWithBackingFieldDeprecationError : KtFirDiagnostic<KtDeclaration> {
|
||||
override val diagnosticClass get() = InlinePropertyWithBackingFieldDeprecationError::class
|
||||
}
|
||||
|
||||
interface InlinePropertyWithBackingFieldDeprecationWarning : KtFirDiagnostic<KtDeclaration> {
|
||||
override val diagnosticClass get() = InlinePropertyWithBackingFieldDeprecationWarning::class
|
||||
}
|
||||
|
||||
interface IllegalInlineParameterModifier : KtFirDiagnostic<KtElement> {
|
||||
override val diagnosticClass get() = IllegalInlineParameterModifier::class
|
||||
}
|
||||
|
||||
+20
@@ -3826,6 +3826,16 @@ internal class DeclarationCantBeInlinedImpl(
|
||||
token: KtLifetimeToken,
|
||||
) : KtAbstractFirDiagnostic<KtDeclaration>(firDiagnostic, token), KtFirDiagnostic.DeclarationCantBeInlined
|
||||
|
||||
internal class DeclarationCantBeInlinedDeprecationErrorImpl(
|
||||
firDiagnostic: KtPsiDiagnostic,
|
||||
token: KtLifetimeToken,
|
||||
) : KtAbstractFirDiagnostic<KtDeclaration>(firDiagnostic, token), KtFirDiagnostic.DeclarationCantBeInlinedDeprecationError
|
||||
|
||||
internal class DeclarationCantBeInlinedDeprecationWarningImpl(
|
||||
firDiagnostic: KtPsiDiagnostic,
|
||||
token: KtLifetimeToken,
|
||||
) : KtAbstractFirDiagnostic<KtDeclaration>(firDiagnostic, token), KtFirDiagnostic.DeclarationCantBeInlinedDeprecationWarning
|
||||
|
||||
internal class OverrideByInlineImpl(
|
||||
firDiagnostic: KtPsiDiagnostic,
|
||||
token: KtLifetimeToken,
|
||||
@@ -3858,6 +3868,16 @@ internal class InlinePropertyWithBackingFieldImpl(
|
||||
token: KtLifetimeToken,
|
||||
) : KtAbstractFirDiagnostic<KtDeclaration>(firDiagnostic, token), KtFirDiagnostic.InlinePropertyWithBackingField
|
||||
|
||||
internal class InlinePropertyWithBackingFieldDeprecationErrorImpl(
|
||||
firDiagnostic: KtPsiDiagnostic,
|
||||
token: KtLifetimeToken,
|
||||
) : KtAbstractFirDiagnostic<KtDeclaration>(firDiagnostic, token), KtFirDiagnostic.InlinePropertyWithBackingFieldDeprecationError
|
||||
|
||||
internal class InlinePropertyWithBackingFieldDeprecationWarningImpl(
|
||||
firDiagnostic: KtPsiDiagnostic,
|
||||
token: KtLifetimeToken,
|
||||
) : KtAbstractFirDiagnostic<KtDeclaration>(firDiagnostic, token), KtFirDiagnostic.InlinePropertyWithBackingFieldDeprecationWarning
|
||||
|
||||
internal class IllegalInlineParameterModifierImpl(
|
||||
firDiagnostic: KtPsiDiagnostic,
|
||||
token: KtLifetimeToken,
|
||||
|
||||
+12
@@ -507,6 +507,18 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia
|
||||
runTest("compiler/testData/diagnostics/tests/initializedAfterRethrow.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("inlineConstructorParameter.kt")
|
||||
public void testInlineConstructorParameter() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/inlineConstructorParameter.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("inlineConstructorParameter_on.kt")
|
||||
public void testInlineConstructorParameter_on() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/inlineConstructorParameter_on.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("inlineDeprecationsOnImplicitCalls.kt")
|
||||
public void testInlineDeprecationsOnImplicitCalls() throws Exception {
|
||||
|
||||
+12
@@ -507,6 +507,18 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated
|
||||
runTest("compiler/testData/diagnostics/tests/initializedAfterRethrow.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("inlineConstructorParameter.kt")
|
||||
public void testInlineConstructorParameter() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/inlineConstructorParameter.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("inlineConstructorParameter_on.kt")
|
||||
public void testInlineConstructorParameter_on() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/inlineConstructorParameter_on.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("inlineDeprecationsOnImplicitCalls.kt")
|
||||
public void testInlineDeprecationsOnImplicitCalls() throws Exception {
|
||||
|
||||
Reference in New Issue
Block a user