From f4d8c1f419ef9f88e4eb7ed255b5b19da7b49e60 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Tue, 24 Nov 2015 20:54:45 +0000 Subject: Add hacktastic closures for lambdas (not anonymous classes) --- .../java/org/zwobble/couscous/tests/JavaToPythonTests.java | 11 +++++++++++ .../resources/java/lambda-capture/com/example/Lambda.java | 10 ++++++++++ 2 files changed, 21 insertions(+) create mode 100644 src/test/resources/java/lambda-capture/com/example/Lambda.java (limited to 'src/test') diff --git a/src/test/java/org/zwobble/couscous/tests/JavaToPythonTests.java b/src/test/java/org/zwobble/couscous/tests/JavaToPythonTests.java index cc0e5af..bd2fe8f 100644 --- a/src/test/java/org/zwobble/couscous/tests/JavaToPythonTests.java +++ b/src/test/java/org/zwobble/couscous/tests/JavaToPythonTests.java @@ -102,6 +102,17 @@ public class JavaToPythonTests { "value", asList())); } + + @Test + public void lambdasWithCapture() throws Exception { + assertEquals( + value(42), + execTestProgram( + "lambda-capture", + TypeName.of("com.example.Lambda"), + "value", + asList(value(2)))); + } private PrimitiveValue execTestProgram( String directoryName, diff --git a/src/test/resources/java/lambda-capture/com/example/Lambda.java b/src/test/resources/java/lambda-capture/com/example/Lambda.java new file mode 100644 index 0000000..a292a4f --- /dev/null +++ b/src/test/resources/java/lambda-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) { + Function function = value -> value * factor; + return function.apply(21); + } +} -- cgit v1.2.3