public Assignment(Expression lhs, Expression expression, int sourceEnd) { // lhs is always a reference by construction , // but is build as an expression ==> the checkcast cannot fail this.lhs = lhs; lhs.bits |= IsStrictlyAssigned; // tag lhs as assigned this.expression = expression; this.sourceStart = lhs.sourceStart; this.sourceEnd = sourceEnd; }
// expression.implicitConversion holds the cast for baseType casting public CastExpression(Expression expression, Expression type) { this.expression = expression; this.type = type; type.bits |= ASTNode.IgnoreRawTypeCheck; // no need to worry about raw type usage }