aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org')
-rw-r--r--src/main/java/org/zwobble/couscous/ast/ClassNode.java2
-rw-r--r--src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java7
2 files changed, 6 insertions, 3 deletions
diff --git a/src/main/java/org/zwobble/couscous/ast/ClassNode.java b/src/main/java/org/zwobble/couscous/ast/ClassNode.java
index 4cdb993..bdb3499 100644
--- a/src/main/java/org/zwobble/couscous/ast/ClassNode.java
+++ b/src/main/java/org/zwobble/couscous/ast/ClassNode.java
@@ -31,7 +31,7 @@ public class ClassNode implements TypeNode {
private final ConstructorNode constructor;
private final List<MethodNode> methods;
- private ClassNode(
+ public ClassNode(
TypeName name,
Set<TypeName> superTypes,
List<FieldDeclarationNode> fields,
diff --git a/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java b/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java
index d3a763b..a071127 100644
--- a/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java
+++ b/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java
@@ -220,11 +220,14 @@ public class JavaReader {
classNode.getFields(),
captureFields));
- ClassNode generatedClass = ClassNode.declareClass(
+ if (!classNode.getStaticConstructor().isEmpty()) {
+ throw new RuntimeException("Class has unexpected static constructor");
+ }
+
+ ClassNode generatedClass = new ClassNode(
classNode.getName(),
classNode.getSuperTypes(),
fields,
- // TODO: handle static constructor (or codify that this is a case that never needs handling)
list(),
buildConstructor(scope, classNode.getName(), capturedVariables, classNode.getConstructor()),
eagerMap(classNode.getMethods(), method ->