@Override public void visitCastExpression(CastExpression node) { TypeReference ref = getTypeFromCast(node); Node result = toTree(ref, FlagKey.NAMEREFERENCE_IS_TYPE); lombok.ast.Cast cast = new lombok.ast.Cast().astTypeReference((lombok.ast.TypeReference) result); cast.astOperand((lombok.ast.Expression)toTree(node.expression)); setConversionPositionInfo(cast, "type", toPosition(ref.sourceStart, ref.sourceEnd)); set(node, setPosition(node, cast)); }
@Override public void visitCastExpression(CastExpression node) { TypeReference ref = getTypeFromCast(node); Node result = toTree(ref, FlagKey.NAMEREFERENCE_IS_TYPE); lombok.ast.Cast cast = new lombok.ast.Cast().astTypeReference((lombok.ast.TypeReference) result); cast.astOperand((lombok.ast.Expression)toTree(node.expression)); setConversionPositionInfo(cast, "type", toPosition(ref.sourceStart, ref.sourceEnd)); set(node, setPosition(node, cast)); }
@Override public void visitCastExpression(CastExpression node) { TypeReference ref = getTypeFromCast(node); Node result = toTree(ref, FlagKey.NAMEREFERENCE_IS_TYPE); lombok.ast.Cast cast = new lombok.ast.Cast().astTypeReference((lombok.ast.TypeReference) result); cast.astOperand((lombok.ast.Expression)toTree(node.expression)); setConversionPositionInfo(cast, "type", toPosition(ref.sourceStart, ref.sourceEnd)); set(node, setPosition(node, cast)); }
@Override public boolean visitCast(lombok.ast.Cast node) { Expression typeRef = toExpression(node.astTypeReference()); Expression operand = toExpression(node.astOperand()); CastExpression expr = createCastExpression(typeRef, operand); Position ecjTypePos = getConversionPositionInfo(node, "type"); typeRef.sourceStart = ecjTypePos == null ? posOfStructure(node, "(", true) + 1 : ecjTypePos.getStart(); typeRef.sourceEnd = ecjTypePos == null ? posOfStructure(node, ")", 0, false) - 2 : ecjTypePos.getEnd() - 1; expr.sourceStart = start(node); expr.sourceEnd = end(node); return set(node, expr); }
@Override public boolean visitCast(lombok.ast.Cast node) { Expression typeRef = toExpression(node.astTypeReference()); Expression operand = toExpression(node.astOperand()); CastExpression expr = createCastExpression(typeRef, operand); Position ecjTypePos = getConversionPositionInfo(node, "type"); typeRef.sourceStart = ecjTypePos == null ? posOfStructure(node, "(", true) + 1 : ecjTypePos.getStart(); typeRef.sourceEnd = ecjTypePos == null ? posOfStructure(node, ")", 0, false) - 2 : ecjTypePos.getEnd() - 1; expr.sourceStart = start(node); expr.sourceEnd = end(node); return set(node, expr); }
@Override public boolean visitCast(lombok.ast.Cast node) { Expression typeRef = toExpression(node.astTypeReference()); Expression operand = toExpression(node.astOperand()); CastExpression expr = createCastExpression(typeRef, operand); Position ecjTypePos = getConversionPositionInfo(node, "type"); typeRef.sourceStart = ecjTypePos == null ? posOfStructure(node, "(", true) + 1 : ecjTypePos.getStart(); typeRef.sourceEnd = ecjTypePos == null ? posOfStructure(node, ")", 0, false) - 2 : ecjTypePos.getEnd() - 1; expr.sourceStart = start(node); expr.sourceEnd = end(node); return set(node, expr); }
if (operandValue instanceof Number) { Number number = (Number)operandValue; String typeName = cast.astTypeReference().getTypeName(); if (typeName.equals("float")) { return number.floatValue();
if (node.getParent() instanceof Cast) { Cast cast = (Cast) node.getParent(); String castType = cast.astTypeReference().getTypeName(); StrictListAccessor<Expression, MethodInvocation> args = node.astArguments(); if (args.size() == 1) {
@Override public void visitMethod(@NonNull JavaContext context, @Nullable AstVisitor visitor, @NonNull MethodInvocation node) { if (node.getParent() instanceof Cast) { Cast cast = (Cast) node.getParent(); StrictListAccessor<Expression, MethodInvocation> args = node.astArguments(); if (args.size() == 1) { String name = stripPackage(args.first().toString()); String expectedClass = getExpectedType(name); if (expectedClass != null) { String castType = cast.astTypeReference().getTypeName(); if (castType.indexOf('.') == -1) { expectedClass = stripPackage(expectedClass); } if (!castType.equals(expectedClass)) { // It's okay to mix and match // android.content.ClipboardManager and android.text.ClipboardManager if (isClipboard(castType) && isClipboard(expectedClass)) { return; } String message = String.format( "Suspicious cast to `%1$s` for a `%2$s`: expected `%3$s`", stripPackage(castType), name, stripPackage(expectedClass)); context.report(ISSUE, node, context.getLocation(cast), message); } } } } }
Cast cast = (Cast) node; if (context != null) { ResolvedNode typeReference = context.resolve(cast.astTypeReference()); if (typeReference instanceof ResolvedClass) { return ((ResolvedClass) typeReference).getType();