anchor.diff:            return receiver.fieldValues[fieldRef];
           }
         }
  -    } else if (hasUnevaluatedChild(node)) {
  +    } else if (shouldBeUnevaluated) {
         return unevaluated(node,
             new PropertyGet(extract(receiver), node.name, node.interfaceTarget));
       } else if (receiver is NullConstant) {
  
positive.code: 
    visitInstantiation(Instantiation node) {
      final Constant constant = _evaluateSubexpression(node.expression);
      if (hasUnevaluatedChild(node)) {
        return unevaluated(
            node, new Instantiation(extract(constant), node.typeArguments));
      }
  
negative.code: 
    visitIsExpression(IsExpression node) {
      final Constant constant = node.operand.accept(this);
      if (shouldBeUnevaluated) {
        return unevaluated(node, new IsExpression(extract(constant), node.type));
      }
      if (constant is NullConstant) {
  