From 62123d72e23336fab93ce4db6c1b0576966207f7 Mon Sep 17 00:00:00 2001 From: Ilmir Usmanov Date: Wed, 17 Feb 2021 20:57:37 +0100 Subject: [PATCH] IC: Add inline class -> @JvmInline value class warning --- .../FirOldFrontendDiagnosticsTestGenerated.java | 6 ++++++ .../src/org/jetbrains/kotlin/diagnostics/Errors.java | 1 + .../diagnostics/rendering/DefaultErrorMessages.java | 1 + .../org/jetbrains/kotlin/resolve/ModifiersChecker.kt | 7 +++++++ .../resolve/checkers/InlineClassDeclarationChecker.kt | 2 -- .../inlineClasses/constructorOfUnsignedType.fir.kt | 2 +- .../inlineClasses/constructorOfUnsignedType.kt | 2 +- .../inlineClasses/basicInlineClassDeclaration.fir.kt | 2 +- .../tests/inlineClasses/basicInlineClassDeclaration.kt | 2 +- .../basicInlineClassDeclarationDisabled.fir.kt | 2 +- .../basicInlineClassDeclarationDisabled.kt | 2 +- ...ilityOfOrdinaryClassIsBinaryCompatibleChange.fir.kt | 2 +- ...llabilityOfOrdinaryClassIsBinaryCompatibleChange.kt | 2 +- .../constructorsJvmSignaturesClash.fir.kt | 2 +- .../inlineClasses/constructorsJvmSignaturesClash.kt | 2 +- .../delegatedPropertyInInlineClass.fir.kt | 2 +- .../inlineClasses/delegatedPropertyInInlineClass.kt | 2 +- .../inlineClasses/functionsJvmSignaturesClash.fir.kt | 2 +- .../tests/inlineClasses/functionsJvmSignaturesClash.kt | 2 +- .../functionsJvmSignaturesConflictOnInheritance.kt | 2 +- .../identityComparisonWithInlineClasses.fir.kt | 2 +- .../identityComparisonWithInlineClasses.kt | 2 +- .../inlineClassCanOnlyImplementInterfaces.fir.kt | 2 +- .../inlineClassCanOnlyImplementInterfaces.kt | 2 +- ...ineClassCannotImplementInterfaceByDelegation.fir.kt | 2 +- .../inlineClassCannotImplementInterfaceByDelegation.kt | 2 +- .../inlineClassConstructorParameterWithDefaultValue.kt | 2 +- .../inlineClasses/inlineClassDeclarationCheck.fir.kt | 2 +- .../tests/inlineClasses/inlineClassDeclarationCheck.kt | 2 +- .../tests/inlineClasses/inlineClassDeprecated.fir.kt | 3 +++ .../tests/inlineClasses/inlineClassDeprecated.kt | 3 +++ .../tests/inlineClasses/inlineClassDeprecated.txt | 10 ++++++++++ .../inlineClasses/inlineClassImplementsCollection.kt | 2 +- .../inlineClassWithForbiddenUnderlyingType.fir.kt | 2 +- .../inlineClassWithForbiddenUnderlyingType.kt | 2 +- .../inlineClasses/inlineClassesInsideAnnotations.kt | 2 +- .../inlineClasses/innerClassInsideInlineClass.fir.kt | 2 +- .../tests/inlineClasses/innerClassInsideInlineClass.kt | 2 +- .../tests/inlineClasses/lateinitInlineClasses.fir.kt | 2 +- .../tests/inlineClasses/lateinitInlineClasses.kt | 2 +- .../presenceOfInitializerBlockInsideInlineClass.kt | 2 +- ...presenceOfPublicPrimaryConstructorForInlineClass.kt | 2 +- ...propertiesWithBackingFieldsInsideInlineClass.fir.kt | 2 +- .../propertiesWithBackingFieldsInsideInlineClass.kt | 2 +- .../tests/inlineClasses/recursiveInlineClasses.fir.kt | 2 +- .../tests/inlineClasses/recursiveInlineClasses.kt | 2 +- ...eservedMembersAndConstructsInsideInlineClass.fir.kt | 2 +- .../reservedMembersAndConstructsInsideInlineClass.kt | 2 +- .../varPropertyWithInlineClassReceiver.fir.kt | 2 +- .../varPropertyWithInlineClassReceiver.kt | 2 +- .../varargsOnParametersOfInlineClassType.fir.kt | 2 +- .../varargsOnParametersOfInlineClassType.kt | 2 +- .../inlineClassErasedToPrimitiveInt.kt | 2 +- .../inlineClasses/expectActualInlineClass.fir.kt | 2 +- .../inlineClasses/expectActualInlineClass.kt | 2 +- .../tests/testsWithExplicitApi/inlineClasses.fir.kt | 1 + .../tests/testsWithExplicitApi/inlineClasses.kt | 1 + .../tests/valueClasses/jvmInlineApplicability.kt | 2 +- .../testsWithJsStdLib/native/inlineClass.kt | 2 +- .../native/inlineClassAsParameterOrReturnType.kt.kt | 2 +- ...llabilityOfOrdinaryClassIsBinaryCompatibleChange.kt | 2 +- .../testsWithJvmBackend/valueClasses/cloneable.fir.kt | 2 +- .../testsWithJvmBackend/valueClasses/cloneable.kt | 2 +- .../jvmNameOnMangledNames.fir.kt | 2 +- .../annotationApplicability/jvmNameOnMangledNames.kt | 2 +- .../annotations/jvmField/jvmFieldApplicability.fir.kt | 2 +- .../annotations/jvmField/jvmFieldApplicability.kt | 2 +- .../jvmOverloads/jvmOverloadsOnMangledFunctions.fir.kt | 2 +- .../jvmOverloads/jvmOverloadsOnMangledFunctions.kt | 2 +- .../coroutines/usageOfResultTypeInReturnType.fir.kt | 2 +- .../coroutines/usageOfResultTypeInReturnType.kt | 2 +- .../usageOfResultTypeInReturnType_1_4.fir.kt | 2 +- .../coroutines/usageOfResultTypeInReturnType_1_4.kt | 2 +- .../kotlin/test/runners/DiagnosticTestGenerated.java | 6 ++++++ 74 files changed, 102 insertions(+), 65 deletions(-) create mode 100644 compiler/testData/diagnostics/tests/inlineClasses/inlineClassDeprecated.fir.kt create mode 100644 compiler/testData/diagnostics/tests/inlineClasses/inlineClassDeprecated.kt create mode 100644 compiler/testData/diagnostics/tests/inlineClasses/inlineClassDeprecated.txt diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java index 024d351daea..aba6421a637 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java @@ -15005,6 +15005,12 @@ public class FirOldFrontendDiagnosticsTestGenerated extends AbstractFirDiagnosti runTest("compiler/testData/diagnostics/tests/inlineClasses/inlineClassDeclarationCheck.kt"); } + @Test + @TestMetadata("inlineClassDeprecated.kt") + public void testInlineClassDeprecated() throws Exception { + runTest("compiler/testData/diagnostics/tests/inlineClasses/inlineClassDeprecated.kt"); + } + @Test @TestMetadata("inlineClassImplementsCollection.kt") public void testInlineClassImplementsCollection() throws Exception { diff --git a/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/Errors.java b/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/Errors.java index ab7f83c82cc..b8d5ca7560b 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/Errors.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/Errors.java @@ -365,6 +365,7 @@ public interface Errors { DiagnosticFactory0 SECONDARY_CONSTRUCTOR_WITH_BODY_INSIDE_INLINE_CLASS = DiagnosticFactory0.create(ERROR); DiagnosticFactory0 INNER_CLASS_INSIDE_INLINE_CLASS = DiagnosticFactory0.create(ERROR); DiagnosticFactory0 VALUE_CLASS_CANNOT_BE_CLONEABLE = DiagnosticFactory0.create(ERROR); + DiagnosticFactory0 INLINE_CLASS_DEPRECATED = DiagnosticFactory0.create(WARNING); // Result class diff --git a/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/rendering/DefaultErrorMessages.java b/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/rendering/DefaultErrorMessages.java index 5afaa849291..e257afe8471 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/rendering/DefaultErrorMessages.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/rendering/DefaultErrorMessages.java @@ -724,6 +724,7 @@ public class DefaultErrorMessages { MAP.put(SECONDARY_CONSTRUCTOR_WITH_BODY_INSIDE_INLINE_CLASS, "Secondary constructors with bodies are reserved for for future releases"); MAP.put(INNER_CLASS_INSIDE_INLINE_CLASS, "Inline class cannot have inner classes"); MAP.put(VALUE_CLASS_CANNOT_BE_CLONEABLE, "Value class cannot be Cloneable"); + MAP.put(INLINE_CLASS_DEPRECATED, "Inline classes are deprecated in favor of value classes"); MAP.put(RESULT_CLASS_IN_RETURN_TYPE, "'kotlin.Result' cannot be used as a return type"); MAP.put(RESULT_CLASS_WITH_NULLABLE_OPERATOR, "Expression of type 'kotlin.Result' cannot be used as a left operand of ''{0}''", STRING); diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/ModifiersChecker.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/ModifiersChecker.kt index 21053197d8f..0b1ef0cbc0d 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/ModifiersChecker.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/ModifiersChecker.kt @@ -357,6 +357,13 @@ object ModifierCheckerCore { continue } + if (dependency == LanguageFeature.InlineClasses) { + if (languageVersionSettings.supportsFeature(LanguageFeature.JvmInlineValueClasses)) { + trace.report(Errors.INLINE_CLASS_DEPRECATED.on(node.psi)) + continue + } + } + val diagnosticData = dependency to languageVersionSettings when (featureSupport) { LanguageFeature.State.ENABLED_WITH_WARNING -> { diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/InlineClassDeclarationChecker.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/InlineClassDeclarationChecker.kt index e16ee31e38e..0e57fd52fed 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/InlineClassDeclarationChecker.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/InlineClassDeclarationChecker.kt @@ -15,10 +15,8 @@ import org.jetbrains.kotlin.name.FqNameUnsafe import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.psiUtil.modalityModifier import org.jetbrains.kotlin.resolve.* -import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameUnsafe import org.jetbrains.kotlin.resolve.descriptorUtil.getAllSuperClassifiers -import org.jetbrains.kotlin.resolve.descriptorUtil.getSuperInterfaces import org.jetbrains.kotlin.types.KotlinType import org.jetbrains.kotlin.types.typeUtil.isNothing import org.jetbrains.kotlin.types.typeUtil.isTypeParameter diff --git a/compiler/testData/diagnostics/tests/evaluate/inlineClasses/constructorOfUnsignedType.fir.kt b/compiler/testData/diagnostics/tests/evaluate/inlineClasses/constructorOfUnsignedType.fir.kt index 7620688ffe8..b0e4cee2151 100644 --- a/compiler/testData/diagnostics/tests/evaluate/inlineClasses/constructorOfUnsignedType.fir.kt +++ b/compiler/testData/diagnostics/tests/evaluate/inlineClasses/constructorOfUnsignedType.fir.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses // SKIP_JAVAC // FILE: uint.kt diff --git a/compiler/testData/diagnostics/tests/evaluate/inlineClasses/constructorOfUnsignedType.kt b/compiler/testData/diagnostics/tests/evaluate/inlineClasses/constructorOfUnsignedType.kt index 125438f99e8..93a6181771c 100644 --- a/compiler/testData/diagnostics/tests/evaluate/inlineClasses/constructorOfUnsignedType.kt +++ b/compiler/testData/diagnostics/tests/evaluate/inlineClasses/constructorOfUnsignedType.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses // SKIP_JAVAC // FILE: uint.kt diff --git a/compiler/testData/diagnostics/tests/inlineClasses/basicInlineClassDeclaration.fir.kt b/compiler/testData/diagnostics/tests/inlineClasses/basicInlineClassDeclaration.fir.kt index fdb6b5bb420..7fa04e7be74 100644 --- a/compiler/testData/diagnostics/tests/inlineClasses/basicInlineClassDeclaration.fir.kt +++ b/compiler/testData/diagnostics/tests/inlineClasses/basicInlineClassDeclaration.fir.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses inline class Foo(val x: Int) diff --git a/compiler/testData/diagnostics/tests/inlineClasses/basicInlineClassDeclaration.kt b/compiler/testData/diagnostics/tests/inlineClasses/basicInlineClassDeclaration.kt index f1efb38b7fb..7bf4750329c 100644 --- a/compiler/testData/diagnostics/tests/inlineClasses/basicInlineClassDeclaration.kt +++ b/compiler/testData/diagnostics/tests/inlineClasses/basicInlineClassDeclaration.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses inline class Foo(val x: Int) diff --git a/compiler/testData/diagnostics/tests/inlineClasses/basicInlineClassDeclarationDisabled.fir.kt b/compiler/testData/diagnostics/tests/inlineClasses/basicInlineClassDeclarationDisabled.fir.kt index b3ddad1f098..7c2d3936a68 100644 --- a/compiler/testData/diagnostics/tests/inlineClasses/basicInlineClassDeclarationDisabled.fir.kt +++ b/compiler/testData/diagnostics/tests/inlineClasses/basicInlineClassDeclarationDisabled.fir.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: -InlineClasses +// !LANGUAGE: -InlineClasses, -JvmInlineValueClasses // !DIAGNOSTICS: -UNUSED_PARAMETER inline class Foo(val x: Int) diff --git a/compiler/testData/diagnostics/tests/inlineClasses/basicInlineClassDeclarationDisabled.kt b/compiler/testData/diagnostics/tests/inlineClasses/basicInlineClassDeclarationDisabled.kt index e2708abccc4..69349b88485 100644 --- a/compiler/testData/diagnostics/tests/inlineClasses/basicInlineClassDeclarationDisabled.kt +++ b/compiler/testData/diagnostics/tests/inlineClasses/basicInlineClassDeclarationDisabled.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: -InlineClasses +// !LANGUAGE: -InlineClasses, -JvmInlineValueClasses // !DIAGNOSTICS: -UNUSED_PARAMETER inline class Foo(val x: Int) diff --git a/compiler/testData/diagnostics/tests/inlineClasses/changingNullabilityOfOrdinaryClassIsBinaryCompatibleChange.fir.kt b/compiler/testData/diagnostics/tests/inlineClasses/changingNullabilityOfOrdinaryClassIsBinaryCompatibleChange.fir.kt index 3ad0a8a9070..2eed42e6983 100644 --- a/compiler/testData/diagnostics/tests/inlineClasses/changingNullabilityOfOrdinaryClassIsBinaryCompatibleChange.fir.kt +++ b/compiler/testData/diagnostics/tests/inlineClasses/changingNullabilityOfOrdinaryClassIsBinaryCompatibleChange.fir.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses // !DIAGNOSTICS: -UNUSED_PARAMETER inline class IC(val i: Int) diff --git a/compiler/testData/diagnostics/tests/inlineClasses/changingNullabilityOfOrdinaryClassIsBinaryCompatibleChange.kt b/compiler/testData/diagnostics/tests/inlineClasses/changingNullabilityOfOrdinaryClassIsBinaryCompatibleChange.kt index f0d500dabbd..dbc3ded3bcc 100644 --- a/compiler/testData/diagnostics/tests/inlineClasses/changingNullabilityOfOrdinaryClassIsBinaryCompatibleChange.kt +++ b/compiler/testData/diagnostics/tests/inlineClasses/changingNullabilityOfOrdinaryClassIsBinaryCompatibleChange.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses // !DIAGNOSTICS: -UNUSED_PARAMETER inline class IC(val i: Int) diff --git a/compiler/testData/diagnostics/tests/inlineClasses/constructorsJvmSignaturesClash.fir.kt b/compiler/testData/diagnostics/tests/inlineClasses/constructorsJvmSignaturesClash.fir.kt index c46969ca1e0..d7f614de46d 100644 --- a/compiler/testData/diagnostics/tests/inlineClasses/constructorsJvmSignaturesClash.fir.kt +++ b/compiler/testData/diagnostics/tests/inlineClasses/constructorsJvmSignaturesClash.fir.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses // !DIAGNOSTICS: -UNUSED_PARAMETER inline class X(val x: Int) diff --git a/compiler/testData/diagnostics/tests/inlineClasses/constructorsJvmSignaturesClash.kt b/compiler/testData/diagnostics/tests/inlineClasses/constructorsJvmSignaturesClash.kt index 113b9a76c9c..cc81abd4d0f 100644 --- a/compiler/testData/diagnostics/tests/inlineClasses/constructorsJvmSignaturesClash.kt +++ b/compiler/testData/diagnostics/tests/inlineClasses/constructorsJvmSignaturesClash.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses // !DIAGNOSTICS: -UNUSED_PARAMETER inline class X(val x: Int) diff --git a/compiler/testData/diagnostics/tests/inlineClasses/delegatedPropertyInInlineClass.fir.kt b/compiler/testData/diagnostics/tests/inlineClasses/delegatedPropertyInInlineClass.fir.kt index 77dd8988c78..d80a0c75060 100644 --- a/compiler/testData/diagnostics/tests/inlineClasses/delegatedPropertyInInlineClass.fir.kt +++ b/compiler/testData/diagnostics/tests/inlineClasses/delegatedPropertyInInlineClass.fir.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses class Val { operator fun getValue(thisRef: Any?, kProp: Any?) = 1 diff --git a/compiler/testData/diagnostics/tests/inlineClasses/delegatedPropertyInInlineClass.kt b/compiler/testData/diagnostics/tests/inlineClasses/delegatedPropertyInInlineClass.kt index 02356440d3f..5827fada5b3 100644 --- a/compiler/testData/diagnostics/tests/inlineClasses/delegatedPropertyInInlineClass.kt +++ b/compiler/testData/diagnostics/tests/inlineClasses/delegatedPropertyInInlineClass.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses class Val { operator fun getValue(thisRef: Any?, kProp: Any?) = 1 diff --git a/compiler/testData/diagnostics/tests/inlineClasses/functionsJvmSignaturesClash.fir.kt b/compiler/testData/diagnostics/tests/inlineClasses/functionsJvmSignaturesClash.fir.kt index 2269b291aaf..8a7d39aac8c 100644 --- a/compiler/testData/diagnostics/tests/inlineClasses/functionsJvmSignaturesClash.fir.kt +++ b/compiler/testData/diagnostics/tests/inlineClasses/functionsJvmSignaturesClash.fir.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses // !DIAGNOSTICS: -UNUSED_PARAMETER inline class X(val x: Int) diff --git a/compiler/testData/diagnostics/tests/inlineClasses/functionsJvmSignaturesClash.kt b/compiler/testData/diagnostics/tests/inlineClasses/functionsJvmSignaturesClash.kt index 875f220bdde..bdd68fc1692 100644 --- a/compiler/testData/diagnostics/tests/inlineClasses/functionsJvmSignaturesClash.kt +++ b/compiler/testData/diagnostics/tests/inlineClasses/functionsJvmSignaturesClash.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses // !DIAGNOSTICS: -UNUSED_PARAMETER inline class X(val x: Int) diff --git a/compiler/testData/diagnostics/tests/inlineClasses/functionsJvmSignaturesConflictOnInheritance.kt b/compiler/testData/diagnostics/tests/inlineClasses/functionsJvmSignaturesConflictOnInheritance.kt index 7433d266115..60b8a4cc35f 100644 --- a/compiler/testData/diagnostics/tests/inlineClasses/functionsJvmSignaturesConflictOnInheritance.kt +++ b/compiler/testData/diagnostics/tests/inlineClasses/functionsJvmSignaturesConflictOnInheritance.kt @@ -1,5 +1,5 @@ // FIR_IDENTICAL -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses inline class Name(val name: String) inline class Password(val password: String) diff --git a/compiler/testData/diagnostics/tests/inlineClasses/identityComparisonWithInlineClasses.fir.kt b/compiler/testData/diagnostics/tests/inlineClasses/identityComparisonWithInlineClasses.fir.kt index 24566925dc7..a51dfec0cf6 100644 --- a/compiler/testData/diagnostics/tests/inlineClasses/identityComparisonWithInlineClasses.fir.kt +++ b/compiler/testData/diagnostics/tests/inlineClasses/identityComparisonWithInlineClasses.fir.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses // !DIAGNOSTICS: -UNUSED_VARIABLE inline class Foo(val x: Int) diff --git a/compiler/testData/diagnostics/tests/inlineClasses/identityComparisonWithInlineClasses.kt b/compiler/testData/diagnostics/tests/inlineClasses/identityComparisonWithInlineClasses.kt index 82ee455bb16..02a633f571c 100644 --- a/compiler/testData/diagnostics/tests/inlineClasses/identityComparisonWithInlineClasses.kt +++ b/compiler/testData/diagnostics/tests/inlineClasses/identityComparisonWithInlineClasses.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses // !DIAGNOSTICS: -UNUSED_VARIABLE inline class Foo(val x: Int) diff --git a/compiler/testData/diagnostics/tests/inlineClasses/inlineClassCanOnlyImplementInterfaces.fir.kt b/compiler/testData/diagnostics/tests/inlineClasses/inlineClassCanOnlyImplementInterfaces.fir.kt index 07970c657c4..ca52ee3b324 100644 --- a/compiler/testData/diagnostics/tests/inlineClasses/inlineClassCanOnlyImplementInterfaces.fir.kt +++ b/compiler/testData/diagnostics/tests/inlineClasses/inlineClassCanOnlyImplementInterfaces.fir.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses abstract class AbstractBaseClass diff --git a/compiler/testData/diagnostics/tests/inlineClasses/inlineClassCanOnlyImplementInterfaces.kt b/compiler/testData/diagnostics/tests/inlineClasses/inlineClassCanOnlyImplementInterfaces.kt index 7a8e6c3bb01..4adf5bef811 100644 --- a/compiler/testData/diagnostics/tests/inlineClasses/inlineClassCanOnlyImplementInterfaces.kt +++ b/compiler/testData/diagnostics/tests/inlineClasses/inlineClassCanOnlyImplementInterfaces.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses abstract class AbstractBaseClass diff --git a/compiler/testData/diagnostics/tests/inlineClasses/inlineClassCannotImplementInterfaceByDelegation.fir.kt b/compiler/testData/diagnostics/tests/inlineClasses/inlineClassCannotImplementInterfaceByDelegation.fir.kt index fc15d5e7721..feb113b6cb5 100644 --- a/compiler/testData/diagnostics/tests/inlineClasses/inlineClassCannotImplementInterfaceByDelegation.fir.kt +++ b/compiler/testData/diagnostics/tests/inlineClasses/inlineClassCannotImplementInterfaceByDelegation.fir.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses interface IFoo diff --git a/compiler/testData/diagnostics/tests/inlineClasses/inlineClassCannotImplementInterfaceByDelegation.kt b/compiler/testData/diagnostics/tests/inlineClasses/inlineClassCannotImplementInterfaceByDelegation.kt index 916d2148c9b..10a855b9089 100644 --- a/compiler/testData/diagnostics/tests/inlineClasses/inlineClassCannotImplementInterfaceByDelegation.kt +++ b/compiler/testData/diagnostics/tests/inlineClasses/inlineClassCannotImplementInterfaceByDelegation.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses interface IFoo diff --git a/compiler/testData/diagnostics/tests/inlineClasses/inlineClassConstructorParameterWithDefaultValue.kt b/compiler/testData/diagnostics/tests/inlineClasses/inlineClassConstructorParameterWithDefaultValue.kt index 015b386cf21..50a08b5f5d0 100644 --- a/compiler/testData/diagnostics/tests/inlineClasses/inlineClassConstructorParameterWithDefaultValue.kt +++ b/compiler/testData/diagnostics/tests/inlineClasses/inlineClassConstructorParameterWithDefaultValue.kt @@ -1,4 +1,4 @@ // FIR_IDENTICAL -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses inline class Test(val x: Int = 42) \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/inlineClasses/inlineClassDeclarationCheck.fir.kt b/compiler/testData/diagnostics/tests/inlineClasses/inlineClassDeclarationCheck.fir.kt index ea47b0e4e21..c46481682db 100644 --- a/compiler/testData/diagnostics/tests/inlineClasses/inlineClassDeclarationCheck.fir.kt +++ b/compiler/testData/diagnostics/tests/inlineClasses/inlineClassDeclarationCheck.fir.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses // !DIAGNOSTICS: -UNUSED_PARAMETER inline class A0(val x: Int) diff --git a/compiler/testData/diagnostics/tests/inlineClasses/inlineClassDeclarationCheck.kt b/compiler/testData/diagnostics/tests/inlineClasses/inlineClassDeclarationCheck.kt index cd55c8f55f5..55dc2157158 100644 --- a/compiler/testData/diagnostics/tests/inlineClasses/inlineClassDeclarationCheck.kt +++ b/compiler/testData/diagnostics/tests/inlineClasses/inlineClassDeclarationCheck.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses // !DIAGNOSTICS: -UNUSED_PARAMETER inline class A0(val x: Int) diff --git a/compiler/testData/diagnostics/tests/inlineClasses/inlineClassDeprecated.fir.kt b/compiler/testData/diagnostics/tests/inlineClasses/inlineClassDeprecated.fir.kt new file mode 100644 index 00000000000..d7f3e7be4c1 --- /dev/null +++ b/compiler/testData/diagnostics/tests/inlineClasses/inlineClassDeprecated.fir.kt @@ -0,0 +1,3 @@ +// !LANGUAGE: +JvmInlineValueClasses + +inline class IC(val i: Int) \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/inlineClasses/inlineClassDeprecated.kt b/compiler/testData/diagnostics/tests/inlineClasses/inlineClassDeprecated.kt new file mode 100644 index 00000000000..e4436da1e14 --- /dev/null +++ b/compiler/testData/diagnostics/tests/inlineClasses/inlineClassDeprecated.kt @@ -0,0 +1,3 @@ +// !LANGUAGE: +JvmInlineValueClasses + +inline class IC(val i: Int) diff --git a/compiler/testData/diagnostics/tests/inlineClasses/inlineClassDeprecated.txt b/compiler/testData/diagnostics/tests/inlineClasses/inlineClassDeprecated.txt new file mode 100644 index 00000000000..f5ea8596b23 --- /dev/null +++ b/compiler/testData/diagnostics/tests/inlineClasses/inlineClassDeprecated.txt @@ -0,0 +1,10 @@ +package + +public final inline class IC { + public constructor IC(/*0*/ i: kotlin.Int) + public final val i: kotlin.Int + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String +} + diff --git a/compiler/testData/diagnostics/tests/inlineClasses/inlineClassImplementsCollection.kt b/compiler/testData/diagnostics/tests/inlineClasses/inlineClassImplementsCollection.kt index 213ddf10ec1..f40abbabd50 100644 --- a/compiler/testData/diagnostics/tests/inlineClasses/inlineClassImplementsCollection.kt +++ b/compiler/testData/diagnostics/tests/inlineClasses/inlineClassImplementsCollection.kt @@ -1,5 +1,5 @@ // FIR_IDENTICAL -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses inline class UInt(val x: Int) diff --git a/compiler/testData/diagnostics/tests/inlineClasses/inlineClassWithForbiddenUnderlyingType.fir.kt b/compiler/testData/diagnostics/tests/inlineClasses/inlineClassWithForbiddenUnderlyingType.fir.kt index 650bcb0e190..034af53a9c1 100644 --- a/compiler/testData/diagnostics/tests/inlineClasses/inlineClassWithForbiddenUnderlyingType.fir.kt +++ b/compiler/testData/diagnostics/tests/inlineClasses/inlineClassWithForbiddenUnderlyingType.fir.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses inline class Foo(val x: T) inline class FooNullable(val x: T?) diff --git a/compiler/testData/diagnostics/tests/inlineClasses/inlineClassWithForbiddenUnderlyingType.kt b/compiler/testData/diagnostics/tests/inlineClasses/inlineClassWithForbiddenUnderlyingType.kt index 0103c2b62fc..0b12d0b97dd 100644 --- a/compiler/testData/diagnostics/tests/inlineClasses/inlineClassWithForbiddenUnderlyingType.kt +++ b/compiler/testData/diagnostics/tests/inlineClasses/inlineClassWithForbiddenUnderlyingType.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses inline class Foo(val x: T) inline class FooNullable(val x: T?) diff --git a/compiler/testData/diagnostics/tests/inlineClasses/inlineClassesInsideAnnotations.kt b/compiler/testData/diagnostics/tests/inlineClasses/inlineClassesInsideAnnotations.kt index 182b14bf413..45a3a48d9b1 100644 --- a/compiler/testData/diagnostics/tests/inlineClasses/inlineClassesInsideAnnotations.kt +++ b/compiler/testData/diagnostics/tests/inlineClasses/inlineClassesInsideAnnotations.kt @@ -1,5 +1,5 @@ // FIR_IDENTICAL -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses import kotlin.reflect.KClass diff --git a/compiler/testData/diagnostics/tests/inlineClasses/innerClassInsideInlineClass.fir.kt b/compiler/testData/diagnostics/tests/inlineClasses/innerClassInsideInlineClass.fir.kt index 7188dcc1dc1..fd5fcaaa768 100644 --- a/compiler/testData/diagnostics/tests/inlineClasses/innerClassInsideInlineClass.fir.kt +++ b/compiler/testData/diagnostics/tests/inlineClasses/innerClassInsideInlineClass.fir.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses // !DIAGNOSTICS: -UNUSED_VARIABLE inline class Foo(val x: Int) { diff --git a/compiler/testData/diagnostics/tests/inlineClasses/innerClassInsideInlineClass.kt b/compiler/testData/diagnostics/tests/inlineClasses/innerClassInsideInlineClass.kt index 3c64938fd96..35c0d17b85a 100644 --- a/compiler/testData/diagnostics/tests/inlineClasses/innerClassInsideInlineClass.kt +++ b/compiler/testData/diagnostics/tests/inlineClasses/innerClassInsideInlineClass.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses // !DIAGNOSTICS: -UNUSED_VARIABLE inline class Foo(val x: Int) { diff --git a/compiler/testData/diagnostics/tests/inlineClasses/lateinitInlineClasses.fir.kt b/compiler/testData/diagnostics/tests/inlineClasses/lateinitInlineClasses.fir.kt index d81f5b2b0e9..bb264ef9e0e 100644 --- a/compiler/testData/diagnostics/tests/inlineClasses/lateinitInlineClasses.fir.kt +++ b/compiler/testData/diagnostics/tests/inlineClasses/lateinitInlineClasses.fir.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses // !DIAGNOSTICS: -UNUSED_VARIABLE inline class Foo(val x: Int) diff --git a/compiler/testData/diagnostics/tests/inlineClasses/lateinitInlineClasses.kt b/compiler/testData/diagnostics/tests/inlineClasses/lateinitInlineClasses.kt index b05bacd607e..89a50702ef4 100644 --- a/compiler/testData/diagnostics/tests/inlineClasses/lateinitInlineClasses.kt +++ b/compiler/testData/diagnostics/tests/inlineClasses/lateinitInlineClasses.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses // !DIAGNOSTICS: -UNUSED_VARIABLE inline class Foo(val x: Int) diff --git a/compiler/testData/diagnostics/tests/inlineClasses/presenceOfInitializerBlockInsideInlineClass.kt b/compiler/testData/diagnostics/tests/inlineClasses/presenceOfInitializerBlockInsideInlineClass.kt index 7def378d5e2..b02d8a15901 100644 --- a/compiler/testData/diagnostics/tests/inlineClasses/presenceOfInitializerBlockInsideInlineClass.kt +++ b/compiler/testData/diagnostics/tests/inlineClasses/presenceOfInitializerBlockInsideInlineClass.kt @@ -1,5 +1,5 @@ // FIR_IDENTICAL -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses // !DIAGNOSTICS: -UNUSED_VARIABLE inline class Foo(val x: Int) { diff --git a/compiler/testData/diagnostics/tests/inlineClasses/presenceOfPublicPrimaryConstructorForInlineClass.kt b/compiler/testData/diagnostics/tests/inlineClasses/presenceOfPublicPrimaryConstructorForInlineClass.kt index 0224c26082e..a84006c513a 100644 --- a/compiler/testData/diagnostics/tests/inlineClasses/presenceOfPublicPrimaryConstructorForInlineClass.kt +++ b/compiler/testData/diagnostics/tests/inlineClasses/presenceOfPublicPrimaryConstructorForInlineClass.kt @@ -1,5 +1,5 @@ // FIR_IDENTICAL -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses inline class ConstructorWithDefaultVisibility(val x: Int) inline class PublicConstructor public constructor(val x: Int) diff --git a/compiler/testData/diagnostics/tests/inlineClasses/propertiesWithBackingFieldsInsideInlineClass.fir.kt b/compiler/testData/diagnostics/tests/inlineClasses/propertiesWithBackingFieldsInsideInlineClass.fir.kt index 673b7ba8262..a9d54c4d55f 100644 --- a/compiler/testData/diagnostics/tests/inlineClasses/propertiesWithBackingFieldsInsideInlineClass.fir.kt +++ b/compiler/testData/diagnostics/tests/inlineClasses/propertiesWithBackingFieldsInsideInlineClass.fir.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses // !DIAGNOSTICS: -UNUSED_PARAMETER interface A { diff --git a/compiler/testData/diagnostics/tests/inlineClasses/propertiesWithBackingFieldsInsideInlineClass.kt b/compiler/testData/diagnostics/tests/inlineClasses/propertiesWithBackingFieldsInsideInlineClass.kt index 5fba5d676df..6505df52127 100644 --- a/compiler/testData/diagnostics/tests/inlineClasses/propertiesWithBackingFieldsInsideInlineClass.kt +++ b/compiler/testData/diagnostics/tests/inlineClasses/propertiesWithBackingFieldsInsideInlineClass.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses // !DIAGNOSTICS: -UNUSED_PARAMETER interface A { diff --git a/compiler/testData/diagnostics/tests/inlineClasses/recursiveInlineClasses.fir.kt b/compiler/testData/diagnostics/tests/inlineClasses/recursiveInlineClasses.fir.kt index 6ebf4f85568..fded4d68da3 100644 --- a/compiler/testData/diagnostics/tests/inlineClasses/recursiveInlineClasses.fir.kt +++ b/compiler/testData/diagnostics/tests/inlineClasses/recursiveInlineClasses.fir.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses inline class Test1(val x: Test1) diff --git a/compiler/testData/diagnostics/tests/inlineClasses/recursiveInlineClasses.kt b/compiler/testData/diagnostics/tests/inlineClasses/recursiveInlineClasses.kt index 0aac4708d0b..e92d11d1ed2 100644 --- a/compiler/testData/diagnostics/tests/inlineClasses/recursiveInlineClasses.kt +++ b/compiler/testData/diagnostics/tests/inlineClasses/recursiveInlineClasses.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses inline class Test1(val x: Test1) diff --git a/compiler/testData/diagnostics/tests/inlineClasses/reservedMembersAndConstructsInsideInlineClass.fir.kt b/compiler/testData/diagnostics/tests/inlineClasses/reservedMembersAndConstructsInsideInlineClass.fir.kt index c433e12c85f..03b8559c84a 100644 --- a/compiler/testData/diagnostics/tests/inlineClasses/reservedMembersAndConstructsInsideInlineClass.fir.kt +++ b/compiler/testData/diagnostics/tests/inlineClasses/reservedMembersAndConstructsInsideInlineClass.fir.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses // !DIAGNOSTICS: -UNUSED_PARAMETER inline class IC1(val x: Any) { diff --git a/compiler/testData/diagnostics/tests/inlineClasses/reservedMembersAndConstructsInsideInlineClass.kt b/compiler/testData/diagnostics/tests/inlineClasses/reservedMembersAndConstructsInsideInlineClass.kt index 147141c101d..3aadda3104c 100644 --- a/compiler/testData/diagnostics/tests/inlineClasses/reservedMembersAndConstructsInsideInlineClass.kt +++ b/compiler/testData/diagnostics/tests/inlineClasses/reservedMembersAndConstructsInsideInlineClass.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses // !DIAGNOSTICS: -UNUSED_PARAMETER inline class IC1(val x: Any) { diff --git a/compiler/testData/diagnostics/tests/inlineClasses/varPropertyWithInlineClassReceiver.fir.kt b/compiler/testData/diagnostics/tests/inlineClasses/varPropertyWithInlineClassReceiver.fir.kt index 7c4ae085dee..ded5b1d320e 100644 --- a/compiler/testData/diagnostics/tests/inlineClasses/varPropertyWithInlineClassReceiver.fir.kt +++ b/compiler/testData/diagnostics/tests/inlineClasses/varPropertyWithInlineClassReceiver.fir.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses // !DIAGNOSTICS: -UNUSED_PARAMETER inline class IC(val a: Any) { diff --git a/compiler/testData/diagnostics/tests/inlineClasses/varPropertyWithInlineClassReceiver.kt b/compiler/testData/diagnostics/tests/inlineClasses/varPropertyWithInlineClassReceiver.kt index b47aed89b60..9cd4f4fdb2e 100644 --- a/compiler/testData/diagnostics/tests/inlineClasses/varPropertyWithInlineClassReceiver.kt +++ b/compiler/testData/diagnostics/tests/inlineClasses/varPropertyWithInlineClassReceiver.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses // !DIAGNOSTICS: -UNUSED_PARAMETER inline class IC(val a: Any) { diff --git a/compiler/testData/diagnostics/tests/inlineClasses/varargsOnParametersOfInlineClassType.fir.kt b/compiler/testData/diagnostics/tests/inlineClasses/varargsOnParametersOfInlineClassType.fir.kt index dceb49c64ac..938e265af68 100644 --- a/compiler/testData/diagnostics/tests/inlineClasses/varargsOnParametersOfInlineClassType.fir.kt +++ b/compiler/testData/diagnostics/tests/inlineClasses/varargsOnParametersOfInlineClassType.fir.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses // !DIAGNOSTICS: -UNUSED_PARAMETER, -UNUSED_VARIABLE, -UNUSED_ANONYMOUS_PARAMETER inline class Foo(val x: Int) diff --git a/compiler/testData/diagnostics/tests/inlineClasses/varargsOnParametersOfInlineClassType.kt b/compiler/testData/diagnostics/tests/inlineClasses/varargsOnParametersOfInlineClassType.kt index 749a288b2b3..456a4ef3157 100644 --- a/compiler/testData/diagnostics/tests/inlineClasses/varargsOnParametersOfInlineClassType.kt +++ b/compiler/testData/diagnostics/tests/inlineClasses/varargsOnParametersOfInlineClassType.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses // !DIAGNOSTICS: -UNUSED_PARAMETER, -UNUSED_VARIABLE, -UNUSED_ANONYMOUS_PARAMETER inline class Foo(val x: Int) diff --git a/compiler/testData/diagnostics/tests/j+k/primitiveOverridesWithInlineClass/inlineClassErasedToPrimitiveInt.kt b/compiler/testData/diagnostics/tests/j+k/primitiveOverridesWithInlineClass/inlineClassErasedToPrimitiveInt.kt index 77873fc8132..deff956d8f8 100644 --- a/compiler/testData/diagnostics/tests/j+k/primitiveOverridesWithInlineClass/inlineClassErasedToPrimitiveInt.kt +++ b/compiler/testData/diagnostics/tests/j+k/primitiveOverridesWithInlineClass/inlineClassErasedToPrimitiveInt.kt @@ -1,5 +1,5 @@ // FIR_IDENTICAL -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses // FILE: kt1.kt package kt diff --git a/compiler/testData/diagnostics/tests/multiplatform/inlineClasses/expectActualInlineClass.fir.kt b/compiler/testData/diagnostics/tests/multiplatform/inlineClasses/expectActualInlineClass.fir.kt index 16e9f770049..87931f0c35f 100644 --- a/compiler/testData/diagnostics/tests/multiplatform/inlineClasses/expectActualInlineClass.fir.kt +++ b/compiler/testData/diagnostics/tests/multiplatform/inlineClasses/expectActualInlineClass.fir.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +MultiPlatformProjects, +InlineClasses +// !LANGUAGE: +MultiPlatformProjects, +InlineClasses, -JvmInlineValueClasses // MODULE: m1-common // FILE: common.kt diff --git a/compiler/testData/diagnostics/tests/multiplatform/inlineClasses/expectActualInlineClass.kt b/compiler/testData/diagnostics/tests/multiplatform/inlineClasses/expectActualInlineClass.kt index b472ac50468..0fe15e75e3c 100644 --- a/compiler/testData/diagnostics/tests/multiplatform/inlineClasses/expectActualInlineClass.kt +++ b/compiler/testData/diagnostics/tests/multiplatform/inlineClasses/expectActualInlineClass.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +MultiPlatformProjects, +InlineClasses +// !LANGUAGE: +MultiPlatformProjects, +InlineClasses, -JvmInlineValueClasses // MODULE: m1-common // FILE: common.kt diff --git a/compiler/testData/diagnostics/tests/testsWithExplicitApi/inlineClasses.fir.kt b/compiler/testData/diagnostics/tests/testsWithExplicitApi/inlineClasses.fir.kt index c44333df293..85234994011 100644 --- a/compiler/testData/diagnostics/tests/testsWithExplicitApi/inlineClasses.fir.kt +++ b/compiler/testData/diagnostics/tests/testsWithExplicitApi/inlineClasses.fir.kt @@ -1,4 +1,5 @@ // !DIAGNOSTICS: -EXPERIMENTAL_FEATURE_WARNING +// !LANGUAGE: -JvmInlineValueClasses // SKIP_TXT inline class Value1(val inner: Int) diff --git a/compiler/testData/diagnostics/tests/testsWithExplicitApi/inlineClasses.kt b/compiler/testData/diagnostics/tests/testsWithExplicitApi/inlineClasses.kt index bc0db7443e6..4ac8337119e 100644 --- a/compiler/testData/diagnostics/tests/testsWithExplicitApi/inlineClasses.kt +++ b/compiler/testData/diagnostics/tests/testsWithExplicitApi/inlineClasses.kt @@ -1,4 +1,5 @@ // !DIAGNOSTICS: -EXPERIMENTAL_FEATURE_WARNING +// !LANGUAGE: -JvmInlineValueClasses // SKIP_TXT inline class Value1(val inner: Int) diff --git a/compiler/testData/diagnostics/tests/valueClasses/jvmInlineApplicability.kt b/compiler/testData/diagnostics/tests/valueClasses/jvmInlineApplicability.kt index 2993956b92f..614b06aa4f7 100644 --- a/compiler/testData/diagnostics/tests/valueClasses/jvmInlineApplicability.kt +++ b/compiler/testData/diagnostics/tests/valueClasses/jvmInlineApplicability.kt @@ -6,7 +6,7 @@ package kotlin.jvm annotation class JvmInline @JvmInline -inline class IC(val a: Any) +inline class IC(val a: Any) @JvmInline value class VC(val a: Any) diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/inlineClass.kt b/compiler/testData/diagnostics/testsWithJsStdLib/native/inlineClass.kt index 66067604eae..7c5f9b25cbf 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/inlineClass.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/inlineClass.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses external inline class C(val a: Int) { fun foo() diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/inlineClassAsParameterOrReturnType.kt.kt b/compiler/testData/diagnostics/testsWithJsStdLib/native/inlineClassAsParameterOrReturnType.kt.kt index c694bc7e93b..b3ae0119402 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/inlineClassAsParameterOrReturnType.kt.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/inlineClassAsParameterOrReturnType.kt.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses // FILE: uint.kt diff --git a/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/changingNullabilityOfOrdinaryClassIsBinaryCompatibleChange.kt b/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/changingNullabilityOfOrdinaryClassIsBinaryCompatibleChange.kt index f0d500dabbd..dbc3ded3bcc 100644 --- a/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/changingNullabilityOfOrdinaryClassIsBinaryCompatibleChange.kt +++ b/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/changingNullabilityOfOrdinaryClassIsBinaryCompatibleChange.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses // !DIAGNOSTICS: -UNUSED_PARAMETER inline class IC(val i: Int) diff --git a/compiler/testData/diagnostics/testsWithJvmBackend/valueClasses/cloneable.fir.kt b/compiler/testData/diagnostics/testsWithJvmBackend/valueClasses/cloneable.fir.kt index fc93e2f2698..41d8ed34a34 100644 --- a/compiler/testData/diagnostics/testsWithJvmBackend/valueClasses/cloneable.fir.kt +++ b/compiler/testData/diagnostics/testsWithJvmBackend/valueClasses/cloneable.fir.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses // !DIAGNOSTICS: -UNUSED_PARAMETER, -PLATFORM_CLASS_MAPPED_TO_KOTLIN // WITH_RUNTIME diff --git a/compiler/testData/diagnostics/testsWithJvmBackend/valueClasses/cloneable.kt b/compiler/testData/diagnostics/testsWithJvmBackend/valueClasses/cloneable.kt index fc93e2f2698..41d8ed34a34 100644 --- a/compiler/testData/diagnostics/testsWithJvmBackend/valueClasses/cloneable.kt +++ b/compiler/testData/diagnostics/testsWithJvmBackend/valueClasses/cloneable.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses // !DIAGNOSTICS: -UNUSED_PARAMETER, -PLATFORM_CLASS_MAPPED_TO_KOTLIN // WITH_RUNTIME diff --git a/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationApplicability/jvmNameOnMangledNames.fir.kt b/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationApplicability/jvmNameOnMangledNames.fir.kt index c936aeb4b86..49447d38ef8 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationApplicability/jvmNameOnMangledNames.fir.kt +++ b/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationApplicability/jvmNameOnMangledNames.fir.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses // !DIAGNOSTICS: -UNUSED_PARAMETER inline class Foo(val x: Int) { diff --git a/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationApplicability/jvmNameOnMangledNames.kt b/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationApplicability/jvmNameOnMangledNames.kt index 6842cfb2732..fbabe7343f8 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationApplicability/jvmNameOnMangledNames.kt +++ b/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationApplicability/jvmNameOnMangledNames.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses // !DIAGNOSTICS: -UNUSED_PARAMETER inline class Foo(val x: Int) { diff --git a/compiler/testData/diagnostics/testsWithStdLib/annotations/jvmField/jvmFieldApplicability.fir.kt b/compiler/testData/diagnostics/testsWithStdLib/annotations/jvmField/jvmFieldApplicability.fir.kt index 81ad67b7c2f..d7b92c8ea9e 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/annotations/jvmField/jvmFieldApplicability.fir.kt +++ b/compiler/testData/diagnostics/testsWithStdLib/annotations/jvmField/jvmFieldApplicability.fir.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +NestedClassesInAnnotations +InlineClasses +// !LANGUAGE: +NestedClassesInAnnotations +InlineClasses -JvmInlineValueClasses // !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE @kotlin.jvm.JvmField diff --git a/compiler/testData/diagnostics/testsWithStdLib/annotations/jvmField/jvmFieldApplicability.kt b/compiler/testData/diagnostics/testsWithStdLib/annotations/jvmField/jvmFieldApplicability.kt index b92ad1e8d35..96e2bc3e020 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/annotations/jvmField/jvmFieldApplicability.kt +++ b/compiler/testData/diagnostics/testsWithStdLib/annotations/jvmField/jvmFieldApplicability.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +NestedClassesInAnnotations +InlineClasses +// !LANGUAGE: +NestedClassesInAnnotations +InlineClasses -JvmInlineValueClasses // !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE @kotlin.jvm.JvmField diff --git a/compiler/testData/diagnostics/testsWithStdLib/annotations/jvmOverloads/jvmOverloadsOnMangledFunctions.fir.kt b/compiler/testData/diagnostics/testsWithStdLib/annotations/jvmOverloads/jvmOverloadsOnMangledFunctions.fir.kt index b6b09818cab..5f8e0ea3540 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/annotations/jvmOverloads/jvmOverloadsOnMangledFunctions.fir.kt +++ b/compiler/testData/diagnostics/testsWithStdLib/annotations/jvmOverloads/jvmOverloadsOnMangledFunctions.fir.kt @@ -1,5 +1,5 @@ // !DIAGNOSTICS: -UNUSED_PARAMETER -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses inline class Z(val x: Int) diff --git a/compiler/testData/diagnostics/testsWithStdLib/annotations/jvmOverloads/jvmOverloadsOnMangledFunctions.kt b/compiler/testData/diagnostics/testsWithStdLib/annotations/jvmOverloads/jvmOverloadsOnMangledFunctions.kt index 0bc34e14216..ca745b61bb4 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/annotations/jvmOverloads/jvmOverloadsOnMangledFunctions.kt +++ b/compiler/testData/diagnostics/testsWithStdLib/annotations/jvmOverloads/jvmOverloadsOnMangledFunctions.kt @@ -1,5 +1,5 @@ // !DIAGNOSTICS: -UNUSED_PARAMETER -// !LANGUAGE: +InlineClasses +// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses inline class Z(val x: Int) diff --git a/compiler/testData/diagnostics/testsWithStdLib/coroutines/usageOfResultTypeInReturnType.fir.kt b/compiler/testData/diagnostics/testsWithStdLib/coroutines/usageOfResultTypeInReturnType.fir.kt index 8d82d9505dd..0053f27fce0 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/coroutines/usageOfResultTypeInReturnType.fir.kt +++ b/compiler/testData/diagnostics/testsWithStdLib/coroutines/usageOfResultTypeInReturnType.fir.kt @@ -1,5 +1,5 @@ // !DIAGNOSTICS: -UNUSED_PARAMETER, -UNUSED_EXPRESSION, -UNUSED_VARIABLE -// !LANGUAGE: +InlineClasses -AllowResultInReturnType +// !LANGUAGE: +InlineClasses -AllowResultInReturnType, -JvmInlineValueClasses typealias ResultAlias = Result diff --git a/compiler/testData/diagnostics/testsWithStdLib/coroutines/usageOfResultTypeInReturnType.kt b/compiler/testData/diagnostics/testsWithStdLib/coroutines/usageOfResultTypeInReturnType.kt index 7a076f5fac8..75ae6a930a2 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/coroutines/usageOfResultTypeInReturnType.kt +++ b/compiler/testData/diagnostics/testsWithStdLib/coroutines/usageOfResultTypeInReturnType.kt @@ -1,5 +1,5 @@ // !DIAGNOSTICS: -UNUSED_PARAMETER, -UNUSED_EXPRESSION, -UNUSED_VARIABLE -// !LANGUAGE: +InlineClasses -AllowResultInReturnType +// !LANGUAGE: +InlineClasses -AllowResultInReturnType, -JvmInlineValueClasses typealias ResultAlias = Result diff --git a/compiler/testData/diagnostics/testsWithStdLib/coroutines/usageOfResultTypeInReturnType_1_4.fir.kt b/compiler/testData/diagnostics/testsWithStdLib/coroutines/usageOfResultTypeInReturnType_1_4.fir.kt index 4ababa8b587..dc180b8a96b 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/coroutines/usageOfResultTypeInReturnType_1_4.fir.kt +++ b/compiler/testData/diagnostics/testsWithStdLib/coroutines/usageOfResultTypeInReturnType_1_4.fir.kt @@ -1,5 +1,5 @@ // !DIAGNOSTICS: -UNUSED_PARAMETER, -UNUSED_EXPRESSION, -UNUSED_VARIABLE -// !LANGUAGE: +InlineClasses +AllowResultInReturnType +// !LANGUAGE: +InlineClasses +AllowResultInReturnType, -JvmInlineValueClasses typealias ResultAlias = Result diff --git a/compiler/testData/diagnostics/testsWithStdLib/coroutines/usageOfResultTypeInReturnType_1_4.kt b/compiler/testData/diagnostics/testsWithStdLib/coroutines/usageOfResultTypeInReturnType_1_4.kt index 4ba97ee994d..b319f429f45 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/coroutines/usageOfResultTypeInReturnType_1_4.kt +++ b/compiler/testData/diagnostics/testsWithStdLib/coroutines/usageOfResultTypeInReturnType_1_4.kt @@ -1,5 +1,5 @@ // !DIAGNOSTICS: -UNUSED_PARAMETER, -UNUSED_EXPRESSION, -UNUSED_VARIABLE -// !LANGUAGE: +InlineClasses +AllowResultInReturnType +// !LANGUAGE: +InlineClasses +AllowResultInReturnType, -JvmInlineValueClasses typealias ResultAlias = Result diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java index 97fa85e4f4a..b7a58752387 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java @@ -15011,6 +15011,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/tests/inlineClasses/inlineClassDeclarationCheck.kt"); } + @Test + @TestMetadata("inlineClassDeprecated.kt") + public void testInlineClassDeprecated() throws Exception { + runTest("compiler/testData/diagnostics/tests/inlineClasses/inlineClassDeprecated.kt"); + } + @Test @TestMetadata("inlineClassImplementsCollection.kt") public void testInlineClassImplementsCollection() throws Exception { -- GitLab