From 28763128beb63fe6a18982889b9a7cb41b10e6b2 Mon Sep 17 00:00:00 2001 From: Pavel Talanov Date: Fri, 18 Nov 2011 16:56:23 +0400 Subject: [PATCH] Added tests for simple closure examples. --- .../org/jetbrains/k2js/test/FunctionTest.java | 10 ++++++++++ .../expression/function/cases/adderClosure.kt | 9 +++++++++ .../expression/function/cases/loopClosure.kt | 17 +++++++++++++++++ 3 files changed, 36 insertions(+) create mode 100644 translator/testFiles/expression/function/cases/adderClosure.kt create mode 100644 translator/testFiles/expression/function/cases/loopClosure.kt diff --git a/translator/test/org/jetbrains/k2js/test/FunctionTest.java b/translator/test/org/jetbrains/k2js/test/FunctionTest.java index e37f46b64eb..75632d5a5ad 100644 --- a/translator/test/org/jetbrains/k2js/test/FunctionTest.java +++ b/translator/test/org/jetbrains/k2js/test/FunctionTest.java @@ -28,4 +28,14 @@ public class FunctionTest extends AbstractExpressionTest { public void functionLiteral() throws Exception { testFooBoxIsTrue("functionLiteral.kt"); } + + @Test + public void adderClosure() throws Exception { + testFooBoxIsTrue("adderClosure.kt"); + } + + @Test + public void loopClosure() throws Exception { + testFooBoxIsTrue("loopClosure.kt"); + } } diff --git a/translator/testFiles/expression/function/cases/adderClosure.kt b/translator/testFiles/expression/function/cases/adderClosure.kt new file mode 100644 index 00000000000..06e2ea8f116 --- /dev/null +++ b/translator/testFiles/expression/function/cases/adderClosure.kt @@ -0,0 +1,9 @@ +namespace foo + +fun box() : Boolean { + var sum = 0 + val adder = {(a: Int) => sum += a } + adder(3) + adder(2) + return sum == 5 +} \ No newline at end of file diff --git a/translator/testFiles/expression/function/cases/loopClosure.kt b/translator/testFiles/expression/function/cases/loopClosure.kt new file mode 100644 index 00000000000..5c5a1e5615d --- /dev/null +++ b/translator/testFiles/expression/function/cases/loopClosure.kt @@ -0,0 +1,17 @@ +namespace foo + +var b = 0 + +fun loop(var times : Int) { + while(times > 0) { + val u : fun(value : Int) : Unit = { + b++ + } + u(times--) + } +} + +fun box() : Boolean { + loop(5) + return b == 5 +} \ No newline at end of file