use of com.github.javaparser.ast.expr.ArrayCreationExpr in project javaparser by javaparser.
the class ArrayCreationLevelTransformationsTest method consider.
protected ArrayCreationLevel consider(String code) {
considerExpression("new int" + code);
ArrayCreationExpr arrayCreationExpr = expression.asArrayCreationExpr();
return arrayCreationExpr.getLevels().get(0);
}
use of com.github.javaparser.ast.expr.ArrayCreationExpr in project javaparser by javaparser.
the class JavaParserTest method rangeOfArrayCreationLevelWithoutExpressionIsCorrect.
@Test
public void rangeOfArrayCreationLevelWithoutExpressionIsCorrect() {
String code = "new int[][]";
ArrayCreationExpr expression = JavaParser.parseExpression(code);
Optional<Range> range;
range = expression.getLevels().get(0).getRange();
assertEquals(true, range.isPresent());
assertEquals(new Range(new Position(1, 8), new Position(1, 9)), range.get());
range = expression.getLevels().get(1).getRange();
assertEquals(true, range.isPresent());
assertEquals(new Range(new Position(1, 10), new Position(1, 11)), range.get());
}
use of com.github.javaparser.ast.expr.ArrayCreationExpr in project javaparser by javaparser.
the class JavaParserTest method rangeOfArrayCreationLevelWithExpressionIsCorrect.
@Test
public void rangeOfArrayCreationLevelWithExpressionIsCorrect() {
String code = "new int[123][456]";
ArrayCreationExpr expression = JavaParser.parseExpression(code);
Optional<Range> range;
range = expression.getLevels().get(0).getRange();
assertEquals(true, range.isPresent());
assertEquals(new Range(new Position(1, 8), new Position(1, 12)), range.get());
range = expression.getLevels().get(1).getRange();
assertEquals(true, range.isPresent());
assertEquals(new Range(new Position(1, 13), new Position(1, 17)), range.get());
}
use of com.github.javaparser.ast.expr.ArrayCreationExpr 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.ArrayCreationExpr in project javaparser by javaparser.
the class ArrayTypeTest method getArrayCreationType.
@Test
public void getArrayCreationType() {
ArrayCreationExpr expr = parseExpression("new int[]");
ArrayType outerType = expr.createdType().asArrayType();
Type innerType = outerType.getComponentType();
assertThat(innerType).isEqualTo(expr.getElementType());
}
Aggregations