From a96fada2304a853d20ac418525adab221c10ebbf Mon Sep 17 00:00:00 2001 From: Mikhael Bogdanov Date: Mon, 15 May 2017 13:25:51 +0200 Subject: [PATCH] Switch tests for default lambda inlining on language level 1.2 --- .../inlineLambdaInNoInlineDefault.kt | 16 ++++++++++++++++ .../lambdaInlining/defaultLambdaInNoInline.kt | 2 +- .../lambdaInlining/functionReference.kt | 2 +- .../lambdaInlining/functionReferenceFromClass.kt | 3 +-- .../lambdaInlining/instanceCapuredInClass.kt | 2 +- .../lambdaInlining/instanceCapuredInInterface.kt | 2 +- .../lambdaInlining/jvmStaticDefault.kt | 2 +- .../lambdaInlining/nonDefaultInlineInNoInline.kt | 2 +- .../defaultValues/lambdaInlining/simple.kt | 2 +- .../defaultValues/lambdaInlining/simpleErased.kt | 2 +- .../lambdaInlining/simpleErasedStaticInstance.kt | 2 +- .../lambdaInlining/simpleGeneric.kt | 2 +- .../lambdaInlining/simpleStaticInstance.kt | 2 +- .../boxInline/reified/defaultLambda/chain.kt | 2 +- .../boxInline/reified/defaultLambda/nested.kt | 2 +- .../boxInline/reified/defaultLambda/nested2.kt | 2 +- .../reified/defaultLambda/nested2Static.kt | 2 +- .../reified/defaultLambda/nestedStatic.kt | 2 +- .../boxInline/reified/defaultLambda/simple.kt | 2 +- .../reified/defaultLambda/transitiveChain.kt | 2 +- .../defaultLambda/transitiveChainStatic.kt | 2 +- .../boxInline/smap/defaultLambda/nested.kt | 2 +- .../boxInline/smap/defaultLambda/simple.kt | 2 +- .../BlackBoxInlineCodegenTestGenerated.java | 6 ++++++ ...leKotlinAgainstInlineKotlinTestGenerated.java | 6 ++++++ 25 files changed, 50 insertions(+), 23 deletions(-) create mode 100644 compiler/testData/codegen/boxInline/defaultValues/inlineLambdaInNoInlineDefault.kt diff --git a/compiler/testData/codegen/boxInline/defaultValues/inlineLambdaInNoInlineDefault.kt b/compiler/testData/codegen/boxInline/defaultValues/inlineLambdaInNoInlineDefault.kt new file mode 100644 index 00000000000..ddfd491cc90 --- /dev/null +++ b/compiler/testData/codegen/boxInline/defaultValues/inlineLambdaInNoInlineDefault.kt @@ -0,0 +1,16 @@ +// FILE: 1.kt +// LANGUAGE_VERSION: 1.2 +// SKIP_INLINE_CHECK_IN: inlineFun$default +package test + +inline fun inlineFun(crossinline inlineLambda: () -> String, noinline noInlineLambda: () -> String = { inlineLambda() }): String { + return noInlineLambda() +} + +// FILE: 2.kt +//NO_CHECK_LAMBDA_INLINING +import test.* + +fun box(): String { + return inlineFun({ "OK" }) +} \ No newline at end of file diff --git a/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/defaultLambdaInNoInline.kt b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/defaultLambdaInNoInline.kt index 4cce7c03858..94c79d72e0d 100644 --- a/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/defaultLambdaInNoInline.kt +++ b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/defaultLambdaInNoInline.kt @@ -1,8 +1,8 @@ // FILE: 1.kt +// LANGUAGE_VERSION: 1.2 // SKIP_INLINE_CHECK_IN: inlineFun$default package test -@Suppress("NOT_YET_SUPPORTED_IN_INLINE") inline fun inlineFun(crossinline inlineLambda: () -> String = { "OK" }, noinline noInlineLambda: () -> String = { inlineLambda() }): String { return noInlineLambda() } diff --git a/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/functionReference.kt b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/functionReference.kt index 0096c923ab8..ae652db6fc2 100644 --- a/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/functionReference.kt +++ b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/functionReference.kt @@ -1,10 +1,10 @@ // FILE: 1.kt +// LANGUAGE_VERSION: 1.2 // SKIP_INLINE_CHECK_IN: inlineFun$default package test fun ok() = "OK" -@Suppress("NOT_YET_SUPPORTED_IN_INLINE") inline fun inlineFun(lambda: () -> String = ::ok): String { return lambda() } diff --git a/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/functionReferenceFromClass.kt b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/functionReferenceFromClass.kt index 7581a0e2e06..f9164fcb0ed 100644 --- a/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/functionReferenceFromClass.kt +++ b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/functionReferenceFromClass.kt @@ -1,4 +1,5 @@ // FILE: 1.kt +// LANGUAGE_VERSION: 1.2 // SKIP_INLINE_CHECK_IN: inlineFun$default package test @@ -8,8 +9,6 @@ class A(val value: String) { fun ok() = value } - -@Suppress("NOT_YET_SUPPORTED_IN_INLINE") inline fun inlineFun(a: A, lambda: (A) -> String = A::ok): String { return lambda(a) } diff --git a/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/instanceCapuredInClass.kt b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/instanceCapuredInClass.kt index fcd850a0fed..218f0835a4d 100644 --- a/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/instanceCapuredInClass.kt +++ b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/instanceCapuredInClass.kt @@ -1,10 +1,10 @@ // FILE: 1.kt +// LANGUAGE_VERSION: 1.2 // SKIP_INLINE_CHECK_IN: inlineFun$default package test class A(val value: String) { - @Suppress("NOT_YET_SUPPORTED_IN_INLINE") inline fun inlineFun(lambda: () -> String = { value }): String { return lambda() } diff --git a/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/instanceCapuredInInterface.kt b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/instanceCapuredInInterface.kt index 4403fc16815..d4205a651a8 100644 --- a/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/instanceCapuredInInterface.kt +++ b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/instanceCapuredInInterface.kt @@ -1,4 +1,5 @@ // FILE: 1.kt +// LANGUAGE_VERSION: 1.2 // SKIP_INLINE_CHECK_IN: inlineFun$default package test @@ -10,7 +11,6 @@ interface A { fun test() = inlineFun() - @Suppress("NOT_YET_SUPPORTED_IN_INLINE") private inline fun inlineFun(lambda: () -> String = { value }): String { return lambda() } diff --git a/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/jvmStaticDefault.kt b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/jvmStaticDefault.kt index 0c9f8c16e1d..4fc5f0b3929 100644 --- a/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/jvmStaticDefault.kt +++ b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/jvmStaticDefault.kt @@ -1,11 +1,11 @@ // FILE: 1.kt +// LANGUAGE_VERSION: 1.2 // SKIP_INLINE_CHECK_IN: inlineFun$default //WITH_RUNTIME package test object X { @JvmStatic - @Suppress("NOT_YET_SUPPORTED_IN_INLINE") inline fun inlineFun(capturedParam: String, lambda: () -> String = { capturedParam }): String { return lambda() } diff --git a/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/nonDefaultInlineInNoInline.kt b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/nonDefaultInlineInNoInline.kt index f70777467fe..376581f4b4b 100644 --- a/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/nonDefaultInlineInNoInline.kt +++ b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/nonDefaultInlineInNoInline.kt @@ -1,8 +1,8 @@ // FILE: 1.kt +// LANGUAGE_VERSION: 1.2 // SKIP_INLINE_CHECK_IN: inlineFun$default package test -@Suppress("NOT_YET_SUPPORTED_IN_INLINE") inline fun inlineFun(crossinline inlineLambda: () -> String, noinline noInlineLambda: () -> String = { inlineLambda() }): String { return noInlineLambda() } diff --git a/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/simple.kt b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/simple.kt index 4a1821c3654..8f79320a392 100644 --- a/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/simple.kt +++ b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/simple.kt @@ -1,8 +1,8 @@ // FILE: 1.kt +// LANGUAGE_VERSION: 1.2 // SKIP_INLINE_CHECK_IN: inlineFun$default package test -@Suppress("NOT_YET_SUPPORTED_IN_INLINE") inline fun inlineFun(capturedParam: String, lambda: () -> String = { capturedParam }): String { return lambda() } diff --git a/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/simpleErased.kt b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/simpleErased.kt index 4f0013b2f62..cd7a2ca80ff 100644 --- a/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/simpleErased.kt +++ b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/simpleErased.kt @@ -1,8 +1,8 @@ // FILE: 1.kt +// LANGUAGE_VERSION: 1.2 // SKIP_INLINE_CHECK_IN: inlineFun$default package test -@Suppress("NOT_YET_SUPPORTED_IN_INLINE") inline fun inlineFun(capturedParam: String, lambda: () -> Any = { capturedParam as Any }): Any { return lambda() } diff --git a/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/simpleErasedStaticInstance.kt b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/simpleErasedStaticInstance.kt index 4833e45f13b..449b0566622 100644 --- a/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/simpleErasedStaticInstance.kt +++ b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/simpleErasedStaticInstance.kt @@ -1,8 +1,8 @@ // FILE: 1.kt +// LANGUAGE_VERSION: 1.2 // SKIP_INLINE_CHECK_IN: inlineFun$default package test -@Suppress("NOT_YET_SUPPORTED_IN_INLINE") inline fun inlineFun(lambda: () -> Any = { "OK" as Any }): Any { return lambda() } diff --git a/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/simpleGeneric.kt b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/simpleGeneric.kt index 676adcb7f8d..2090550dc5e 100644 --- a/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/simpleGeneric.kt +++ b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/simpleGeneric.kt @@ -1,4 +1,5 @@ // FILE: 1.kt +// LANGUAGE_VERSION: 1.2 // SKIP_INLINE_CHECK_IN: inlineFun$default package test @@ -6,7 +7,6 @@ open class A(val value: String) class B(value: String): A(value) -@Suppress("NOT_YET_SUPPORTED_IN_INLINE") inline fun inlineFun(capturedParam: T, lambda: () -> T = { capturedParam }): T { return lambda() } diff --git a/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/simpleStaticInstance.kt b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/simpleStaticInstance.kt index 85403783e77..45098c6fd5b 100644 --- a/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/simpleStaticInstance.kt +++ b/compiler/testData/codegen/boxInline/defaultValues/lambdaInlining/simpleStaticInstance.kt @@ -1,8 +1,8 @@ // FILE: 1.kt +// LANGUAGE_VERSION: 1.2 // SKIP_INLINE_CHECK_IN: inlineFun$default package test -@Suppress("NOT_YET_SUPPORTED_IN_INLINE") inline fun inlineFun(lambda: () -> String = { "OK" }): String { return lambda() } diff --git a/compiler/testData/codegen/boxInline/reified/defaultLambda/chain.kt b/compiler/testData/codegen/boxInline/reified/defaultLambda/chain.kt index a9f86a594cd..ade2ba1de34 100644 --- a/compiler/testData/codegen/boxInline/reified/defaultLambda/chain.kt +++ b/compiler/testData/codegen/boxInline/reified/defaultLambda/chain.kt @@ -1,4 +1,5 @@ // FILE: 1.kt +// LANGUAGE_VERSION: 1.2 // SKIP_INLINE_CHECK_IN: inlineFun$default //WITH_RUNTIME package test @@ -6,7 +7,6 @@ package test class OK class FAIL -@Suppress("NOT_YET_SUPPORTED_IN_INLINE") inline fun inlineFun(lambda: () -> String = { T::class.java.simpleName }): String { return lambda() } diff --git a/compiler/testData/codegen/boxInline/reified/defaultLambda/nested.kt b/compiler/testData/codegen/boxInline/reified/defaultLambda/nested.kt index 1fd4510e82a..bdf91ef4d79 100644 --- a/compiler/testData/codegen/boxInline/reified/defaultLambda/nested.kt +++ b/compiler/testData/codegen/boxInline/reified/defaultLambda/nested.kt @@ -1,9 +1,9 @@ // FILE: 1.kt +// LANGUAGE_VERSION: 1.2 // SKIP_INLINE_CHECK_IN: inlineFun$default //WITH_RUNTIME package test -@Suppress("NOT_YET_SUPPORTED_IN_INLINE") inline fun inlineFun(p: String, lambda: () -> String = { { p + T::class.java.simpleName } () }): String { return lambda() } diff --git a/compiler/testData/codegen/boxInline/reified/defaultLambda/nested2.kt b/compiler/testData/codegen/boxInline/reified/defaultLambda/nested2.kt index d0719a7cab8..2eabf83cb9d 100644 --- a/compiler/testData/codegen/boxInline/reified/defaultLambda/nested2.kt +++ b/compiler/testData/codegen/boxInline/reified/defaultLambda/nested2.kt @@ -1,9 +1,9 @@ // FILE: 1.kt +// LANGUAGE_VERSION: 1.2 // SKIP_INLINE_CHECK_IN: inlineFun$default //WITH_RUNTIME package test -@Suppress("NOT_YET_SUPPORTED_IN_INLINE") inline fun inlineFun(p: String, crossinline lambda: () -> String = { { p + T::class.java.simpleName } () }): String { return { lambda() diff --git a/compiler/testData/codegen/boxInline/reified/defaultLambda/nested2Static.kt b/compiler/testData/codegen/boxInline/reified/defaultLambda/nested2Static.kt index e02a5b13f39..9c59aaad2f1 100644 --- a/compiler/testData/codegen/boxInline/reified/defaultLambda/nested2Static.kt +++ b/compiler/testData/codegen/boxInline/reified/defaultLambda/nested2Static.kt @@ -1,9 +1,9 @@ // FILE: 1.kt +// LANGUAGE_VERSION: 1.2 // SKIP_INLINE_CHECK_IN: inlineFun$default //WITH_RUNTIME package test -@Suppress("NOT_YET_SUPPORTED_IN_INLINE") inline fun inlineFun(crossinline lambda: () -> String = { { T::class.java.simpleName } () }): String { return { lambda() diff --git a/compiler/testData/codegen/boxInline/reified/defaultLambda/nestedStatic.kt b/compiler/testData/codegen/boxInline/reified/defaultLambda/nestedStatic.kt index c0b31d9fa9a..436c121116f 100644 --- a/compiler/testData/codegen/boxInline/reified/defaultLambda/nestedStatic.kt +++ b/compiler/testData/codegen/boxInline/reified/defaultLambda/nestedStatic.kt @@ -1,9 +1,9 @@ // FILE: 1.kt +// LANGUAGE_VERSION: 1.2 // SKIP_INLINE_CHECK_IN: inlineFun$default //WITH_RUNTIME package test -@Suppress("NOT_YET_SUPPORTED_IN_INLINE") inline fun inlineFun(lambda: () -> String = { { T::class.java.simpleName } () }): String { return lambda() } diff --git a/compiler/testData/codegen/boxInline/reified/defaultLambda/simple.kt b/compiler/testData/codegen/boxInline/reified/defaultLambda/simple.kt index eaa43de838f..013bfa50b5a 100644 --- a/compiler/testData/codegen/boxInline/reified/defaultLambda/simple.kt +++ b/compiler/testData/codegen/boxInline/reified/defaultLambda/simple.kt @@ -1,9 +1,9 @@ // FILE: 1.kt +// LANGUAGE_VERSION: 1.2 // SKIP_INLINE_CHECK_IN: inlineFun$default //WITH_RUNTIME package test -@Suppress("NOT_YET_SUPPORTED_IN_INLINE") inline fun inlineFun(lambda: () -> String = { T::class.java.simpleName }): String { return lambda() } diff --git a/compiler/testData/codegen/boxInline/reified/defaultLambda/transitiveChain.kt b/compiler/testData/codegen/boxInline/reified/defaultLambda/transitiveChain.kt index dbe837a08e9..bb32101cb7d 100644 --- a/compiler/testData/codegen/boxInline/reified/defaultLambda/transitiveChain.kt +++ b/compiler/testData/codegen/boxInline/reified/defaultLambda/transitiveChain.kt @@ -1,11 +1,11 @@ // FILE: 1.kt +// LANGUAGE_VERSION: 1.2 // SKIP_INLINE_CHECK_IN: inlineFun$default //WITH_RUNTIME package test class K -@Suppress("NOT_YET_SUPPORTED_IN_INLINE") inline fun inlineFun(p: String, lambda: () -> String = { p + T::class.java.simpleName }): String { return lambda() } diff --git a/compiler/testData/codegen/boxInline/reified/defaultLambda/transitiveChainStatic.kt b/compiler/testData/codegen/boxInline/reified/defaultLambda/transitiveChainStatic.kt index 65db55b9545..24f5a953023 100644 --- a/compiler/testData/codegen/boxInline/reified/defaultLambda/transitiveChainStatic.kt +++ b/compiler/testData/codegen/boxInline/reified/defaultLambda/transitiveChainStatic.kt @@ -1,4 +1,5 @@ // FILE: 1.kt +// LANGUAGE_VERSION: 1.2 // SKIP_INLINE_CHECK_IN: inlineFun$default //WITH_RUNTIME package test @@ -6,7 +7,6 @@ package test class OK class FAIL -@Suppress("NOT_YET_SUPPORTED_IN_INLINE") inline fun inlineFun(lambda: () -> String = { T::class.java.simpleName }): String { return lambda() } diff --git a/compiler/testData/codegen/boxInline/smap/defaultLambda/nested.kt b/compiler/testData/codegen/boxInline/smap/defaultLambda/nested.kt index b1bd8116a17..c017cf99481 100644 --- a/compiler/testData/codegen/boxInline/smap/defaultLambda/nested.kt +++ b/compiler/testData/codegen/boxInline/smap/defaultLambda/nested.kt @@ -1,8 +1,8 @@ // FILE: 1.kt +// LANGUAGE_VERSION: 1.2 // SKIP_INLINE_CHECK_IN: inlineFun$default package test -@Suppress("NOT_YET_SUPPORTED_IN_INLINE") inline fun inlineFun(capturedParam: String, crossinline lambda: () -> String = { capturedParam }): String { return { lambda() diff --git a/compiler/testData/codegen/boxInline/smap/defaultLambda/simple.kt b/compiler/testData/codegen/boxInline/smap/defaultLambda/simple.kt index 2d069314067..cc11d7cb7b2 100644 --- a/compiler/testData/codegen/boxInline/smap/defaultLambda/simple.kt +++ b/compiler/testData/codegen/boxInline/smap/defaultLambda/simple.kt @@ -1,8 +1,8 @@ // FILE: 1.kt +// LANGUAGE_VERSION: 1.2 // SKIP_INLINE_CHECK_IN: inlineFun$default package test -@Suppress("NOT_YET_SUPPORTED_IN_INLINE") inline fun inlineFun(capturedParam: String, lambda: () -> String = { capturedParam }): String { return lambda() } diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxInlineCodegenTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxInlineCodegenTestGenerated.java index 09189af97fa..1c3e06d8dc4 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxInlineCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxInlineCodegenTestGenerated.java @@ -905,6 +905,12 @@ public class BlackBoxInlineCodegenTestGenerated extends AbstractBlackBoxInlineCo doTest(fileName); } + @TestMetadata("inlineLambdaInNoInlineDefault.kt") + public void testInlineLambdaInNoInlineDefault() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/defaultValues/inlineLambdaInNoInlineDefault.kt"); + doTest(fileName); + } + @TestMetadata("kt11479.kt") public void testKt11479() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/defaultValues/kt11479.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/CompileKotlinAgainstInlineKotlinTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/CompileKotlinAgainstInlineKotlinTestGenerated.java index ad99594247d..44c409a0f80 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/CompileKotlinAgainstInlineKotlinTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/CompileKotlinAgainstInlineKotlinTestGenerated.java @@ -905,6 +905,12 @@ public class CompileKotlinAgainstInlineKotlinTestGenerated extends AbstractCompi doTest(fileName); } + @TestMetadata("inlineLambdaInNoInlineDefault.kt") + public void testInlineLambdaInNoInlineDefault() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/defaultValues/inlineLambdaInNoInlineDefault.kt"); + doTest(fileName); + } + @TestMetadata("kt11479.kt") public void testKt11479() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/boxInline/defaultValues/kt11479.kt");