[K/JS] Allow parameter properties inside external declarations ^KT-65965 Fixed

This commit is contained in:
Artem Kobzar
2024-02-29 09:46:59 +00:00
committed by Space Team
parent 5e83350576
commit 4f4c98ec73
12 changed files with 234 additions and 7 deletions
@@ -157,7 +157,10 @@ class JsExternalChecker(private val allowCompanionInInterface: Boolean) : Declar
checkDelegation(declaration, descriptor, trace)
checkAnonymousInitializer(declaration, trace)
checkEnumEntry(declaration, trace)
checkConstructorPropertyParam(declaration, descriptor, trace)
if (!context.languageVersionSettings.supportsFeature(LanguageFeature.JsExternalPropertyParameters)) {
checkConstructorPropertyParam(declaration, descriptor, trace)
}
}
private fun checkBody(
@@ -986,6 +986,18 @@ public class FirLightTreeJsOldFrontendDiagnosticsTestGenerated extends AbstractF
runTest("compiler/testData/diagnostics/testsWithJsStdLib/native/inlineClass.kt");
}
@Test
@TestMetadata("inlineClassAsParameterOrReturnTypeWhenPropertyParametersAllowed.kt.kt")
public void testInlineClassAsParameterOrReturnTypeWhenPropertyParametersAllowed_kt() {
runTest("compiler/testData/diagnostics/testsWithJsStdLib/native/inlineClassAsParameterOrReturnTypeWhenPropertyParametersAllowed.kt.kt");
}
@Test
@TestMetadata("inlineClassAsParameterOrReturnTypeWithPropertyParameters_allowed.kt.kt")
public void testInlineClassAsParameterOrReturnTypeWithPropertyParameters_allowed_kt() {
runTest("compiler/testData/diagnostics/testsWithJsStdLib/native/inlineClassAsParameterOrReturnTypeWithPropertyParameters_allowed.kt.kt");
}
@Test
@TestMetadata("inlineClassAsParameterOrReturnType_allowed.kt.kt")
public void testInlineClassAsParameterOrReturnType_allowed_kt() {
@@ -998,6 +1010,12 @@ public class FirLightTreeJsOldFrontendDiagnosticsTestGenerated extends AbstractF
runTest("compiler/testData/diagnostics/testsWithJsStdLib/native/inlineClassAsParameterOrReturnType.kt.kt");
}
@Test
@TestMetadata("inlineClassWithAllowedPropertyParameter.kt")
public void testInlineClassWithAllowedPropertyParameter() {
runTest("compiler/testData/diagnostics/testsWithJsStdLib/native/inlineClassWithAllowedPropertyParameter.kt");
}
@Test
@TestMetadata("inlineExtensionToNative.kt")
public void testInlineExtensionToNative() {
@@ -1040,6 +1058,12 @@ public class FirLightTreeJsOldFrontendDiagnosticsTestGenerated extends AbstractF
runTest("compiler/testData/diagnostics/testsWithJsStdLib/native/propertyParameter.kt");
}
@Test
@TestMetadata("propertyParameterWhenItsAllowed.kt")
public void testPropertyParameterWhenItsAllowed() {
runTest("compiler/testData/diagnostics/testsWithJsStdLib/native/propertyParameterWhenItsAllowed.kt");
}
@Test
@TestMetadata("wrongTarget.kt")
public void testWrongTarget() {
@@ -986,6 +986,18 @@ public class FirPsiJsOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiJ
runTest("compiler/testData/diagnostics/testsWithJsStdLib/native/inlineClass.kt");
}
@Test
@TestMetadata("inlineClassAsParameterOrReturnTypeWhenPropertyParametersAllowed.kt.kt")
public void testInlineClassAsParameterOrReturnTypeWhenPropertyParametersAllowed_kt() {
runTest("compiler/testData/diagnostics/testsWithJsStdLib/native/inlineClassAsParameterOrReturnTypeWhenPropertyParametersAllowed.kt.kt");
}
@Test
@TestMetadata("inlineClassAsParameterOrReturnTypeWithPropertyParameters_allowed.kt.kt")
public void testInlineClassAsParameterOrReturnTypeWithPropertyParameters_allowed_kt() {
runTest("compiler/testData/diagnostics/testsWithJsStdLib/native/inlineClassAsParameterOrReturnTypeWithPropertyParameters_allowed.kt.kt");
}
@Test
@TestMetadata("inlineClassAsParameterOrReturnType_allowed.kt.kt")
public void testInlineClassAsParameterOrReturnType_allowed_kt() {
@@ -998,6 +1010,12 @@ public class FirPsiJsOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiJ
runTest("compiler/testData/diagnostics/testsWithJsStdLib/native/inlineClassAsParameterOrReturnType.kt.kt");
}
@Test
@TestMetadata("inlineClassWithAllowedPropertyParameter.kt")
public void testInlineClassWithAllowedPropertyParameter() {
runTest("compiler/testData/diagnostics/testsWithJsStdLib/native/inlineClassWithAllowedPropertyParameter.kt");
}
@Test
@TestMetadata("inlineExtensionToNative.kt")
public void testInlineExtensionToNative() {
@@ -1040,6 +1058,12 @@ public class FirPsiJsOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiJ
runTest("compiler/testData/diagnostics/testsWithJsStdLib/native/propertyParameter.kt");
}
@Test
@TestMetadata("propertyParameterWhenItsAllowed.kt")
public void testPropertyParameterWhenItsAllowed() {
runTest("compiler/testData/diagnostics/testsWithJsStdLib/native/propertyParameterWhenItsAllowed.kt");
}
@Test
@TestMetadata("wrongTarget.kt")
public void testWrongTarget() {
@@ -986,6 +986,18 @@ public class DiagnosticsWithJsStdLibTestGenerated extends AbstractDiagnosticsTes
runTest("compiler/testData/diagnostics/testsWithJsStdLib/native/inlineClass.kt");
}
@Test
@TestMetadata("inlineClassAsParameterOrReturnTypeWhenPropertyParametersAllowed.kt.kt")
public void testInlineClassAsParameterOrReturnTypeWhenPropertyParametersAllowed_kt() {
runTest("compiler/testData/diagnostics/testsWithJsStdLib/native/inlineClassAsParameterOrReturnTypeWhenPropertyParametersAllowed.kt.kt");
}
@Test
@TestMetadata("inlineClassAsParameterOrReturnTypeWithPropertyParameters_allowed.kt.kt")
public void testInlineClassAsParameterOrReturnTypeWithPropertyParameters_allowed_kt() {
runTest("compiler/testData/diagnostics/testsWithJsStdLib/native/inlineClassAsParameterOrReturnTypeWithPropertyParameters_allowed.kt.kt");
}
@Test
@TestMetadata("inlineClassAsParameterOrReturnType_allowed.kt.kt")
public void testInlineClassAsParameterOrReturnType_allowed_kt() {
@@ -998,6 +1010,12 @@ public class DiagnosticsWithJsStdLibTestGenerated extends AbstractDiagnosticsTes
runTest("compiler/testData/diagnostics/testsWithJsStdLib/native/inlineClassAsParameterOrReturnType.kt.kt");
}
@Test
@TestMetadata("inlineClassWithAllowedPropertyParameter.kt")
public void testInlineClassWithAllowedPropertyParameter() {
runTest("compiler/testData/diagnostics/testsWithJsStdLib/native/inlineClassWithAllowedPropertyParameter.kt");
}
@Test
@TestMetadata("inlineExtensionToNative.kt")
public void testInlineExtensionToNative() {
@@ -1040,6 +1058,12 @@ public class DiagnosticsWithJsStdLibTestGenerated extends AbstractDiagnosticsTes
runTest("compiler/testData/diagnostics/testsWithJsStdLib/native/propertyParameter.kt");
}
@Test
@TestMetadata("propertyParameterWhenItsAllowed.kt")
public void testPropertyParameterWhenItsAllowed() {
runTest("compiler/testData/diagnostics/testsWithJsStdLib/native/propertyParameterWhenItsAllowed.kt");
}
@Test
@TestMetadata("wrongTarget.kt")
public void testWrongTarget() {