@Override public ResolvedType visit(CastExpr node, Boolean solveLambdas) { return facade.convertToUsage(node.getType(), JavaParserFactory.getContext(node, typeSolver)); }
/** * Get the type of an expression from the cast at the beginning. (int) 12 -> 12 of type int (int) * 15 + 5 -> 15 + 5 of type int (float) (12 + 3) -> 12 + 3 of type float ((int) 12) + 3 -> ((int) * 12) + 3 of type Any ((JsArray) myArray).getAt(0) -> ((JsArray) myArray).getAt(0) of type Any * * @param expression The expression to process * @return The modified expression (where cast has been removed if necessary) */ private Expression getTypeFromCast(Expression expression) { if (expression instanceof BinaryExpr) { Expression mostLeft = getLeftmostExpression(expression); if (mostLeft instanceof CastExpr) { CastExpr castExpr = (CastExpr) mostLeft; currentExpressionReturnType = stringTypeToTypeName(castExpr.getType().toString()); BinaryExpr parent = (BinaryExpr) mostLeft.getParentNode().get(); parent.setLeft(castExpr.getExpression()); } } else if (expression instanceof CastExpr) { CastExpr castExpr = (CastExpr) expression; currentExpressionReturnType = stringTypeToTypeName(castExpr.getType().toString()); expression = castExpr.getExpression(); } return expression; }
private void addCastExpr(Statement stmt, Type castType) { ReturnStmt rstmt = (ReturnStmt) stmt; Optional<Expression> o_expr = rstmt.getExpression(); Expression expr = o_expr.isPresent() ? o_expr.get() : null; CastExpr ce = new CastExpr(castType, expr); rstmt.setExpression(ce); // removes the parent link from expr if (expr != null) { expr.setParentNode(ce); // restore it } }
((oe = n.getScope()).isPresent()) && ((e = getUnenclosedExpr(oe.get())) instanceof CastExpr) && ("jcasType".equals(getName(((CastExpr)e).getExpression())))) { String featureName = nname.substring("casFeatCode_".length());
@Override public ResolvedType visit(CastExpr node, Boolean solveLambdas) { return facade.convertToUsage(node.getType(), JavaParserFactory.getContext(node, typeSolver)); }
if (s.equals("IntArray")) s = "IntegerArray"; EnclosedExpr ee = new EnclosedExpr( new CastExpr(new ClassOrInterfaceType(s), n.getArguments().get(0)));
@Override public ResolvedType visit(CastExpr node, Boolean solveLambdas) { return facade.convertToUsage(node.getType(), JavaParserFactory.getContext(node, typeSolver)); }
/** * Process the $event variable passed on v-on. This variable must have a valid cast in front. * * @param expression The currently processed expression * @param nameExpr The variable we are processing * @param parameters The parameters this expression depends on */ private void processEventParameter(Expression expression, NameExpr nameExpr, List<VariableInfo> parameters) { Optional<Node> parentNode = nameExpr.getParentNode(); if (parentNode.isPresent() && parentNode.get() instanceof CastExpr) { CastExpr castExpr = (CastExpr) parentNode.get(); parameters.add(new VariableInfo(castExpr.getType().toString(), "$event")); } else { logger.error( "\"$event\" should always be casted to it's intended type. Example: @click=\"doSomething((Event) $event)\".", expression.toString()); } }
return NameRole.REFERENCE; if (whenParentIs(CastExpr.class, name, (p, c) -> p.getType() == c)) { return NameRole.REFERENCE;
p.getType() == c)) { return true;