From e8e5d3a87d5887a9cb8713025b44b72f56a6aaa4 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Fri, 31 Aug 2012 11:01:30 +0400 Subject: [PATCH] Val-capturing tests for for-loops over arrays --- ...MultiDeclForComponentExtensionsValCaptured.kt | 16 ++++++++++++++++ ...MultiDeclForComponentExtensionsValCaptured.kt | 16 ++++++++++++++++ .../jet/codegen/MultiDeclTestGenerated.java | 10 ++++++++++ 3 files changed, 42 insertions(+) create mode 100644 compiler/testData/codegen/multiDecl/forArray/int/MultiDeclForComponentExtensionsValCaptured.kt create mode 100644 compiler/testData/codegen/multiDecl/forArray/long/MultiDeclForComponentExtensionsValCaptured.kt diff --git a/compiler/testData/codegen/multiDecl/forArray/int/MultiDeclForComponentExtensionsValCaptured.kt b/compiler/testData/codegen/multiDecl/forArray/int/MultiDeclForComponentExtensionsValCaptured.kt new file mode 100644 index 00000000000..b3db747fcd4 --- /dev/null +++ b/compiler/testData/codegen/multiDecl/forArray/int/MultiDeclForComponentExtensionsValCaptured.kt @@ -0,0 +1,16 @@ +fun Int.component1() = this + 1 +fun Int.component2() = this + 2 + +fun doTest(l : Array): String { + var s = "" + for ((a, b) in l) { + s += {"$a:$b;"}() + } + return s +} + +fun box(): String { + val l = Array(3, {x -> x}) + val s = doTest(l) + return if (s == "1:2;2:3;3:4;") "OK" else "fail: $s" +} \ No newline at end of file diff --git a/compiler/testData/codegen/multiDecl/forArray/long/MultiDeclForComponentExtensionsValCaptured.kt b/compiler/testData/codegen/multiDecl/forArray/long/MultiDeclForComponentExtensionsValCaptured.kt new file mode 100644 index 00000000000..c43026c494b --- /dev/null +++ b/compiler/testData/codegen/multiDecl/forArray/long/MultiDeclForComponentExtensionsValCaptured.kt @@ -0,0 +1,16 @@ +fun Long.component1() = this + 1 +fun Long.component2() = this + 2 + +fun doTest(l : Array): String { + var s = "" + for ((a, b) in l) { + s += {"$a:$b;"}() + } + return s +} + +fun box(): String { + val l = Array(3, {x -> x.toLong()}) + val s = doTest(l) + return if (s == "1:2;2:3;3:4;") "OK" else "fail: $s" +} \ No newline at end of file diff --git a/compiler/tests/org/jetbrains/jet/codegen/MultiDeclTestGenerated.java b/compiler/tests/org/jetbrains/jet/codegen/MultiDeclTestGenerated.java index a6dfb6f1534..f7263abe056 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/MultiDeclTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/codegen/MultiDeclTestGenerated.java @@ -127,6 +127,11 @@ public class MultiDeclTestGenerated extends AbstractMultiDeclTestCase { blackBoxFileByFullPath("compiler/testData/codegen/multiDecl/forArray/int/MultiDeclForComponentExtensions.kt"); } + @TestMetadata("MultiDeclForComponentExtensionsValCaptured.kt") + public void testMultiDeclForComponentExtensionsValCaptured() throws Exception { + blackBoxFileByFullPath("compiler/testData/codegen/multiDecl/forArray/int/MultiDeclForComponentExtensionsValCaptured.kt"); + } + @TestMetadata("MultiDeclForComponentMemberExtensions.kt") public void testMultiDeclForComponentMemberExtensions() throws Exception { blackBoxFileByFullPath("compiler/testData/codegen/multiDecl/forArray/int/MultiDeclForComponentMemberExtensions.kt"); @@ -150,6 +155,11 @@ public class MultiDeclTestGenerated extends AbstractMultiDeclTestCase { blackBoxFileByFullPath("compiler/testData/codegen/multiDecl/forArray/long/MultiDeclForComponentExtensions.kt"); } + @TestMetadata("MultiDeclForComponentExtensionsValCaptured.kt") + public void testMultiDeclForComponentExtensionsValCaptured() throws Exception { + blackBoxFileByFullPath("compiler/testData/codegen/multiDecl/forArray/long/MultiDeclForComponentExtensionsValCaptured.kt"); + } + @TestMetadata("MultiDeclForComponentMemberExtensions.kt") public void testMultiDeclForComponentMemberExtensions() throws Exception { blackBoxFileByFullPath("compiler/testData/codegen/multiDecl/forArray/long/MultiDeclForComponentMemberExtensions.kt");