From efdf460d9230e20052d6e28fc0bffac700cf55e3 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Thu, 11 Feb 2016 21:59:18 +0000 Subject: Support reading static fields in Java frontend --- .../java/org/zwobble/couscous/frontends/java/JavaReader.java | 2 +- .../couscous/tests/frontends/java/JavaReaderTests.java | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) (limited to 'src') 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 2f68380..90723b0 100644 --- a/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java +++ b/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java @@ -295,7 +295,7 @@ public class JavaReader { List fragments = field.fragments(); TypeName type = typeOf(field.getType()); return eagerMap(fragments, fragment -> - field(fragment.getName().getIdentifier(), type)); + field(Modifier.isStatic(field.getModifiers()), fragment.getName().getIdentifier(), type)); } private List readMethods(Scope scope, List methods) { diff --git a/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java b/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java index 13484c2..99145ee 100644 --- a/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java +++ b/src/test/java/org/zwobble/couscous/tests/frontends/java/JavaReaderTests.java @@ -24,6 +24,7 @@ import static org.zwobble.couscous.ast.ConstructorCallNode.constructorCall; import static org.zwobble.couscous.ast.ExpressionStatementNode.expressionStatement; import static org.zwobble.couscous.ast.FieldAccessNode.fieldAccess; import static org.zwobble.couscous.ast.FieldDeclarationNode.field; +import static org.zwobble.couscous.ast.FieldDeclarationNode.staticField; import static org.zwobble.couscous.ast.IfStatementNode.ifStatement; import static org.zwobble.couscous.ast.LiteralNode.literal; import static org.zwobble.couscous.ast.LocalVariableDeclarationNode.localVariableDeclaration; @@ -73,6 +74,16 @@ public class JavaReaderTests { list(field("name", TypeName.of("java.lang.String"))), classNode.getFields()); } + + @Test + public void canReadStaticFieldDeclarations() { + ClassNode classNode = readClass( + "private static String name;"); + + assertEquals( + list(staticField("name", TypeName.of("java.lang.String"))), + classNode.getFields()); + } @Test public void canReadExplicitFieldReference() { -- cgit v1.2.3