Skip to content

Commit

Permalink
Merge branch 'enum-field-declaration-isStatic' of git://github.com/jj…
Browse files Browse the repository at this point in the history
…br/javaparser into jjbr-enum-field-declaration-isStatic
  • Loading branch information
ftomassetti committed Aug 5, 2018
2 parents 69f7cb3 + d52e62c commit 913a9fb
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import com.github.javaparser.ast.expr.*;
import com.github.javaparser.ast.stmt.ExpressionStmt;
import com.github.javaparser.ast.stmt.ReturnStmt;
import com.github.javaparser.resolution.declarations.ResolvedFieldDeclaration;
import com.github.javaparser.resolution.declarations.ResolvedValueDeclaration;
import com.github.javaparser.resolution.types.ResolvedType;
import com.github.javaparser.symbolsolver.JavaSymbolSolver;
Expand Down Expand Up @@ -198,4 +199,28 @@ public void resolveClassFieldOfClassExtendingUnknownClass2() {
// check that the expected field declaration equals the resolved field declaration
assertEquals(variableDeclarator, ((JavaParserFieldDeclaration) resolvedValueDeclaration).getVariableDeclarator());
}
}

@Test
public void resolveEnumFieldAccess() {
// configure symbol solver before parsing
JavaParser.getStaticConfiguration().setSymbolResolver(new JavaSymbolSolver(new ReflectionTypeSolver()));

// parse compilation unit and get field access expression
CompilationUnit cu = parseSample("EnumFieldAccess");
ClassOrInterfaceDeclaration clazz = Navigator.demandClass(cu, "EnumFieldAccess");
MethodDeclaration method = Navigator.demandMethod(clazz, "accessField");
ReturnStmt returnStmt = (ReturnStmt) method.getBody().get().getStatements().get(0);
FieldAccessExpr expression = returnStmt.getExpression().get().asFieldAccessExpr();

// resolve field access expression
ResolvedValueDeclaration resolvedValueDeclaration = expression.resolve();

assertEquals(resolvedValueDeclaration.isField(), true);



ResolvedFieldDeclaration resolvedFieldDeclaration = (ResolvedFieldDeclaration) resolvedValueDeclaration;
assertEquals(resolvedFieldDeclaration.isStatic(), true);

}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
class EnumFieldAccess {
public enum MyEnum {
SOME, ARBITRARY, VALUES
}

public MyEnum accessField() {
return MyEnum.SOME;
}
}

0 comments on commit 913a9fb

Please sign in to comment.