anchor.diff:        ConstructorElementImpl constructor =
             declaration.element as ConstructorElementImpl;
         constructor.constantInitializers =
  -          new ConstantValueComputer_InitializerCloner()
  -              .cloneNodeList(initializers);
  +          new ConstantAstCloner().cloneNodeList(initializers);
       } else if (constNode is FormalParameter) {
         if (constNode is DefaultFormalParameter) {
           DefaultFormalParameter parameter = constNode;
  
positive.code:   static bool isValidPublicSymbol(String name) => name.isEmpty ||
        name == "void" ||
        new JavaPatternMatcher(_PUBLIC_SYMBOL_PATTERN, name).matches();
  }
  
  /**
   * An [AstCloner] that copies the necessary information from the AST to allow
   * const constructor initializers to be evaluated.
   */
  class ConstantValueComputer_InitializerCloner extends AstCloner {
    // TODO(brianwilkerson) Investigate replacing uses of this class with uses of
    // AstCloner and ResolutionCopier.
  
    ConstantValueComputer_InitializerCloner() : super(true);
  
    @override
    InstanceCreationExpression visitInstanceCreationExpression(
        InstanceCreationExpression node) {
      InstanceCreationExpression expression =
          super.visitInstanceCreationExpression(node);
      expression.evaluationResult = node.evaluationResult;
      return expression;
    }
  
    @override
    RedirectingConstructorInvocation visitRedirectingConstructorInvocation(
        RedirectingConstructorInvocation node) {
      RedirectingConstructorInvocation invocation =
          super.visitRedirectingConstructorInvocation(node);
      invocation.staticElement = node.staticElement;
      return invocation;
    }
  
    @override
    SimpleIdentifier visitSimpleIdentifier(SimpleIdentifier node) {
      SimpleIdentifier identifier = super.visitSimpleIdentifier(node);
      identifier.staticElement = node.staticElement;
      return identifier;
    }
  
    @override
    SuperConstructorInvocation visitSuperConstructorInvocation(
        SuperConstructorInvocation node) {
      SuperConstructorInvocation invocation =
          super.visitSuperConstructorInvocation(node);
      invocation.staticElement = node.staticElement;
      return invocation;
    }
  }
  
  /**
  
negative.code:    */
    static BoolState from(bool value) =>
        value ? BoolState.TRUE_STATE : BoolState.FALSE_STATE;
  }
  
  /**
   * An [AstCloner] that copies the necessary information from the AST to allow
   * const constructor initializers to be evaluated.
   */
  class ConstantAstCloner extends AstCloner {
    ConstantAstCloner() : super(true);
  
    @override
    InstanceCreationExpression visitInstanceCreationExpression(
        InstanceCreationExpression node) {
      InstanceCreationExpression expression =
          super.visitInstanceCreationExpression(node);
      expression.evaluationResult = node.evaluationResult;
      return expression;
    }
  
    @override
    RedirectingConstructorInvocation visitRedirectingConstructorInvocation(
        RedirectingConstructorInvocation node) {
      RedirectingConstructorInvocation invocation =
          super.visitRedirectingConstructorInvocation(node);
      invocation.staticElement = node.staticElement;
      return invocation;
    }
  
    @override
    SimpleIdentifier visitSimpleIdentifier(SimpleIdentifier node) {
      SimpleIdentifier identifier = super.visitSimpleIdentifier(node);
      identifier.staticElement = node.staticElement;
      return identifier;
    }
  
    @override
    SuperConstructorInvocation visitSuperConstructorInvocation(
        SuperConstructorInvocation node) {
      SuperConstructorInvocation invocation =
          super.visitSuperConstructorInvocation(node);
      invocation.staticElement = node.staticElement;
      return invocation;
    }
  }
  
  /**
  