From d58b27ee89a014aa294b25baffd53c7a96a64be3 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 30 Oct 2016 17:21:10 +0000 Subject: Extract inner type hoisting to separate step --- .../couscous/backends/csharp/CsharpCodeGenerator.java | 3 ++- .../couscous/backends/csharp/CsharpSerializer.java | 2 +- .../zwobble/couscous/backends/python/PythonBackend.java | 17 ++++++++++------- 3 files changed, 13 insertions(+), 9 deletions(-) (limited to 'src/main/java/org/zwobble/couscous/backends') diff --git a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpCodeGenerator.java b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpCodeGenerator.java index 47a7635..260d7ec 100644 --- a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpCodeGenerator.java +++ b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpCodeGenerator.java @@ -7,6 +7,7 @@ import org.zwobble.couscous.backends.csharp.primitives.CsharpPrimitiveMethods; import org.zwobble.couscous.backends.naming.Naming; import org.zwobble.couscous.transforms.DesugarForEachToFor; import org.zwobble.couscous.transforms.DesugarForToWhile; +import org.zwobble.couscous.transforms.HoistNestedTypes; import org.zwobble.couscous.transforms.SplitStaticsFromInterface; import org.zwobble.couscous.types.*; @@ -56,7 +57,7 @@ public class CsharpCodeGenerator { CsharpPrimitiveMethods.TRANSFORMER, nodeTransformer ), - types + HoistNestedTypes.hoist(types) ) ); } diff --git a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java index 4ddeb7c..c2fa029 100644 --- a/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java +++ b/src/main/java/org/zwobble/couscous/backends/csharp/CsharpSerializer.java @@ -596,7 +596,7 @@ public class CsharpSerializer { } private void writeInNamespace(TypeNode typeNode, Action writeBody) { - writeInNamespace(typeNode.getName().getPackage().get(), writeBody); + writeInNamespace(typeNode.getName().getQualifier().get(), writeBody); } private void writeInNamespace(String namespace, Action writeBody) { diff --git a/src/main/java/org/zwobble/couscous/backends/python/PythonBackend.java b/src/main/java/org/zwobble/couscous/backends/python/PythonBackend.java index 5b6e819..6509fc4 100644 --- a/src/main/java/org/zwobble/couscous/backends/python/PythonBackend.java +++ b/src/main/java/org/zwobble/couscous/backends/python/PythonBackend.java @@ -8,6 +8,7 @@ import org.zwobble.couscous.ast.visitors.NodeTransformer; import org.zwobble.couscous.transforms.DesugarForEachToFor; import org.zwobble.couscous.transforms.DesugarForToWhile; import org.zwobble.couscous.transforms.DesugarSwitchToIfElse; +import org.zwobble.couscous.transforms.HoistNestedTypes; import java.io.File; import java.io.IOException; @@ -50,13 +51,15 @@ public class PythonBackend implements Backend { } private List desugar(List classes) { - return NodeTransformer.applyAll( - list( - DesugarSwitchToIfElse.transformer(), - DesugarForEachToFor.transformer(), - DesugarForToWhile.transformer() - ), - classes + return HoistNestedTypes.hoist( + NodeTransformer.applyAll( + list( + DesugarSwitchToIfElse.transformer(), + DesugarForEachToFor.transformer(), + DesugarForToWhile.transformer() + ), + classes + ) ); } -- cgit v1.2.3