aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-03-01 21:26:58 +0000
committerMichael Williamson <mike@zwobble.org>2016-03-01 21:26:58 +0000
commitfb803462c9ee3cbe949c510fc140bd91adb54b98 (patch)
treedc3d410e68fea21de81b1f3868d0e95ecf403ec3
parentdbe3c6ad7ead5fef7d6dde68c9c53bebe3593fe6 (diff)
Get static nested classes working on C# and Python backends
-rw-r--r--src/main/java/org/zwobble/couscous/frontends/java/JavaTypes.java7
-rw-r--r--src/test/java/org/zwobble/couscous/tests/JavaToPythonTests.java7
-rw-r--r--src/test/java/org/zwobble/couscous/tests/backends/csharp/JavaToCsharpTests.java7
3 files changed, 6 insertions, 15 deletions
diff --git a/src/main/java/org/zwobble/couscous/frontends/java/JavaTypes.java b/src/main/java/org/zwobble/couscous/frontends/java/JavaTypes.java
index c3c6b7f..117f3ca 100644
--- a/src/main/java/org/zwobble/couscous/frontends/java/JavaTypes.java
+++ b/src/main/java/org/zwobble/couscous/frontends/java/JavaTypes.java
@@ -25,7 +25,12 @@ class JavaTypes {
}
static TypeName typeOf(ITypeBinding typeBinding) {
- return TypeName.of(typeBinding.getErasure().getQualifiedName());
+ ITypeBinding outerClass = typeBinding.getDeclaringClass();
+ if (outerClass == null) {
+ return TypeName.of(typeBinding.getErasure().getQualifiedName());
+ } else {
+ return TypeName.of(typeOf(outerClass).getQualifiedName() + "__" + typeBinding.getName());
+ }
}
static Set<TypeName> superTypes(TypeDeclaration declaration) {
diff --git a/src/test/java/org/zwobble/couscous/tests/JavaToPythonTests.java b/src/test/java/org/zwobble/couscous/tests/JavaToPythonTests.java
index 35040b1..6b9f6ed 100644
--- a/src/test/java/org/zwobble/couscous/tests/JavaToPythonTests.java
+++ b/src/test/java/org/zwobble/couscous/tests/JavaToPythonTests.java
@@ -1,7 +1,5 @@
package org.zwobble.couscous.tests;
-import org.junit.Ignore;
-import org.junit.Test;
import org.zwobble.couscous.CouscousCompiler;
import org.zwobble.couscous.ast.TypeName;
import org.zwobble.couscous.backends.python.PythonBackend;
@@ -18,11 +16,6 @@ import static org.zwobble.couscous.tests.util.ExtraFiles.deleteRecursively;
import static org.zwobble.couscous.util.ExtraLists.list;
public class JavaToPythonTests extends CompilerTests {
- @Test
- @Ignore
- public void staticNestedClasses() throws Exception {
- }
-
protected PrimitiveValue execProgram(
Path directory,
TypeName type,
diff --git a/src/test/java/org/zwobble/couscous/tests/backends/csharp/JavaToCsharpTests.java b/src/test/java/org/zwobble/couscous/tests/backends/csharp/JavaToCsharpTests.java
index a44d2fe..cc00511 100644
--- a/src/test/java/org/zwobble/couscous/tests/backends/csharp/JavaToCsharpTests.java
+++ b/src/test/java/org/zwobble/couscous/tests/backends/csharp/JavaToCsharpTests.java
@@ -1,7 +1,5 @@
package org.zwobble.couscous.tests.backends.csharp;
-import org.junit.Ignore;
-import org.junit.Test;
import org.zwobble.couscous.CouscousCompiler;
import org.zwobble.couscous.ast.TypeName;
import org.zwobble.couscous.backends.csharp.CsharpBackend;
@@ -18,11 +16,6 @@ import static org.zwobble.couscous.tests.util.ExtraFiles.deleteRecursively;
import static org.zwobble.couscous.util.ExtraLists.list;
public class JavaToCsharpTests extends CompilerTests {
- @Test
- @Ignore
- public void staticNestedClasses() throws Exception {
- }
-
protected PrimitiveValue execProgram(
Path directory,
TypeName type,