diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-10-30 17:21:10 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-10-30 17:21:10 +0000 |
| commit | d58b27ee89a014aa294b25baffd53c7a96a64be3 (patch) | |
| tree | 6dcd100dd36c54b481dd49d07fab76bd747dc851 /src/main/java/org/zwobble/couscous/backends | |
| parent | befd7c344ba8a7c3402d4c678f1b81017fd65947 (diff) | |
Extract inner type hoisting to separate step
Diffstat (limited to 'src/main/java/org/zwobble/couscous/backends')
3 files changed, 13 insertions, 9 deletions
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<TypeNode> desugar(List<TypeNode> 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 + ) ); } |
