anchor.diff:    // Handle use-sites of constants (and "inline" constant expressions):
   
     visitSymbolLiteral(SymbolLiteral node) {
  -    return new ConstantExpression(constantEvaluator.evaluate(node));
  +    return makeConstantExpression(constantEvaluator.evaluate(node));
     }
   
     visitStaticGet(StaticGet node) {
  
positive.code: 
    tryEvaluateAndTransformWithContext(TreeNode treeContext, Expression node) {
      final Constant constant = tryEvaluateWithContext(treeContext, node);
      return constant != null ? new ConstantExpression(constant) : node;
    }
  
    tryEvaluateWithContext(TreeNode treeContext, Expression node) {
  
negative.code:             // So the value of the variable is still available for debugging
              // purposes we convert the constant variable to be a final variable
              // initialized to the evaluated constant expression.
              node.initializer = makeConstantExpression(constant)..parent = node;
              node.isFinal = true;
              node.isConst = false;
            } else {
  