diff options
Diffstat (limited to 'src/test')
3 files changed, 27 insertions, 0 deletions
diff --git a/src/test/java/org/zwobble/couscous/tests/CompilerTests.java b/src/test/java/org/zwobble/couscous/tests/CompilerTests.java index 7df7582..0099d26 100644 --- a/src/test/java/org/zwobble/couscous/tests/CompilerTests.java +++ b/src/test/java/org/zwobble/couscous/tests/CompilerTests.java @@ -181,6 +181,18 @@ public abstract class CompilerTests { } @Test + public void lambdasWithSameVariableCapturedMultipleTimes() throws Exception { + assertEquals( + value(84), + execTestProgram( + "lambda-multiple-capture", + ScalarType.of("com.example.Lambda"), + "value", + list(value(2)), + Types.INT)); + } + + @Test public void lambdasWithThisCapture() throws Exception { assertEquals( value(42), diff --git a/src/test/resources/java/lambda-multiple-capture/com/example/IntFunction.java b/src/test/resources/java/lambda-multiple-capture/com/example/IntFunction.java new file mode 100644 index 0000000..d1e041e --- /dev/null +++ b/src/test/resources/java/lambda-multiple-capture/com/example/IntFunction.java @@ -0,0 +1,5 @@ +package com.example; + +public interface IntFunction { + int apply(int value); +} diff --git a/src/test/resources/java/lambda-multiple-capture/com/example/Lambda.java b/src/test/resources/java/lambda-multiple-capture/com/example/Lambda.java new file mode 100644 index 0000000..04870f8 --- /dev/null +++ b/src/test/resources/java/lambda-multiple-capture/com/example/Lambda.java @@ -0,0 +1,10 @@ +package com.example; + +import java.util.function.Function; + +public class Lambda { + public static int value(int factor) { + IntFunction function = value -> value * factor * factor; + return function.apply(21); + } +} |
