[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,
|
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 ->
|
add(FirErrors.OVERRIDE_BY_INLINE) { firDiagnostic ->
|
||||||
OverrideByInlineImpl(
|
OverrideByInlineImpl(
|
||||||
firDiagnostic as KtPsiDiagnostic,
|
firDiagnostic as KtPsiDiagnostic,
|
||||||
@@ -4582,6 +4594,18 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
|
|||||||
token,
|
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 ->
|
add(FirErrors.ILLEGAL_INLINE_PARAMETER_MODIFIER) { firDiagnostic ->
|
||||||
IllegalInlineParameterModifierImpl(
|
IllegalInlineParameterModifierImpl(
|
||||||
firDiagnostic as KtPsiDiagnostic,
|
firDiagnostic as KtPsiDiagnostic,
|
||||||
|
|||||||
+16
@@ -3173,6 +3173,14 @@ sealed interface KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
|
|||||||
override val diagnosticClass get() = DeclarationCantBeInlined::class
|
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> {
|
interface OverrideByInline : KtFirDiagnostic<KtDeclaration> {
|
||||||
override val diagnosticClass get() = OverrideByInline::class
|
override val diagnosticClass get() = OverrideByInline::class
|
||||||
}
|
}
|
||||||
@@ -3199,6 +3207,14 @@ sealed interface KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
|
|||||||
override val diagnosticClass get() = InlinePropertyWithBackingField::class
|
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> {
|
interface IllegalInlineParameterModifier : KtFirDiagnostic<KtElement> {
|
||||||
override val diagnosticClass get() = IllegalInlineParameterModifier::class
|
override val diagnosticClass get() = IllegalInlineParameterModifier::class
|
||||||
}
|
}
|
||||||
|
|||||||
+20
@@ -3826,6 +3826,16 @@ internal class DeclarationCantBeInlinedImpl(
|
|||||||
token: KtLifetimeToken,
|
token: KtLifetimeToken,
|
||||||
) : KtAbstractFirDiagnostic<KtDeclaration>(firDiagnostic, token), KtFirDiagnostic.DeclarationCantBeInlined
|
) : 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(
|
internal class OverrideByInlineImpl(
|
||||||
firDiagnostic: KtPsiDiagnostic,
|
firDiagnostic: KtPsiDiagnostic,
|
||||||
token: KtLifetimeToken,
|
token: KtLifetimeToken,
|
||||||
@@ -3858,6 +3868,16 @@ internal class InlinePropertyWithBackingFieldImpl(
|
|||||||
token: KtLifetimeToken,
|
token: KtLifetimeToken,
|
||||||
) : KtAbstractFirDiagnostic<KtDeclaration>(firDiagnostic, token), KtFirDiagnostic.InlinePropertyWithBackingField
|
) : 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(
|
internal class IllegalInlineParameterModifierImpl(
|
||||||
firDiagnostic: KtPsiDiagnostic,
|
firDiagnostic: KtPsiDiagnostic,
|
||||||
token: KtLifetimeToken,
|
token: KtLifetimeToken,
|
||||||
|
|||||||
+12
@@ -507,6 +507,18 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia
|
|||||||
runTest("compiler/testData/diagnostics/tests/initializedAfterRethrow.kt");
|
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
|
@Test
|
||||||
@TestMetadata("inlineDeprecationsOnImplicitCalls.kt")
|
@TestMetadata("inlineDeprecationsOnImplicitCalls.kt")
|
||||||
public void testInlineDeprecationsOnImplicitCalls() throws Exception {
|
public void testInlineDeprecationsOnImplicitCalls() throws Exception {
|
||||||
|
|||||||
+12
@@ -507,6 +507,18 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated
|
|||||||
runTest("compiler/testData/diagnostics/tests/initializedAfterRethrow.kt");
|
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
|
@Test
|
||||||
@TestMetadata("inlineDeprecationsOnImplicitCalls.kt")
|
@TestMetadata("inlineDeprecationsOnImplicitCalls.kt")
|
||||||
public void testInlineDeprecationsOnImplicitCalls() throws Exception {
|
public void testInlineDeprecationsOnImplicitCalls() throws Exception {
|
||||||
|
|||||||
+12
@@ -507,6 +507,18 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir
|
|||||||
runTest("compiler/testData/diagnostics/tests/initializedAfterRethrow.kt");
|
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
|
@Test
|
||||||
@TestMetadata("inlineDeprecationsOnImplicitCalls.kt")
|
@TestMetadata("inlineDeprecationsOnImplicitCalls.kt")
|
||||||
public void testInlineDeprecationsOnImplicitCalls() throws Exception {
|
public void testInlineDeprecationsOnImplicitCalls() throws Exception {
|
||||||
|
|||||||
+12
@@ -507,6 +507,18 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia
|
|||||||
runTest("compiler/testData/diagnostics/tests/initializedAfterRethrow.kt");
|
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
|
@Test
|
||||||
@TestMetadata("inlineDeprecationsOnImplicitCalls.kt")
|
@TestMetadata("inlineDeprecationsOnImplicitCalls.kt")
|
||||||
public void testInlineDeprecationsOnImplicitCalls() throws Exception {
|
public void testInlineDeprecationsOnImplicitCalls() throws Exception {
|
||||||
|
|||||||
+8
-1
@@ -20,7 +20,6 @@ import org.jetbrains.kotlin.diagnostics.WhenMissingCase
|
|||||||
import org.jetbrains.kotlin.fir.FirModuleData
|
import org.jetbrains.kotlin.fir.FirModuleData
|
||||||
import org.jetbrains.kotlin.fir.checkers.generator.diagnostics.model.*
|
import org.jetbrains.kotlin.fir.checkers.generator.diagnostics.model.*
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirFunction
|
import org.jetbrains.kotlin.fir.declarations.FirFunction
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirTypeAlias
|
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
|
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||||
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
||||||
@@ -1600,6 +1599,10 @@ object DIAGNOSTICS_LIST : DiagnosticList("FirErrors") {
|
|||||||
}
|
}
|
||||||
|
|
||||||
val DECLARATION_CANT_BE_INLINED by error<KtDeclaration>(PositioningStrategy.INLINE_FUN_MODIFIER)
|
val DECLARATION_CANT_BE_INLINED by error<KtDeclaration>(PositioningStrategy.INLINE_FUN_MODIFIER)
|
||||||
|
val DECLARATION_CANT_BE_INLINED_DEPRECATION by deprecationError<KtDeclaration>(
|
||||||
|
LanguageFeature.ProhibitInlineModifierOnPrimaryConstructorParameters,
|
||||||
|
PositioningStrategy.INLINE_FUN_MODIFIER,
|
||||||
|
)
|
||||||
|
|
||||||
val OVERRIDE_BY_INLINE by warning<KtDeclaration>(PositioningStrategy.DECLARATION_SIGNATURE)
|
val OVERRIDE_BY_INLINE by warning<KtDeclaration>(PositioningStrategy.DECLARATION_SIGNATURE)
|
||||||
|
|
||||||
@@ -1616,6 +1619,10 @@ object DIAGNOSTICS_LIST : DiagnosticList("FirErrors") {
|
|||||||
val REIFIED_TYPE_PARAMETER_IN_OVERRIDE by error<KtElement>(PositioningStrategy.REIFIED_MODIFIER)
|
val REIFIED_TYPE_PARAMETER_IN_OVERRIDE by error<KtElement>(PositioningStrategy.REIFIED_MODIFIER)
|
||||||
|
|
||||||
val INLINE_PROPERTY_WITH_BACKING_FIELD by error<KtDeclaration>(PositioningStrategy.DECLARATION_SIGNATURE)
|
val INLINE_PROPERTY_WITH_BACKING_FIELD by error<KtDeclaration>(PositioningStrategy.DECLARATION_SIGNATURE)
|
||||||
|
val INLINE_PROPERTY_WITH_BACKING_FIELD_DEPRECATION by deprecationError<KtDeclaration>(
|
||||||
|
LanguageFeature.ProhibitInlineModifierOnPrimaryConstructorParameters,
|
||||||
|
PositioningStrategy.DECLARATION_SIGNATURE,
|
||||||
|
)
|
||||||
|
|
||||||
val ILLEGAL_INLINE_PARAMETER_MODIFIER by error<KtElement>(PositioningStrategy.INLINE_PARAMETER_MODIFIER)
|
val ILLEGAL_INLINE_PARAMETER_MODIFIER by error<KtElement>(PositioningStrategy.INLINE_PARAMETER_MODIFIER)
|
||||||
|
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ import org.jetbrains.kotlin.config.LanguageFeature.ProhibitAssigningSingleElemen
|
|||||||
import org.jetbrains.kotlin.config.LanguageFeature.ProhibitConfusingSyntaxInWhenBranches
|
import org.jetbrains.kotlin.config.LanguageFeature.ProhibitConfusingSyntaxInWhenBranches
|
||||||
import org.jetbrains.kotlin.config.LanguageFeature.ProhibitCyclesInAnnotations
|
import org.jetbrains.kotlin.config.LanguageFeature.ProhibitCyclesInAnnotations
|
||||||
import org.jetbrains.kotlin.config.LanguageFeature.ProhibitImplementingVarByInheritedVal
|
import org.jetbrains.kotlin.config.LanguageFeature.ProhibitImplementingVarByInheritedVal
|
||||||
|
import org.jetbrains.kotlin.config.LanguageFeature.ProhibitInlineModifierOnPrimaryConstructorParameters
|
||||||
import org.jetbrains.kotlin.config.LanguageFeature.ProhibitInvisibleAbstractMethodsInSuperclasses
|
import org.jetbrains.kotlin.config.LanguageFeature.ProhibitInvisibleAbstractMethodsInSuperclasses
|
||||||
import org.jetbrains.kotlin.config.LanguageFeature.ProhibitNonReifiedArraysAsReifiedTypeArguments
|
import org.jetbrains.kotlin.config.LanguageFeature.ProhibitNonReifiedArraysAsReifiedTypeArguments
|
||||||
import org.jetbrains.kotlin.config.LanguageFeature.ProhibitScriptTopLevelInnerClasses
|
import org.jetbrains.kotlin.config.LanguageFeature.ProhibitScriptTopLevelInnerClasses
|
||||||
@@ -804,12 +805,14 @@ object FirErrors {
|
|||||||
val PRIVATE_CLASS_MEMBER_FROM_INLINE by error2<KtElement, FirBasedSymbol<*>, FirBasedSymbol<*>>(SourceElementPositioningStrategies.REFERENCE_BY_QUALIFIED)
|
val PRIVATE_CLASS_MEMBER_FROM_INLINE by error2<KtElement, FirBasedSymbol<*>, FirBasedSymbol<*>>(SourceElementPositioningStrategies.REFERENCE_BY_QUALIFIED)
|
||||||
val SUPER_CALL_FROM_PUBLIC_INLINE by error1<KtElement, FirBasedSymbol<*>>(SourceElementPositioningStrategies.REFERENCE_BY_QUALIFIED)
|
val SUPER_CALL_FROM_PUBLIC_INLINE by error1<KtElement, FirBasedSymbol<*>>(SourceElementPositioningStrategies.REFERENCE_BY_QUALIFIED)
|
||||||
val DECLARATION_CANT_BE_INLINED by error0<KtDeclaration>(SourceElementPositioningStrategies.INLINE_FUN_MODIFIER)
|
val DECLARATION_CANT_BE_INLINED by error0<KtDeclaration>(SourceElementPositioningStrategies.INLINE_FUN_MODIFIER)
|
||||||
|
val DECLARATION_CANT_BE_INLINED_DEPRECATION by deprecationError0<KtDeclaration>(ProhibitInlineModifierOnPrimaryConstructorParameters, SourceElementPositioningStrategies.INLINE_FUN_MODIFIER)
|
||||||
val OVERRIDE_BY_INLINE by warning0<KtDeclaration>(SourceElementPositioningStrategies.DECLARATION_SIGNATURE)
|
val OVERRIDE_BY_INLINE by warning0<KtDeclaration>(SourceElementPositioningStrategies.DECLARATION_SIGNATURE)
|
||||||
val NON_INTERNAL_PUBLISHED_API by error0<KtElement>()
|
val NON_INTERNAL_PUBLISHED_API by error0<KtElement>()
|
||||||
val INVALID_DEFAULT_FUNCTIONAL_PARAMETER_FOR_INLINE by error1<KtElement, FirValueParameterSymbol>()
|
val INVALID_DEFAULT_FUNCTIONAL_PARAMETER_FOR_INLINE by error1<KtElement, FirValueParameterSymbol>()
|
||||||
val NOT_SUPPORTED_INLINE_PARAMETER_IN_INLINE_PARAMETER_DEFAULT_VALUE by error1<KtElement, FirValueParameterSymbol>()
|
val NOT_SUPPORTED_INLINE_PARAMETER_IN_INLINE_PARAMETER_DEFAULT_VALUE by error1<KtElement, FirValueParameterSymbol>()
|
||||||
val REIFIED_TYPE_PARAMETER_IN_OVERRIDE by error0<KtElement>(SourceElementPositioningStrategies.REIFIED_MODIFIER)
|
val REIFIED_TYPE_PARAMETER_IN_OVERRIDE by error0<KtElement>(SourceElementPositioningStrategies.REIFIED_MODIFIER)
|
||||||
val INLINE_PROPERTY_WITH_BACKING_FIELD by error0<KtDeclaration>(SourceElementPositioningStrategies.DECLARATION_SIGNATURE)
|
val INLINE_PROPERTY_WITH_BACKING_FIELD by error0<KtDeclaration>(SourceElementPositioningStrategies.DECLARATION_SIGNATURE)
|
||||||
|
val INLINE_PROPERTY_WITH_BACKING_FIELD_DEPRECATION by deprecationError0<KtDeclaration>(ProhibitInlineModifierOnPrimaryConstructorParameters, SourceElementPositioningStrategies.DECLARATION_SIGNATURE)
|
||||||
val ILLEGAL_INLINE_PARAMETER_MODIFIER by error0<KtElement>(SourceElementPositioningStrategies.INLINE_PARAMETER_MODIFIER)
|
val ILLEGAL_INLINE_PARAMETER_MODIFIER by error0<KtElement>(SourceElementPositioningStrategies.INLINE_PARAMETER_MODIFIER)
|
||||||
val INLINE_SUSPEND_FUNCTION_TYPE_UNSUPPORTED by error0<KtParameter>()
|
val INLINE_SUSPEND_FUNCTION_TYPE_UNSUPPORTED by error0<KtParameter>()
|
||||||
val INEFFICIENT_EQUALS_OVERRIDING_IN_VALUE_CLASS by warning1<KtNamedFunction, ConeKotlinType>(SourceElementPositioningStrategies.DECLARATION_NAME)
|
val INEFFICIENT_EQUALS_OVERRIDING_IN_VALUE_CLASS by warning1<KtNamedFunction, ConeKotlinType>(SourceElementPositioningStrategies.DECLARATION_NAME)
|
||||||
|
|||||||
+5
-1
@@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.fir.analysis.checkers.declaration
|
package org.jetbrains.kotlin.fir.analysis.checkers.declaration
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.KtFakeSourceElementKind
|
||||||
import org.jetbrains.kotlin.KtSourceElement
|
import org.jetbrains.kotlin.KtSourceElement
|
||||||
import org.jetbrains.kotlin.builtins.StandardNames.BACKING_FIELD
|
import org.jetbrains.kotlin.builtins.StandardNames.BACKING_FIELD
|
||||||
import org.jetbrains.kotlin.builtins.functions.isSuspendOrKSuspendFunction
|
import org.jetbrains.kotlin.builtins.functions.isSuspendOrKSuspendFunction
|
||||||
@@ -443,7 +444,10 @@ object FirInlineDeclarationChecker : FirFunctionChecker() {
|
|||||||
if (effectiveVisibility == EffectiveVisibility.PrivateInClass) return true
|
if (effectiveVisibility == EffectiveVisibility.PrivateInClass) return true
|
||||||
|
|
||||||
if (!declaration.isEffectivelyFinal(context)) {
|
if (!declaration.isEffectivelyFinal(context)) {
|
||||||
reporter.reportOn(declaration.source, FirErrors.DECLARATION_CANT_BE_INLINED, context)
|
// For primary constructor parameters there's INLINE_PROPERTY_WITH_BACKING_FIELD already
|
||||||
|
if (declaration.source?.kind != KtFakeSourceElementKind.PropertyFromParameter) {
|
||||||
|
reporter.reportOn(declaration.source, FirErrors.DECLARATION_CANT_BE_INLINED, context)
|
||||||
|
}
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
|
|||||||
+9
-1
@@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.fir.analysis.checkers.declaration
|
package org.jetbrains.kotlin.fir.analysis.checkers.declaration
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.KtFakeSourceElementKind
|
||||||
import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext
|
import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext
|
||||||
import org.jetbrains.kotlin.diagnostics.DiagnosticReporter
|
import org.jetbrains.kotlin.diagnostics.DiagnosticReporter
|
||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
||||||
@@ -20,7 +21,14 @@ object FirInlinePropertyChecker : FirPropertyChecker() {
|
|||||||
FirInlineDeclarationChecker.checkCallableDeclaration(declaration, context, reporter)
|
FirInlineDeclarationChecker.checkCallableDeclaration(declaration, context, reporter)
|
||||||
|
|
||||||
if (declaration.hasBackingField || declaration.delegate != null) {
|
if (declaration.hasBackingField || declaration.delegate != null) {
|
||||||
reporter.reportOn(declaration.source, FirErrors.INLINE_PROPERTY_WITH_BACKING_FIELD, context)
|
when (declaration.source?.kind) {
|
||||||
|
KtFakeSourceElementKind.PropertyFromParameter -> reporter.reportOn(
|
||||||
|
declaration.source, FirErrors.INLINE_PROPERTY_WITH_BACKING_FIELD_DEPRECATION, context
|
||||||
|
)
|
||||||
|
else -> reporter.reportOn(
|
||||||
|
declaration.source, FirErrors.INLINE_PROPERTY_WITH_BACKING_FIELD, context
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+7
@@ -158,6 +158,7 @@ import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.DATA_CLASS_VARARG
|
|||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.DATA_CLASS_WITHOUT_PARAMETERS
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.DATA_CLASS_WITHOUT_PARAMETERS
|
||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.DATA_OBJECT_CUSTOM_EQUALS_OR_HASH_CODE
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.DATA_OBJECT_CUSTOM_EQUALS_OR_HASH_CODE
|
||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.DECLARATION_CANT_BE_INLINED
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.DECLARATION_CANT_BE_INLINED
|
||||||
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.DECLARATION_CANT_BE_INLINED_DEPRECATION
|
||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.DEFAULT_ARGUMENTS_IN_EXPECT_WITH_ACTUAL_TYPEALIAS
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.DEFAULT_ARGUMENTS_IN_EXPECT_WITH_ACTUAL_TYPEALIAS
|
||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.DEFAULT_VALUE_NOT_ALLOWED_IN_OVERRIDE
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.DEFAULT_VALUE_NOT_ALLOWED_IN_OVERRIDE
|
||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.DEFINITELY_NON_NULLABLE_AS_REIFIED
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.DEFINITELY_NON_NULLABLE_AS_REIFIED
|
||||||
@@ -314,6 +315,7 @@ import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.INITIALIZER_REQUI
|
|||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.INITIALIZER_TYPE_MISMATCH
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.INITIALIZER_TYPE_MISMATCH
|
||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.INLINE_CLASS_CONSTRUCTOR_WRONG_PARAMETERS_SIZE
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.INLINE_CLASS_CONSTRUCTOR_WRONG_PARAMETERS_SIZE
|
||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.INLINE_PROPERTY_WITH_BACKING_FIELD
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.INLINE_PROPERTY_WITH_BACKING_FIELD
|
||||||
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.INLINE_PROPERTY_WITH_BACKING_FIELD_DEPRECATION
|
||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.INLINE_SUSPEND_FUNCTION_TYPE_UNSUPPORTED
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.INLINE_SUSPEND_FUNCTION_TYPE_UNSUPPORTED
|
||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.INNER_CLASS_CONSTRUCTOR_NO_RECEIVER
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.INNER_CLASS_CONSTRUCTOR_NO_RECEIVER
|
||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.INNER_CLASS_INSIDE_VALUE_CLASS
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.INNER_CLASS_INSIDE_VALUE_CLASS
|
||||||
@@ -1470,9 +1472,14 @@ object FirErrorsDefaultMessages : BaseDiagnosticRendererFactory() {
|
|||||||
DECLARATION_CANT_BE_INLINED,
|
DECLARATION_CANT_BE_INLINED,
|
||||||
"'inline' modifier on virtual members is prohibited. Only private or final members can be inlined."
|
"'inline' modifier on virtual members is prohibited. Only private or final members can be inlined."
|
||||||
)
|
)
|
||||||
|
map.put(
|
||||||
|
DECLARATION_CANT_BE_INLINED_DEPRECATION,
|
||||||
|
"'inline' modifier on virtual members is prohibited. Only private or final members can be inlined."
|
||||||
|
)
|
||||||
map.put(OVERRIDE_BY_INLINE, "Override by an inline function.")
|
map.put(OVERRIDE_BY_INLINE, "Override by an inline function.")
|
||||||
map.put(REIFIED_TYPE_PARAMETER_IN_OVERRIDE, "Override by a function with reified type parameter.")
|
map.put(REIFIED_TYPE_PARAMETER_IN_OVERRIDE, "Override by a function with reified type parameter.")
|
||||||
map.put(INLINE_PROPERTY_WITH_BACKING_FIELD, "Inline property cannot have a backing field.")
|
map.put(INLINE_PROPERTY_WITH_BACKING_FIELD, "Inline property cannot have a backing field.")
|
||||||
|
map.put(INLINE_PROPERTY_WITH_BACKING_FIELD_DEPRECATION, "Inline property cannot have a backing field.")
|
||||||
|
|
||||||
// Overrides
|
// Overrides
|
||||||
map.put(NOTHING_TO_OVERRIDE, "''{0}'' overrides nothing.", DECLARATION_NAME)
|
map.put(NOTHING_TO_OVERRIDE, "''{0}'' overrides nothing.", DECLARATION_NAME)
|
||||||
|
|||||||
+3
-1
@@ -157,6 +157,7 @@ class ValueParameter(
|
|||||||
type.copyWithNewSourceKind(KtFakeSourceElementKind.DefaultAccessor),
|
type.copyWithNewSourceKind(KtFakeSourceElementKind.DefaultAccessor),
|
||||||
modifiers.getVisibility(),
|
modifiers.getVisibility(),
|
||||||
symbol,
|
symbol,
|
||||||
|
isInline = modifiers.hasInline(),
|
||||||
).also {
|
).also {
|
||||||
it.initContainingClassAttr(context)
|
it.initContainingClassAttr(context)
|
||||||
it.replaceAnnotations(modifiers.annotations.filterUseSiteTarget(PROPERTY_GETTER))
|
it.replaceAnnotations(modifiers.annotations.filterUseSiteTarget(PROPERTY_GETTER))
|
||||||
@@ -168,7 +169,8 @@ class ValueParameter(
|
|||||||
type.copyWithNewSourceKind(KtFakeSourceElementKind.DefaultAccessor),
|
type.copyWithNewSourceKind(KtFakeSourceElementKind.DefaultAccessor),
|
||||||
modifiers.getVisibility(),
|
modifiers.getVisibility(),
|
||||||
symbol,
|
symbol,
|
||||||
parameterAnnotations = modifiers.annotations.filterUseSiteTarget(SETTER_PARAMETER)
|
parameterAnnotations = modifiers.annotations.filterUseSiteTarget(SETTER_PARAMETER),
|
||||||
|
isInline = modifiers.hasInline(),
|
||||||
).also {
|
).also {
|
||||||
it.initContainingClassAttr(context)
|
it.initContainingClassAttr(context)
|
||||||
it.replaceAnnotations(modifiers.annotations.filterUseSiteTarget(PROPERTY_SETTER))
|
it.replaceAnnotations(modifiers.annotations.filterUseSiteTarget(PROPERTY_SETTER))
|
||||||
|
|||||||
+3
-1
@@ -722,6 +722,7 @@ open class PsiRawFirBuilder(
|
|||||||
type.copyWithNewSourceKind(KtFakeSourceElementKind.DefaultAccessor),
|
type.copyWithNewSourceKind(KtFakeSourceElementKind.DefaultAccessor),
|
||||||
visibility,
|
visibility,
|
||||||
symbol,
|
symbol,
|
||||||
|
isInline = hasModifier(INLINE_KEYWORD),
|
||||||
).also { getter ->
|
).also { getter ->
|
||||||
getter.initContainingClassAttr()
|
getter.initContainingClassAttr()
|
||||||
getter.replaceAnnotations(parameterAnnotations.filterUseSiteTarget(PROPERTY_GETTER))
|
getter.replaceAnnotations(parameterAnnotations.filterUseSiteTarget(PROPERTY_GETTER))
|
||||||
@@ -733,7 +734,8 @@ open class PsiRawFirBuilder(
|
|||||||
type.copyWithNewSourceKind(KtFakeSourceElementKind.DefaultAccessor),
|
type.copyWithNewSourceKind(KtFakeSourceElementKind.DefaultAccessor),
|
||||||
visibility,
|
visibility,
|
||||||
symbol,
|
symbol,
|
||||||
parameterAnnotations = parameterAnnotations.filterUseSiteTarget(SETTER_PARAMETER)
|
parameterAnnotations = parameterAnnotations.filterUseSiteTarget(SETTER_PARAMETER),
|
||||||
|
isInline = hasModifier(INLINE_KEYWORD),
|
||||||
).also { setter ->
|
).also { setter ->
|
||||||
setter.initContainingClassAttr()
|
setter.initContainingClassAttr()
|
||||||
setter.replaceAnnotations(parameterAnnotations.filterUseSiteTarget(PROPERTY_SETTER))
|
setter.replaceAnnotations(parameterAnnotations.filterUseSiteTarget(PROPERTY_SETTER))
|
||||||
|
|||||||
+11
-4
@@ -39,6 +39,7 @@ abstract class FirDefaultPropertyAccessor(
|
|||||||
visibility: Visibility,
|
visibility: Visibility,
|
||||||
modality: Modality = Modality.FINAL,
|
modality: Modality = Modality.FINAL,
|
||||||
effectiveVisibility: EffectiveVisibility? = null,
|
effectiveVisibility: EffectiveVisibility? = null,
|
||||||
|
isInline: Boolean = false,
|
||||||
symbol: FirPropertyAccessorSymbol,
|
symbol: FirPropertyAccessorSymbol,
|
||||||
resolvePhase: FirResolvePhase,
|
resolvePhase: FirResolvePhase,
|
||||||
) : FirPropertyAccessorImpl(
|
) : FirPropertyAccessorImpl(
|
||||||
@@ -47,10 +48,12 @@ abstract class FirDefaultPropertyAccessor(
|
|||||||
moduleData,
|
moduleData,
|
||||||
origin,
|
origin,
|
||||||
FirDeclarationAttributes(),
|
FirDeclarationAttributes(),
|
||||||
status = if (effectiveVisibility == null)
|
status = when (effectiveVisibility) {
|
||||||
FirDeclarationStatusImpl(visibility, modality)
|
null -> FirDeclarationStatusImpl(visibility, modality)
|
||||||
else
|
else -> FirResolvedDeclarationStatusImpl(visibility, modality, effectiveVisibility)
|
||||||
FirResolvedDeclarationStatusImpl(visibility, modality, effectiveVisibility),
|
}.apply {
|
||||||
|
this.isInline = isInline
|
||||||
|
},
|
||||||
propertyTypeRef,
|
propertyTypeRef,
|
||||||
deprecationsProvider = UnresolvedDeprecationProvider,
|
deprecationsProvider = UnresolvedDeprecationProvider,
|
||||||
containerSource = null,
|
containerSource = null,
|
||||||
@@ -104,6 +107,7 @@ class FirDefaultPropertyGetter(
|
|||||||
propertySymbol: FirPropertySymbol,
|
propertySymbol: FirPropertySymbol,
|
||||||
modality: Modality = Modality.FINAL,
|
modality: Modality = Modality.FINAL,
|
||||||
effectiveVisibility: EffectiveVisibility? = null,
|
effectiveVisibility: EffectiveVisibility? = null,
|
||||||
|
isInline: Boolean = false,
|
||||||
symbol: FirPropertyAccessorSymbol = FirPropertyAccessorSymbol(),
|
symbol: FirPropertyAccessorSymbol = FirPropertyAccessorSymbol(),
|
||||||
resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR,
|
resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR,
|
||||||
) : FirDefaultPropertyAccessor(
|
) : FirDefaultPropertyAccessor(
|
||||||
@@ -117,6 +121,7 @@ class FirDefaultPropertyGetter(
|
|||||||
visibility = visibility,
|
visibility = visibility,
|
||||||
modality = modality,
|
modality = modality,
|
||||||
effectiveVisibility = effectiveVisibility,
|
effectiveVisibility = effectiveVisibility,
|
||||||
|
isInline = isInline,
|
||||||
symbol = symbol,
|
symbol = symbol,
|
||||||
resolvePhase = resolvePhase,
|
resolvePhase = resolvePhase,
|
||||||
)
|
)
|
||||||
@@ -130,6 +135,7 @@ class FirDefaultPropertySetter(
|
|||||||
propertySymbol: FirPropertySymbol,
|
propertySymbol: FirPropertySymbol,
|
||||||
modality: Modality = Modality.FINAL,
|
modality: Modality = Modality.FINAL,
|
||||||
effectiveVisibility: EffectiveVisibility? = null,
|
effectiveVisibility: EffectiveVisibility? = null,
|
||||||
|
isInline: Boolean = false,
|
||||||
propertyAccessorSymbol: FirPropertyAccessorSymbol = FirPropertyAccessorSymbol(),
|
propertyAccessorSymbol: FirPropertyAccessorSymbol = FirPropertyAccessorSymbol(),
|
||||||
parameterAnnotations: List<FirAnnotation> = emptyList(),
|
parameterAnnotations: List<FirAnnotation> = emptyList(),
|
||||||
resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR,
|
resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR,
|
||||||
@@ -155,6 +161,7 @@ class FirDefaultPropertySetter(
|
|||||||
visibility = visibility,
|
visibility = visibility,
|
||||||
modality = modality,
|
modality = modality,
|
||||||
effectiveVisibility = effectiveVisibility,
|
effectiveVisibility = effectiveVisibility,
|
||||||
|
isInline = isInline,
|
||||||
symbol = propertyAccessorSymbol,
|
symbol = propertyAccessorSymbol,
|
||||||
resolvePhase = resolvePhase,
|
resolvePhase = resolvePhase,
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -0,0 +1,23 @@
|
|||||||
|
// ISSUE: KT-59664
|
||||||
|
// LANGUAGE: -ProhibitInlineModifierOnPrimaryConstructorParameters
|
||||||
|
// WITH_STDLIB
|
||||||
|
|
||||||
|
enum class Foo(<!INLINE_PROPERTY_WITH_BACKING_FIELD_DEPRECATION_WARNING!>open inline /* no effect */ val bar: String<!>) {
|
||||||
|
A("super") {
|
||||||
|
override val bar: String
|
||||||
|
get() = super.bar + " overridden"
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
enum class Bar() {
|
||||||
|
A {
|
||||||
|
override val bar: String
|
||||||
|
get() = super.bar + " overridden"
|
||||||
|
};
|
||||||
|
|
||||||
|
open <!DECLARATION_CANT_BE_INLINED!>inline<!> val bar: String get() = "puper"
|
||||||
|
}
|
||||||
|
|
||||||
|
fun main() {
|
||||||
|
println(Foo.A.bar)
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
// ISSUE: KT-59664
|
||||||
|
// LANGUAGE: -ProhibitInlineModifierOnPrimaryConstructorParameters
|
||||||
|
// WITH_STDLIB
|
||||||
|
|
||||||
|
enum class Foo(open inline /* no effect */ val bar: String) {
|
||||||
|
A("super") {
|
||||||
|
override val bar: String
|
||||||
|
get() = super.bar + " overridden"
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
enum class Bar() {
|
||||||
|
A {
|
||||||
|
override val bar: String
|
||||||
|
get() = super.bar + " overridden"
|
||||||
|
};
|
||||||
|
|
||||||
|
open <!DECLARATION_CANT_BE_INLINED_WARNING!>inline<!> val bar: String get() = "puper"
|
||||||
|
}
|
||||||
|
|
||||||
|
fun main() {
|
||||||
|
println(Foo.A.bar)
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
// ISSUE: KT-59664
|
||||||
|
// LANGUAGE: +ProhibitInlineModifierOnPrimaryConstructorParameters
|
||||||
|
// WITH_STDLIB
|
||||||
|
|
||||||
|
enum class Foo(<!INLINE_PROPERTY_WITH_BACKING_FIELD_DEPRECATION_ERROR!>open inline /* no effect */ val bar: String<!>) {
|
||||||
|
A("super") {
|
||||||
|
override val bar: String
|
||||||
|
get() = super.bar + " overridden"
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
enum class Bar() {
|
||||||
|
A {
|
||||||
|
override val bar: String
|
||||||
|
get() = super.bar + " overridden"
|
||||||
|
};
|
||||||
|
|
||||||
|
open <!DECLARATION_CANT_BE_INLINED!>inline<!> val bar: String get() = "puper"
|
||||||
|
}
|
||||||
|
|
||||||
|
fun main() {
|
||||||
|
println(Foo.A.bar)
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
// ISSUE: KT-59664
|
||||||
|
// LANGUAGE: +ProhibitInlineModifierOnPrimaryConstructorParameters
|
||||||
|
// WITH_STDLIB
|
||||||
|
|
||||||
|
enum class Foo(open inline /* no effect */ val bar: String) {
|
||||||
|
A("super") {
|
||||||
|
override val bar: String
|
||||||
|
get() = super.bar + " overridden"
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
enum class Bar() {
|
||||||
|
A {
|
||||||
|
override val bar: String
|
||||||
|
get() = super.bar + " overridden"
|
||||||
|
};
|
||||||
|
|
||||||
|
open <!DECLARATION_CANT_BE_INLINED_WARNING!>inline<!> val bar: String get() = "puper"
|
||||||
|
}
|
||||||
|
|
||||||
|
fun main() {
|
||||||
|
println(Foo.A.bar)
|
||||||
|
}
|
||||||
Generated
+12
@@ -507,6 +507,18 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest {
|
|||||||
runTest("compiler/testData/diagnostics/tests/initializedAfterRethrow.kt");
|
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
|
@Test
|
||||||
@TestMetadata("inlineDeprecationsOnImplicitCalls.kt")
|
@TestMetadata("inlineDeprecationsOnImplicitCalls.kt")
|
||||||
public void testInlineDeprecationsOnImplicitCalls() throws Exception {
|
public void testInlineDeprecationsOnImplicitCalls() throws Exception {
|
||||||
|
|||||||
@@ -308,6 +308,7 @@ enum class LanguageFeature(
|
|||||||
ReferencesToSyntheticJavaProperties(KOTLIN_2_1), // KT-8575
|
ReferencesToSyntheticJavaProperties(KOTLIN_2_1), // KT-8575
|
||||||
ProhibitImplementingVarByInheritedVal(KOTLIN_2_1, kind = BUG_FIX), // KT-56779
|
ProhibitImplementingVarByInheritedVal(KOTLIN_2_1, kind = BUG_FIX), // KT-56779
|
||||||
PrioritizedEnumEntries(KOTLIN_2_1, kind = UNSTABLE_FEATURE), // KT-58920
|
PrioritizedEnumEntries(KOTLIN_2_1, kind = UNSTABLE_FEATURE), // KT-58920
|
||||||
|
ProhibitInlineModifierOnPrimaryConstructorParameters(KOTLIN_2_1, kind = BUG_FIX), // KT-59664
|
||||||
|
|
||||||
// End of 2.* language features --------------------------------------------------
|
// End of 2.* language features --------------------------------------------------
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user