From a69265ba097c4e8623b15f4000e094a78871de68 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Thu, 11 Feb 2016 20:56:23 +0000 Subject: Support static constructors on Python backend --- .../org/zwobble/couscous/backends/python/PythonCodeGenerator.java | 6 +++++- .../couscous/tests/backends/python/PythonCompilerEvalTests.java | 7 ------- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/zwobble/couscous/backends/python/PythonCodeGenerator.java b/src/main/java/org/zwobble/couscous/backends/python/PythonCodeGenerator.java index c1b04db..ef1aca2 100644 --- a/src/main/java/org/zwobble/couscous/backends/python/PythonCodeGenerator.java +++ b/src/main/java/org/zwobble/couscous/backends/python/PythonCodeGenerator.java @@ -56,10 +56,14 @@ public class PythonCodeGenerator { classNode.getSimpleName(), ImmutableList.copyOf(Iterables.concat(list(constructor), pythonMethods))); + List staticConstructor = + generateStatements(classNode.getStaticConstructor()); + return pythonModule(ImmutableList.copyOf(Iterators.concat( singletonIterator(pythonClass), imports, - singletonIterator(internalsImport)))); + singletonIterator(internalsImport), + staticConstructor.iterator()))); } private static Stream generateImports(ClassNode classNode) { diff --git a/src/test/java/org/zwobble/couscous/tests/backends/python/PythonCompilerEvalTests.java b/src/test/java/org/zwobble/couscous/tests/backends/python/PythonCompilerEvalTests.java index 6337bc7..e4ff1cb 100644 --- a/src/test/java/org/zwobble/couscous/tests/backends/python/PythonCompilerEvalTests.java +++ b/src/test/java/org/zwobble/couscous/tests/backends/python/PythonCompilerEvalTests.java @@ -1,7 +1,5 @@ package org.zwobble.couscous.tests.backends.python; -import org.junit.Ignore; -import org.junit.Test; import org.zwobble.couscous.ast.ClassNode; import org.zwobble.couscous.ast.ExpressionNode; import org.zwobble.couscous.tests.BackendEvalTests; @@ -10,11 +8,6 @@ import org.zwobble.couscous.values.PrimitiveValue; import java.util.List; public class PythonCompilerEvalTests extends BackendEvalTests { - @Ignore - @Test - public void staticConstructorIsExecutedOnReference() { - } - @Override protected PrimitiveValue evalExpression(List classes, ExpressionNode expression) { return new PythonMethodRunner().evalExpression(classes, expression); -- cgit v1.2.3