diff --git a/compiler/testData/codegen/box/inlineClasses/contextsAndAccessors/kt27513.kt b/compiler/testData/codegen/box/inlineClasses/contextsAndAccessors/kt27513.kt new file mode 100644 index 00000000000..0c9196b6b80 --- /dev/null +++ b/compiler/testData/codegen/box/inlineClasses/contextsAndAccessors/kt27513.kt @@ -0,0 +1,10 @@ +// !LANGUAGE: +InlineClasses +// WITH_RUNTIME +// IGNORE_BACKEND: JVM_IR + +inline class A(val b: String) { + override fun toString(): String = + buildString { append(b) } +} + +fun box() = A("OK").toString() diff --git a/compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFunInInlineClass.kt b/compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFunInInlineClass.kt new file mode 100644 index 00000000000..473fcd19de4 --- /dev/null +++ b/compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFunInInlineClass.kt @@ -0,0 +1,35 @@ +// !LANGUAGE: +InlineClasses +// IGNORE_BACKEND: JVM_IR + +inline class Z(val int: Int) +inline class L(val long: Long) +inline class Str(val string: String) +inline class Obj(val obj: Any) + +inline class Host(val xx: Int) { + inline fun withDefaultZ(fn: (Z) -> R, x: Z = Z(xx)) = fn(x) + inline fun withDefaultL(fn: (L) -> R, x: L = L(xx.toLong())) = fn(x) + inline fun withDefaultL2(x: L = L(xx.toLong()), fn: (L) -> R) = fn(x) + inline fun withDefaultStr(fn: (Str) -> R, x: Str = Str(xx.toString())) = fn(x) + inline fun withDefaultObj(fn: (Obj) -> R, x: Obj = Obj(xx.toString())) = fn(x) + inline fun withDefaultObj2(x: Obj = Obj(xx.toString()), fn: (Obj) -> R) = fn(x) + + fun testWithDefaultZ() = withDefaultZ({ Z(it.int + 1) }) + fun testWithDefaultL() = withDefaultL({ L(it.long + 1L) }) + fun testWithDefaultL2() = withDefaultL2(fn = { L(it.long + 1L) }) + fun testWithDefaultStr() = withDefaultStr({ Str(it.string + "1") }) + fun testWithDefaultObj() = withDefaultObj({ Obj(it.obj.toString() + "1") }) + fun testWithDefaultObj2() = withDefaultObj2(fn = { Obj(it.obj.toString() + "1") }) +} + +fun box(): String { + val h = Host(42) + if (h.testWithDefaultZ().int != 43) throw AssertionError() + if (h.testWithDefaultL().long != 43L) throw AssertionError() + if (h.testWithDefaultL2().long != 43L) throw AssertionError() + if (h.testWithDefaultStr().string != "421") throw AssertionError() + if (h.testWithDefaultObj().obj != "421") throw AssertionError() + if (h.testWithDefaultObj2().obj != "421") throw AssertionError() + + return "OK" +} \ No newline at end of file diff --git a/compiler/testData/codegen/box/inlineClasses/defaultParameterValues/kt27416.kt b/compiler/testData/codegen/box/inlineClasses/defaultParameterValues/kt27416.kt new file mode 100644 index 00000000000..c65f3bc2271 --- /dev/null +++ b/compiler/testData/codegen/box/inlineClasses/defaultParameterValues/kt27416.kt @@ -0,0 +1,8 @@ +// !LANGUAGE: +InlineClasses +// IGNORE_BACKEND: JVM_IR + +inline class A(val i: Int) { + fun foo(s: String = "OK") = s +} + +fun box() = A(42).foo() \ No newline at end of file diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java index 36f9271bf18..cf3b73e80e8 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java @@ -12111,6 +12111,11 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { runTest("compiler/testData/codegen/box/inlineClasses/contextsAndAccessors/kt26858.kt"); } + @TestMetadata("kt27513.kt") + public void testKt27513() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/contextsAndAccessors/kt27513.kt"); + } + @TestMetadata("lambdaInInlineClassFun.kt") public void testLambdaInInlineClassFun() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/contextsAndAccessors/lambdaInInlineClassFun.kt"); @@ -12169,6 +12174,11 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFun.kt"); } + @TestMetadata("defaultValueOfInlineClassTypeInInlineFunInInlineClass.kt") + public void testDefaultValueOfInlineClassTypeInInlineFunInInlineClass() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFunInInlineClass.kt"); + } + @TestMetadata("inlineClassFun.kt") public void testInlineClassFun() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassFun.kt"); @@ -12188,6 +12198,11 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { public void testKt26554() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/kt26554.kt"); } + + @TestMetadata("kt27416.kt") + public void testKt27416() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/kt27416.kt"); + } } @TestMetadata("compiler/testData/codegen/box/inlineClasses/functionNameMangling") diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java index 3bf6ed94266..a33fa685f5e 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -12111,6 +12111,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes runTest("compiler/testData/codegen/box/inlineClasses/contextsAndAccessors/kt26858.kt"); } + @TestMetadata("kt27513.kt") + public void testKt27513() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/contextsAndAccessors/kt27513.kt"); + } + @TestMetadata("lambdaInInlineClassFun.kt") public void testLambdaInInlineClassFun() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/contextsAndAccessors/lambdaInInlineClassFun.kt"); @@ -12169,6 +12174,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFun.kt"); } + @TestMetadata("defaultValueOfInlineClassTypeInInlineFunInInlineClass.kt") + public void testDefaultValueOfInlineClassTypeInInlineFunInInlineClass() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFunInInlineClass.kt"); + } + @TestMetadata("inlineClassFun.kt") public void testInlineClassFun() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassFun.kt"); @@ -12188,6 +12198,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes public void testKt26554() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/kt26554.kt"); } + + @TestMetadata("kt27416.kt") + public void testKt27416() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/kt27416.kt"); + } } @TestMetadata("compiler/testData/codegen/box/inlineClasses/functionNameMangling") diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java index e45275efbd5..e0c7c04257e 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java @@ -12116,6 +12116,11 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes runTest("compiler/testData/codegen/box/inlineClasses/contextsAndAccessors/kt26858.kt"); } + @TestMetadata("kt27513.kt") + public void testKt27513() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/contextsAndAccessors/kt27513.kt"); + } + @TestMetadata("lambdaInInlineClassFun.kt") public void testLambdaInInlineClassFun() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/contextsAndAccessors/lambdaInInlineClassFun.kt"); @@ -12174,6 +12179,11 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFun.kt"); } + @TestMetadata("defaultValueOfInlineClassTypeInInlineFunInInlineClass.kt") + public void testDefaultValueOfInlineClassTypeInInlineFunInInlineClass() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFunInInlineClass.kt"); + } + @TestMetadata("inlineClassFun.kt") public void testInlineClassFun() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassFun.kt"); @@ -12193,6 +12203,11 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes public void testKt26554() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/kt26554.kt"); } + + @TestMetadata("kt27416.kt") + public void testKt27416() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/kt27416.kt"); + } } @TestMetadata("compiler/testData/codegen/box/inlineClasses/functionNameMangling") diff --git a/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java index d9e55d37034..d9a2826fb81 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java @@ -5064,6 +5064,34 @@ public class LocalInspectionTestGenerated extends AbstractLocalInspectionTest { } } + @TestMetadata("idea/testData/inspectionsLocal/replaceArraysCopyOfWithCopyOf") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class ReplaceArraysCopyOfWithCopyOf extends AbstractLocalInspectionTest { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.ANY, testDataFilePath); + } + + public void testAllFilesPresentInReplaceArraysCopyOfWithCopyOf() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/inspectionsLocal/replaceArraysCopyOfWithCopyOf"), Pattern.compile("^([\\w\\-_]+)\\.(kt|kts)$"), TargetBackend.ANY, true); + } + + @TestMetadata("nonArraysCopyOf.kt") + public void testNonArraysCopyOf() throws Exception { + runTest("idea/testData/inspectionsLocal/replaceArraysCopyOfWithCopyOf/nonArraysCopyOf.kt"); + } + + @TestMetadata("qualified.kt") + public void testQualified() throws Exception { + runTest("idea/testData/inspectionsLocal/replaceArraysCopyOfWithCopyOf/qualified.kt"); + } + + @TestMetadata("simple.kt") + public void testSimple() throws Exception { + runTest("idea/testData/inspectionsLocal/replaceArraysCopyOfWithCopyOf/simple.kt"); + } + } + @TestMetadata("idea/testData/inspectionsLocal/replaceAssertBooleanWithAssertEquality") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) @@ -5117,34 +5145,6 @@ public class LocalInspectionTestGenerated extends AbstractLocalInspectionTest { } } - @TestMetadata("idea/testData/inspectionsLocal/replaceArraysCopyOfWithCopyOf") - @TestDataPath("$PROJECT_ROOT") - @RunWith(JUnit3RunnerWithInners.class) - public static class ReplaceArraysCopyOfWithCopyOf extends AbstractLocalInspectionTest { - public void testAllFilesPresentInReplaceArraysCopyOfWithCopyOf() throws Exception { - KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/inspectionsLocal/replaceArraysCopyOfWithCopyOf"), Pattern.compile("^([\\w\\-_]+)\\.(kt|kts)$"), TargetBackend.ANY, true); - } - - @TestMetadata("nonArraysCopyOf.kt") - public void testNonArraysCopyOf() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspectionsLocal/replaceArraysCopyOfWithCopyOf/nonArraysCopyOf.kt"); - doTest(fileName); - } - - - @TestMetadata("qualified.kt") - public void testQualified() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspectionsLocal/replaceArraysCopyOfWithCopyOf/qualified.kt"); - doTest(fileName); - } - - @TestMetadata("simple.kt") - public void testSimple() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("idea/testData/inspectionsLocal/replaceArraysCopyOfWithCopyOf/simple.kt"); - doTest(fileName); - } - } - @TestMetadata("idea/testData/inspectionsLocal/replacePutWithAssignment") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IrJsCodegenBoxTestGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IrJsCodegenBoxTestGenerated.java index b4e19bdd42b..b4cc499bf92 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IrJsCodegenBoxTestGenerated.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/IrJsCodegenBoxTestGenerated.java @@ -10646,6 +10646,11 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest { runTest("compiler/testData/codegen/box/inlineClasses/contextsAndAccessors/kt26858.kt"); } + @TestMetadata("kt27513.kt") + public void testKt27513() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/contextsAndAccessors/kt27513.kt"); + } + @TestMetadata("lambdaInInlineClassFun.kt") public void testLambdaInInlineClassFun() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/contextsAndAccessors/lambdaInInlineClassFun.kt"); @@ -10704,6 +10709,11 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFun.kt"); } + @TestMetadata("defaultValueOfInlineClassTypeInInlineFunInInlineClass.kt") + public void testDefaultValueOfInlineClassTypeInInlineFunInInlineClass() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFunInInlineClass.kt"); + } + @TestMetadata("inlineClassFun.kt") public void testInlineClassFun() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassFun.kt"); @@ -10723,6 +10733,11 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest { public void testKt26554() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/kt26554.kt"); } + + @TestMetadata("kt27416.kt") + public void testKt27416() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/kt27416.kt"); + } } @TestMetadata("compiler/testData/codegen/box/inlineClasses/functionNameMangling") diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java index a2ce953f0f7..dc0e31f25b5 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java @@ -11691,6 +11691,11 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest { runTest("compiler/testData/codegen/box/inlineClasses/contextsAndAccessors/kt26858.kt"); } + @TestMetadata("kt27513.kt") + public void testKt27513() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/contextsAndAccessors/kt27513.kt"); + } + @TestMetadata("lambdaInInlineClassFun.kt") public void testLambdaInInlineClassFun() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/contextsAndAccessors/lambdaInInlineClassFun.kt"); @@ -11749,6 +11754,11 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFun.kt"); } + @TestMetadata("defaultValueOfInlineClassTypeInInlineFunInInlineClass.kt") + public void testDefaultValueOfInlineClassTypeInInlineFunInInlineClass() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/defaultValueOfInlineClassTypeInInlineFunInInlineClass.kt"); + } + @TestMetadata("inlineClassFun.kt") public void testInlineClassFun() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/inlineClassFun.kt"); @@ -11768,6 +11778,11 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest { public void testKt26554() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/kt26554.kt"); } + + @TestMetadata("kt27416.kt") + public void testKt27416() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/defaultParameterValues/kt27416.kt"); + } } @TestMetadata("compiler/testData/codegen/box/inlineClasses/functionNameMangling")