use of com.github.javaparser.ast.expr.VariableDeclarationExpr in project javaparser by javaparser.
the class NodeWithVariablesTest method getElementTypeWorksForNormalVariables.
@Test
public void getElementTypeWorksForNormalVariables() {
VariableDeclarationExpr declaration = parseVariableDeclarationExpr("int a,b");
assertEquals(PrimitiveType.intType(), declaration.getElementType());
}
use of com.github.javaparser.ast.expr.VariableDeclarationExpr in project javaparser by javaparser.
the class NodeWithVariablesTest method getCommonTypeWorksForNormalVariables.
@Test
public void getCommonTypeWorksForNormalVariables() {
VariableDeclarationExpr declaration = parseVariableDeclarationExpr("int a,b");
assertEquals(PrimitiveType.intType(), declaration.getCommonType());
}
use of com.github.javaparser.ast.expr.VariableDeclarationExpr in project javaparser by javaparser.
the class VarValidator method accept.
@Override
public void accept(VarType node, ProblemReporter reporter) {
// All allowed locations are within a VariableDeclaration inside a VariableDeclarationExpr inside something else.
Optional<VariableDeclarator> variableDeclarator = node.findParent(VariableDeclarator.class);
if (!variableDeclarator.isPresent()) {
// Java 11's var in lambda's
if (varAllowedInLambdaParameters) {
boolean valid = node.findParent(Parameter.class).flatMap(Node::getParentNode).map((Node p) -> p instanceof LambdaExpr).orElse(false);
if (valid) {
return;
}
}
reportIllegalPosition(node, reporter);
return;
}
variableDeclarator.ifPresent(vd -> {
Optional<Node> variableDeclarationExpr = vd.getParentNode();
if (!variableDeclarationExpr.isPresent()) {
reportIllegalPosition(node, reporter);
return;
}
variableDeclarationExpr.ifPresent(vdeNode -> {
if (!(vdeNode instanceof VariableDeclarationExpr)) {
reportIllegalPosition(node, reporter);
return;
}
VariableDeclarationExpr vde = (VariableDeclarationExpr) vdeNode;
if (vde.getVariables().size() > 1) {
reporter.report(vde, "\"var\" only takes a single variable.");
}
Optional<Node> container = vdeNode.getParentNode();
if (!container.isPresent()) {
reportIllegalPosition(node, reporter);
return;
}
container.ifPresent(c -> {
boolean positionIsFine = c instanceof ForStmt || c instanceof ForeachStmt || c instanceof ExpressionStmt;
if (!positionIsFine) {
reportIllegalPosition(node, reporter);
}
// A local variable declaration ends up inside an ExpressionStmt.
if (c instanceof ExpressionStmt) {
if (!vd.getInitializer().isPresent()) {
reporter.report(node, "\"var\" needs an initializer.");
}
vd.getInitializer().ifPresent(initializer -> {
if (initializer instanceof NullLiteralExpr) {
reporter.report(node, "\"var\" cannot infer type from just null.");
}
if (initializer instanceof ArrayCreationExpr) {
reporter.report(node, "\"var\" cannot infer array types.");
}
});
}
});
});
});
}
use of com.github.javaparser.ast.expr.VariableDeclarationExpr in project javaparser by javaparser.
the class ArrayTypeTest method setVariableDeclarationWithArrays.
@Test
public void setVariableDeclarationWithArrays() {
ExpressionStmt variableDeclarationStatement = parseStatement("@C int @A[] @B[] a @X[] @Y[];").asExpressionStmt();
VariableDeclarationExpr variableDeclarationExpr = variableDeclarationStatement.getExpression().asVariableDeclarationExpr();
variableDeclarationExpr.getVariable(0).setType(new ArrayType(new ArrayType(PrimitiveType.intType())));
assertEquals("@C int[][] a;", variableDeclarationStatement.toString());
}
use of com.github.javaparser.ast.expr.VariableDeclarationExpr in project javaparser by javaparser.
the class TypeTest method primitiveTypeArgumentLenientValidator.
@Test
public void primitiveTypeArgumentLenientValidator() {
ParserConfiguration config = new ParserConfiguration().setLanguageLevel(RAW);
config.getPostProcessors().add(new Java5Validator() {
{
remove(noPrimitiveGenericArguments);
}
}.postProcessor());
ParseResult<VariableDeclarationExpr> result = new JavaParser(config).parse(VARIABLE_DECLARATION_EXPR, provider("List<long> x"));
assertTrue(result.isSuccessful());
VariableDeclarationExpr decl = result.getResult().get();
assertEquals("List<long>", decl.getVariable(0).getType().asString());
}
Aggregations