[JVM] Forbid non-JvmInline value classes again
This commit is contained in:
committed by
Space
parent
7595f798e1
commit
df1de3a7d3
+6
@@ -1285,6 +1285,12 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirErrors.VALUE_CLASS_EMPTY_CONSTRUCTOR) { firDiagnostic ->
|
||||
ValueClassEmptyConstructorImpl(
|
||||
firDiagnostic as KtPsiDiagnostic,
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirErrors.VALUE_CLASS_CONSTRUCTOR_NOT_FINAL_READ_ONLY_PARAMETER) { firDiagnostic ->
|
||||
ValueClassConstructorNotFinalReadOnlyParameterImpl(
|
||||
firDiagnostic as KtPsiDiagnostic,
|
||||
|
||||
+4
@@ -928,6 +928,10 @@ sealed class KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
|
||||
override val diagnosticClass get() = InlineClassConstructorWrongParametersSize::class
|
||||
}
|
||||
|
||||
abstract class ValueClassEmptyConstructor : KtFirDiagnostic<KtElement>() {
|
||||
override val diagnosticClass get() = ValueClassEmptyConstructor::class
|
||||
}
|
||||
|
||||
abstract class ValueClassConstructorNotFinalReadOnlyParameter : KtFirDiagnostic<KtParameter>() {
|
||||
override val diagnosticClass get() = ValueClassConstructorNotFinalReadOnlyParameter::class
|
||||
}
|
||||
|
||||
+5
@@ -1110,6 +1110,11 @@ internal class InlineClassConstructorWrongParametersSizeImpl(
|
||||
override val token: ValidityToken,
|
||||
) : KtFirDiagnostic.InlineClassConstructorWrongParametersSize(), KtAbstractFirDiagnostic<KtElement>
|
||||
|
||||
internal class ValueClassEmptyConstructorImpl(
|
||||
override val firDiagnostic: KtPsiDiagnostic,
|
||||
override val token: ValidityToken,
|
||||
) : KtFirDiagnostic.ValueClassEmptyConstructor(), KtAbstractFirDiagnostic<KtElement>
|
||||
|
||||
internal class ValueClassConstructorNotFinalReadOnlyParameterImpl(
|
||||
override val firDiagnostic: KtPsiDiagnostic,
|
||||
override val token: ValidityToken,
|
||||
|
||||
+13
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir.diagnostic.compiler.base
|
||||
|
||||
import com.intellij.testFramework.TestDataPath;
|
||||
import org.jetbrains.kotlin.test.util.KtTestUtil;
|
||||
import org.jetbrains.kotlin.test.utils.TransformersFunctions;
|
||||
import org.jetbrains.kotlin.test.TestMetadata;
|
||||
import org.junit.jupiter.api.Nested;
|
||||
import org.junit.jupiter.api.Test;
|
||||
@@ -32113,6 +32114,12 @@ public class DiagnosisCompilerTestFE10TestdataTestGenerated extends AbstractDiag
|
||||
runTest("compiler/testData/diagnostics/tests/valueClasses/propertiesWithBackingFieldsInsideValueClass.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("recursiveMultiFieldValueClasses.kt")
|
||||
public void testRecursiveMultiFieldValueClasses() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/valueClasses/recursiveMultiFieldValueClasses.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithUniversal());
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("recursiveValueClasses.kt")
|
||||
public void testRecursiveValueClasses() throws Exception {
|
||||
@@ -32167,6 +32174,12 @@ public class DiagnosisCompilerTestFE10TestdataTestGenerated extends AbstractDiag
|
||||
runTest("compiler/testData/diagnostics/tests/valueClasses/valueClassWithForbiddenUnderlyingType.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("valueClassWithForbiddenUnderlyingTypeMultiField.kt")
|
||||
public void testValueClassWithForbiddenUnderlyingTypeMultiField() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/valueClasses/valueClassWithForbiddenUnderlyingTypeMultiField.kt", TransformersFunctions.getReplaceOptionalJvmInlineAnnotationWithUniversal());
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("valueClassesInsideAnnotations.kt")
|
||||
public void testValueClassesInsideAnnotations() throws Exception {
|
||||
|
||||
Reference in New Issue
Block a user