aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/frontends
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-03-02 18:16:29 +0000
committerMichael Williamson <mike@zwobble.org>2016-03-03 18:49:37 +0000
commitac3615f1f8c94d636dcc20bc706db2d208851e74 (patch)
treeb17dfaf6e38a5ce4cef32508197a1051c1499257 /src/main/java/org/zwobble/couscous/frontends
parent7576a7a0afa1bbb6adf9c8be0ad422d99cab4293 (diff)
Throw exception if class with captures has static constructor
Diffstat (limited to 'src/main/java/org/zwobble/couscous/frontends')
-rw-r--r--src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java7
1 files changed, 5 insertions, 2 deletions
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 ->