private static ConstantExpression configure(Expression origX, ConstantExpression newX) { newX.setSourcePosition(origX); return newX; }
boolean isBool = GRAB_BOOLEAN.contains(attrName); ConstantExpression value = constX(isBool ? Boolean.valueOf(attrValue) : attrValue); value.setSourcePosition(node); node.addMember(attrName, value); int lastSemi = allstr.lastIndexOf(';');
private static Expression transformDeclarationExpression(final BinaryExpression bin) { Expression leftExpression = bin.getLeftExpression(); if (leftExpression instanceof VariableExpression) { if (ClassHelper.char_TYPE.equals(((VariableExpression) leftExpression).getOriginType())) { Expression rightExpression = bin.getRightExpression(); if (rightExpression instanceof ConstantExpression && ClassHelper.STRING_TYPE.equals(rightExpression.getType())) { String text = (String) ((ConstantExpression) rightExpression).getValue(); if (text.length() == 1) { // optimize char initialization ConstantExpression ce = new ConstantExpression( text.charAt(0), true ); ce.setSourcePosition(rightExpression); bin.setRightExpression(ce); return bin; } } } } return null; }
private static DeclarationExpression optimizeConstantInitialization( final BinaryExpression originalDeclaration, final Token operation, final ConstantExpression constant, final Expression leftExpression, final ClassNode declarationType) { ConstantExpression cexp = new ConstantExpression( convertConstant((Number) constant.getValue(), ClassHelper.getWrapper(declarationType)), true); cexp.setType(declarationType); cexp.setSourcePosition(constant); DeclarationExpression result = new DeclarationExpression( leftExpression, operation, cexp ); result.setSourcePosition(originalDeclaration); result.copyNodeMetaData(originalDeclaration); return result; }
if (field != null && Modifier.isStatic(field.getModifiers()) && Modifier.isFinal(field.getModifiers())) { ConstantExpression ce3 = new ConstantExpression(field.get(null), true); ce3.setSourcePosition(exp); return ce3;
public void visitMethodCallExpression(MethodCallExpression call) { if (call.isImplicitThis() && call.getMethod() instanceof ConstantExpression) { ConstantExpression methodNameConstant = (ConstantExpression) call.getMethod(); Object value = methodNameConstant.getText(); if (!(value instanceof String)) { throw new GroovyBugError("tried to make a method call with a non-String constant method name."); } String methodName = (String) value; Variable v = checkVariableNameForDeclaration(methodName, call); if (v != null && !(v instanceof DynamicVariable)) { checkVariableContextAccess(v, call); } if (v instanceof VariableExpression || v instanceof Parameter) { VariableExpression object = new VariableExpression(v); object.setSourcePosition(methodNameConstant); call.setObjectExpression(object); ConstantExpression method = new ConstantExpression("call"); method.setSourcePosition(methodNameConstant); // important for GROOVY-4344 call.setImplicitThis(false); call.setMethod(method); } } super.visitMethodCallExpression(call); }
if (val!=null && val.length()==1) { ConstantExpression result = new ConstantExpression(val.charAt(0),true); result.setSourcePosition(cast); return result;
boolean isBool = GRAB_BOOLEAN.contains(attrName); ConstantExpression value = new ConstantExpression(isBool ? Boolean.valueOf(attrValue) : attrValue); value.setSourcePosition(node); node.addMember(attrName, value); int lastSemi = allstr.lastIndexOf(';');
public void visitMethodCallExpression(MethodCallExpression call) { if (call.isImplicitThis() && call.getMethod() instanceof ConstantExpression) { ConstantExpression methodNameConstant = (ConstantExpression) call.getMethod(); Object value = methodNameConstant.getText(); if (!(value instanceof String)) { throw new GroovyBugError("tried to make a method call with a non-String constant method name."); } String methodName = (String) value; Variable v = checkVariableNameForDeclaration(methodName, call); if (v != null && !(v instanceof DynamicVariable)) { checkVariableContextAccess(v, call); } if (v instanceof VariableExpression || v instanceof Parameter) { VariableExpression object = new VariableExpression(v); object.setSourcePosition(methodNameConstant); call.setObjectExpression(object); ConstantExpression method = new ConstantExpression("call"); method.setSourcePosition(methodNameConstant); // important for GROOVY-4344 call.setMethod(method); } } super.visitMethodCallExpression(call); }