diff --git a/compiler/testData/codegen/box/callableReference/function/genericCallableReferencesWithNullableTypes.kt b/compiler/testData/codegen/box/callableReference/function/genericCallableReferencesWithNullableTypes.kt index d700d0335db..5feb3593e9d 100644 --- a/compiler/testData/codegen/box/callableReference/function/genericCallableReferencesWithNullableTypes.kt +++ b/compiler/testData/codegen/box/callableReference/function/genericCallableReferencesWithNullableTypes.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JS_IR // IGNORE_BACKEND: JS // WITH_RUNTIME diff --git a/compiler/testData/codegen/box/callableReference/function/genericCallableReferencesWithOverload.kt b/compiler/testData/codegen/box/callableReference/function/genericCallableReferencesWithOverload.kt index 39a093d5212..cb7ab6e616f 100644 --- a/compiler/testData/codegen/box/callableReference/function/genericCallableReferencesWithOverload.kt +++ b/compiler/testData/codegen/box/callableReference/function/genericCallableReferencesWithOverload.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JS_IR // IGNORE_BACKEND: JS // WITH_RUNTIME diff --git a/compiler/testData/codegen/box/callableReference/varargAndDefaults/bothWithCoercionToUnit.kt b/compiler/testData/codegen/box/callableReference/varargAndDefaults/bothWithCoercionToUnit.kt index 6566782f901..0207c0c60d3 100644 --- a/compiler/testData/codegen/box/callableReference/varargAndDefaults/bothWithCoercionToUnit.kt +++ b/compiler/testData/codegen/box/callableReference/varargAndDefaults/bothWithCoercionToUnit.kt @@ -1,5 +1,5 @@ // !LANGUAGE: +NewInference -// IGNORE_BACKEND: JS, JS_IR, JVM_IR +// IGNORE_BACKEND: JS, JVM_IR fun foo(s: String = "kotlin", vararg t: String): Boolean { if (s != "kotlin") throw AssertionError(s) diff --git a/compiler/testData/codegen/box/callableReference/varargAndDefaults/boundReferences.kt b/compiler/testData/codegen/box/callableReference/varargAndDefaults/boundReferences.kt index 9f483586044..e116dd9d14a 100644 --- a/compiler/testData/codegen/box/callableReference/varargAndDefaults/boundReferences.kt +++ b/compiler/testData/codegen/box/callableReference/varargAndDefaults/boundReferences.kt @@ -1,5 +1,5 @@ // !LANGUAGE: +NewInference -// IGNORE_BACKEND: JS, JS_IR, JVM_IR +// IGNORE_BACKEND: JS, JVM_IR // WITH_RUNTIME import kotlin.test.assertEquals diff --git a/compiler/testData/codegen/box/callableReference/varargAndDefaults/defaultAfterVararg.kt b/compiler/testData/codegen/box/callableReference/varargAndDefaults/defaultAfterVararg.kt index 4e1f542f7be..8c16db6a57e 100644 --- a/compiler/testData/codegen/box/callableReference/varargAndDefaults/defaultAfterVararg.kt +++ b/compiler/testData/codegen/box/callableReference/varargAndDefaults/defaultAfterVararg.kt @@ -1,5 +1,5 @@ // !LANGUAGE: +NewInference -// IGNORE_BACKEND: JS, JS_IR, JVM_IR +// IGNORE_BACKEND: JS, JVM_IR fun foo(vararg a: String, result: String = "OK"): String = if (a.size == 0) result else "Fail" diff --git a/compiler/testData/codegen/box/callableReference/varargAndDefaults/defaultWithGenericExpectedType.kt b/compiler/testData/codegen/box/callableReference/varargAndDefaults/defaultWithGenericExpectedType.kt index a65613c794f..e24b7775891 100644 --- a/compiler/testData/codegen/box/callableReference/varargAndDefaults/defaultWithGenericExpectedType.kt +++ b/compiler/testData/codegen/box/callableReference/varargAndDefaults/defaultWithGenericExpectedType.kt @@ -1,5 +1,5 @@ // !LANGUAGE: +NewInference -// IGNORE_BACKEND: JS_IR, JVM_IR +// IGNORE_BACKEND: JVM_IR fun foo(x: String, y: Char = 'K'): String = x + y diff --git a/compiler/testData/codegen/box/callableReference/varargAndDefaults/emptyVarargAndDefault.kt b/compiler/testData/codegen/box/callableReference/varargAndDefaults/emptyVarargAndDefault.kt index acb60f3a5c1..1870e5611e9 100644 --- a/compiler/testData/codegen/box/callableReference/varargAndDefaults/emptyVarargAndDefault.kt +++ b/compiler/testData/codegen/box/callableReference/varargAndDefaults/emptyVarargAndDefault.kt @@ -1,5 +1,5 @@ // !LANGUAGE: +NewInference -// IGNORE_BACKEND: JS, JS_IR, JVM_IR +// IGNORE_BACKEND: JS, JVM_IR fun foo(x: String = "O", vararg y: String): String = if (y.size == 0) x + "K" else "Fail" diff --git a/compiler/testData/codegen/box/callableReference/varargAndDefaults/inline.kt b/compiler/testData/codegen/box/callableReference/varargAndDefaults/inline.kt index 46fc008abd5..43de3a090f0 100644 --- a/compiler/testData/codegen/box/callableReference/varargAndDefaults/inline.kt +++ b/compiler/testData/codegen/box/callableReference/varargAndDefaults/inline.kt @@ -1,5 +1,5 @@ // !LANGUAGE: +NewInference -// IGNORE_BACKEND: JS, JS_IR, JVM_IR +// IGNORE_BACKEND: JS, JVM_IR fun foo(vararg l: Long, s: String = "OK"): String = if (l.size == 0) s else "Fail" diff --git a/compiler/testData/codegen/box/callableReference/varargAndDefaults/innerConstructorWithVararg.kt b/compiler/testData/codegen/box/callableReference/varargAndDefaults/innerConstructorWithVararg.kt new file mode 100644 index 00000000000..10dc8ebcc5d --- /dev/null +++ b/compiler/testData/codegen/box/callableReference/varargAndDefaults/innerConstructorWithVararg.kt @@ -0,0 +1,34 @@ +// !LANGUAGE: +NewInference +// IGNORE_BACKEND: JS, JVM_IR + + +class Outer(val o: String) { + inner class Inner1(val i: Int, vararg v: String) { + val result = "I1" + o + i + if (v.size == 0) "E" else v[0] + } + + inner class Inner2(val i: Int, vararg v: String = arrayOf("A")) { + val result = "I2" + o + i + v[0] + } +} + +fun use0(f: (Int) -> T) = f(11) +fun use1(f: (Int, String) -> T) = f(12, "B") + +fun box(): String { + val oouter = Outer("O") + + val r1 = use0(oouter::Inner1).result + if (r1 != "I1O11E") return "Fail1: $r1" + + val r2 = use1(oouter::Inner1).result + if (r2 != "I1O12B") return "Fail2: $r2" + + val r3 = use0(oouter::Inner2).result + if (r3 != "I2O11A") return "Fail3: $r3" + + val r4 = use1(oouter::Inner2).result + if (r4 != "I2O12B") return "Fail4: $r4" + + return "OK" +} diff --git a/compiler/testData/codegen/box/callableReference/varargAndDefaults/localFunctionWithDefault.kt b/compiler/testData/codegen/box/callableReference/varargAndDefaults/localFunctionWithDefault.kt new file mode 100644 index 00000000000..31aec6353fb --- /dev/null +++ b/compiler/testData/codegen/box/callableReference/varargAndDefaults/localFunctionWithDefault.kt @@ -0,0 +1,15 @@ +// !LANGUAGE: +NewInference +// IGNORE_BACKEND: JVM_IR + +fun call(f: (String, String) -> String, x: String, y: String): String = f(x, y) + +fun box(): String { + + var s = "1" + + fun foo(x: String, y: String = "5", z: String = "4"): String = s + x + y + z + + val r = call(::foo, "2", "3") + if (r != "1234") return "FAIL $r" + return "OK" +} \ No newline at end of file diff --git a/compiler/testData/codegen/box/callableReference/varargAndDefaults/manyDefaultsAndVararg.kt b/compiler/testData/codegen/box/callableReference/varargAndDefaults/manyDefaultsAndVararg.kt index ba967d5a958..519bb0e51e8 100644 --- a/compiler/testData/codegen/box/callableReference/varargAndDefaults/manyDefaultsAndVararg.kt +++ b/compiler/testData/codegen/box/callableReference/varargAndDefaults/manyDefaultsAndVararg.kt @@ -1,5 +1,5 @@ // !LANGUAGE: +NewInference -// IGNORE_BACKEND: JS, JS_IR, JVM_IR +// IGNORE_BACKEND: JS, JVM_IR // WITH_RUNTIME import kotlin.test.assertEquals diff --git a/compiler/testData/codegen/box/callableReference/varargAndDefaults/simpleDefaultArgument.kt b/compiler/testData/codegen/box/callableReference/varargAndDefaults/simpleDefaultArgument.kt index 5e57cac4ba0..b99f74ef7ac 100644 --- a/compiler/testData/codegen/box/callableReference/varargAndDefaults/simpleDefaultArgument.kt +++ b/compiler/testData/codegen/box/callableReference/varargAndDefaults/simpleDefaultArgument.kt @@ -1,5 +1,5 @@ // !LANGUAGE: +NewInference -// IGNORE_BACKEND: JS_IR, JVM_IR +// IGNORE_BACKEND: JVM_IR fun foo(x: String, y: String = "K"): String = x + y diff --git a/compiler/testData/codegen/box/callableReference/varargAndDefaults/simpleEmptyVararg.kt b/compiler/testData/codegen/box/callableReference/varargAndDefaults/simpleEmptyVararg.kt index 7edf5673c09..a07f627599e 100644 --- a/compiler/testData/codegen/box/callableReference/varargAndDefaults/simpleEmptyVararg.kt +++ b/compiler/testData/codegen/box/callableReference/varargAndDefaults/simpleEmptyVararg.kt @@ -1,5 +1,5 @@ // !LANGUAGE: +NewInference -// IGNORE_BACKEND: JS, JS_IR, JVM_IR +// IGNORE_BACKEND: JS, JVM_IR fun foo(x: String, vararg y: String): String = if (y.size == 0) x + "K" else "Fail" diff --git a/compiler/testData/codegen/box/callableReference/varargAndDefaults/varargWithDefaultValue.kt b/compiler/testData/codegen/box/callableReference/varargAndDefaults/varargWithDefaultValue.kt index 38c8a548777..34ac4ff5fbd 100644 --- a/compiler/testData/codegen/box/callableReference/varargAndDefaults/varargWithDefaultValue.kt +++ b/compiler/testData/codegen/box/callableReference/varargAndDefaults/varargWithDefaultValue.kt @@ -1,5 +1,5 @@ // !LANGUAGE: +NewInference -// IGNORE_BACKEND: JS, JS_IR, JVM_IR +// IGNORE_BACKEND: JS, JVM_IR fun foo(x: Int, vararg y: String = arrayOf("Aaa")): String = if (y[0].length == x) "OK" else "Fail" diff --git a/compiler/testData/codegen/box/closures/kt5589.kt b/compiler/testData/codegen/box/closures/kt5589.kt index 55272970d59..229f63ecee9 100644 --- a/compiler/testData/codegen/box/closures/kt5589.kt +++ b/compiler/testData/codegen/box/closures/kt5589.kt @@ -1,5 +1,4 @@ // IGNORE_BACKEND: JVM_IR -// IGNORE_BACKEND: JS_IR fun box(): String { val x = "OK" fun bar(y: String = x): String = y diff --git a/compiler/testData/codegen/box/coroutines/featureIntersection/callableReference/function/genericCallableReferencesWithNullableTypes.kt b/compiler/testData/codegen/box/coroutines/featureIntersection/callableReference/function/genericCallableReferencesWithNullableTypes.kt index c03a2f0c4de..9586eaa2d94 100644 --- a/compiler/testData/codegen/box/coroutines/featureIntersection/callableReference/function/genericCallableReferencesWithNullableTypes.kt +++ b/compiler/testData/codegen/box/coroutines/featureIntersection/callableReference/function/genericCallableReferencesWithNullableTypes.kt @@ -1,6 +1,6 @@ // !LANGUAGE: +ReleaseCoroutines // !API_VERSION: 1.3 -// IGNORE_BACKEND: JS, JS_IR, NATIVE +// IGNORE_BACKEND: JS, NATIVE // IGNORE_BACKEND: JVM_IR // WITH_REFLECT diff --git a/compiler/testData/codegen/box/functions/localFunctions/kt3978.kt b/compiler/testData/codegen/box/functions/localFunctions/kt3978.kt index d464f91bdc7..379209d16fc 100644 --- a/compiler/testData/codegen/box/functions/localFunctions/kt3978.kt +++ b/compiler/testData/codegen/box/functions/localFunctions/kt3978.kt @@ -1,5 +1,4 @@ // IGNORE_BACKEND: JVM_IR -// IGNORE_BACKEND: JS_IR fun box() : String { diff --git a/compiler/testData/codegen/box/functions/localFunctions/parameterAsDefaultValue.kt b/compiler/testData/codegen/box/functions/localFunctions/parameterAsDefaultValue.kt index 0784921cdf6..b06651fffe6 100644 --- a/compiler/testData/codegen/box/functions/localFunctions/parameterAsDefaultValue.kt +++ b/compiler/testData/codegen/box/functions/localFunctions/parameterAsDefaultValue.kt @@ -1,5 +1,4 @@ // IGNORE_BACKEND: JVM_IR -// IGNORE_BACKEND: JS_IR fun foo(): String { fun bar(x: String, y: String = x): String { return y diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java index 9eadd7b37d9..4b059767c37 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java @@ -2502,6 +2502,16 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { runTest("compiler/testData/codegen/box/callableReference/varargAndDefaults/inline.kt"); } + @TestMetadata("innerConstructorWithVararg.kt") + public void testInnerConstructorWithVararg() throws Exception { + runTest("compiler/testData/codegen/box/callableReference/varargAndDefaults/innerConstructorWithVararg.kt"); + } + + @TestMetadata("localFunctionWithDefault.kt") + public void testLocalFunctionWithDefault() throws Exception { + runTest("compiler/testData/codegen/box/callableReference/varargAndDefaults/localFunctionWithDefault.kt"); + } + @TestMetadata("manyDefaultsAndVararg.kt") public void testManyDefaultsAndVararg() throws Exception { runTest("compiler/testData/codegen/box/callableReference/varargAndDefaults/manyDefaultsAndVararg.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java index 0217352f625..8f5edf28507 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -2502,6 +2502,16 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes runTest("compiler/testData/codegen/box/callableReference/varargAndDefaults/inline.kt"); } + @TestMetadata("innerConstructorWithVararg.kt") + public void testInnerConstructorWithVararg() throws Exception { + runTest("compiler/testData/codegen/box/callableReference/varargAndDefaults/innerConstructorWithVararg.kt"); + } + + @TestMetadata("localFunctionWithDefault.kt") + public void testLocalFunctionWithDefault() throws Exception { + runTest("compiler/testData/codegen/box/callableReference/varargAndDefaults/localFunctionWithDefault.kt"); + } + @TestMetadata("manyDefaultsAndVararg.kt") public void testManyDefaultsAndVararg() throws Exception { runTest("compiler/testData/codegen/box/callableReference/varargAndDefaults/manyDefaultsAndVararg.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java index 48b8edb3603..dabe86d0953 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java @@ -2502,6 +2502,16 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes runTest("compiler/testData/codegen/box/callableReference/varargAndDefaults/inline.kt"); } + @TestMetadata("innerConstructorWithVararg.kt") + public void testInnerConstructorWithVararg() throws Exception { + runTest("compiler/testData/codegen/box/callableReference/varargAndDefaults/innerConstructorWithVararg.kt"); + } + + @TestMetadata("localFunctionWithDefault.kt") + public void testLocalFunctionWithDefault() throws Exception { + runTest("compiler/testData/codegen/box/callableReference/varargAndDefaults/localFunctionWithDefault.kt"); + } + @TestMetadata("manyDefaultsAndVararg.kt") public void testManyDefaultsAndVararg() throws Exception { runTest("compiler/testData/codegen/box/callableReference/varargAndDefaults/manyDefaultsAndVararg.kt"); 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 79e3901d3c9..b26cdca7d8d 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 @@ -2347,6 +2347,16 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest { runTest("compiler/testData/codegen/box/callableReference/varargAndDefaults/inline.kt"); } + @TestMetadata("innerConstructorWithVararg.kt") + public void testInnerConstructorWithVararg() throws Exception { + runTest("compiler/testData/codegen/box/callableReference/varargAndDefaults/innerConstructorWithVararg.kt"); + } + + @TestMetadata("localFunctionWithDefault.kt") + public void testLocalFunctionWithDefault() throws Exception { + runTest("compiler/testData/codegen/box/callableReference/varargAndDefaults/localFunctionWithDefault.kt"); + } + @TestMetadata("manyDefaultsAndVararg.kt") public void testManyDefaultsAndVararg() throws Exception { runTest("compiler/testData/codegen/box/callableReference/varargAndDefaults/manyDefaultsAndVararg.kt"); 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 921eae9ebbe..8d432bc6feb 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 @@ -2367,6 +2367,16 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest { runTest("compiler/testData/codegen/box/callableReference/varargAndDefaults/inline.kt"); } + @TestMetadata("innerConstructorWithVararg.kt") + public void testInnerConstructorWithVararg() throws Exception { + runTest("compiler/testData/codegen/box/callableReference/varargAndDefaults/innerConstructorWithVararg.kt"); + } + + @TestMetadata("localFunctionWithDefault.kt") + public void testLocalFunctionWithDefault() throws Exception { + runTest("compiler/testData/codegen/box/callableReference/varargAndDefaults/localFunctionWithDefault.kt"); + } + @TestMetadata("manyDefaultsAndVararg.kt") public void testManyDefaultsAndVararg() throws Exception { runTest("compiler/testData/codegen/box/callableReference/varargAndDefaults/manyDefaultsAndVararg.kt"); diff --git a/js/js.translator/testData/box/closure/closureLocalFunctionByInnerFunction.kt b/js/js.translator/testData/box/closure/closureLocalFunctionByInnerFunction.kt index bd17e6e691a..8ff1e59d708 100644 --- a/js/js.translator/testData/box/closure/closureLocalFunctionByInnerFunction.kt +++ b/js/js.translator/testData/box/closure/closureLocalFunctionByInnerFunction.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JS_IR // EXPECTED_REACHABLE_NODES: 1286 package foo diff --git a/js/js.translator/testData/box/closure/closureLocalFunctionByInnerFunctionInConstructor.kt b/js/js.translator/testData/box/closure/closureLocalFunctionByInnerFunctionInConstructor.kt index e0edf327fc2..e4f60ca6073 100644 --- a/js/js.translator/testData/box/closure/closureLocalFunctionByInnerFunctionInConstructor.kt +++ b/js/js.translator/testData/box/closure/closureLocalFunctionByInnerFunctionInConstructor.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JS_IR // EXPECTED_REACHABLE_NODES: 1286 package foo