From 9be8eaaa3a8bd585a4448854b1f8a97644636ade Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 28 Nov 2015 18:05:13 +0000 Subject: Add variable capturing for anonymous classes --- .../org/zwobble/couscous/tests/JavaToPythonTests.java | 11 +++++++++++ .../com/example/AnonymousClass.java | 16 ++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 src/test/resources/java/anonymous-class-capture/com/example/AnonymousClass.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 bd2fe8f..3b9c490 100644 --- a/src/test/java/org/zwobble/couscous/tests/JavaToPythonTests.java +++ b/src/test/java/org/zwobble/couscous/tests/JavaToPythonTests.java @@ -92,6 +92,17 @@ public class JavaToPythonTests { asList())); } + @Test + public void anonymousClassesWithCapture() throws Exception { + assertEquals( + value(42), + execTestProgram( + "anonymous-class-capture", + TypeName.of("com.example.AnonymousClass"), + "value", + asList(value(42)))); + } + @Test public void lambdasWithoutCapture() throws Exception { assertEquals( diff --git a/src/test/resources/java/anonymous-class-capture/com/example/AnonymousClass.java b/src/test/resources/java/anonymous-class-capture/com/example/AnonymousClass.java new file mode 100644 index 0000000..65cd503 --- /dev/null +++ b/src/test/resources/java/anonymous-class-capture/com/example/AnonymousClass.java @@ -0,0 +1,16 @@ +package com.example; + +import java.util.function.Supplier; + +public class AnonymousClass { + public static int value(int x) { + Supplier supplier = new Supplier() { + @Override + public Integer get() { + return x; + } + }; + + return supplier.get(); + } +} -- cgit v1.2.3