aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-03-01 21:24:45 +0000
committerMichael Williamson <mike@zwobble.org>2016-03-01 21:24:45 +0000
commitdbe3c6ad7ead5fef7d6dde68c9c53bebe3593fe6 (patch)
tree46a70a1e3ba82a6ba994caef3317f3b60f504e57 /src/main/java
parent44e6b9e1f09e57a9abe3d6e31d4b3b6e40b4ee47 (diff)
Get static nested classes working on interpreter
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java7
1 files changed, 7 insertions, 0 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 ec6b556..b867dc2 100644
--- a/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java
+++ b/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java
@@ -68,6 +68,10 @@ public class JavaReader {
private TypeNode readCompilationUnit(CompilationUnit ast) {
TypeDeclaration type = (TypeDeclaration)ast.types().get(0);
+ return readTypeDeclaration(type);
+ }
+
+ private TypeNode readTypeDeclaration(TypeDeclaration type) {
TypeName name = typeOf(type.resolveBinding());
Scope scope = Scope.create().enterClass(name);
TypeDeclarationBody body = readTypeDeclarationBody(scope, name, type.bodyDeclarations());
@@ -254,6 +258,9 @@ public class JavaReader {
Casts.tryCast(FieldDeclaration.class, declaration)
.ifPresent(field -> readField(body, scope, type, field));
+
+ Casts.tryCast(TypeDeclaration.class, declaration)
+ .ifPresent(typeDeclaration -> classes.add(readTypeDeclaration(typeDeclaration)));
}
return body.build();
}