anchor.diff:     */
     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;
  +  }
   }
   
   /**
  
positive.code:       ConstructorElementImpl constructor =
            declaration.element as ConstructorElementImpl;
        constructor.constantInitializers =
            new ConstantValueComputer_InitializerCloner()
                .cloneNodeList(initializers);
      } else if (constNode is FormalParameter) {
        if (constNode is DefaultFormalParameter) {
          DefaultFormalParameter parameter = constNode;
  
negative.code:   static bool isValidPublicSymbol(String name) => name.isEmpty ||
        name == "void" ||
        new JavaPatternMatcher(_PUBLIC_SYMBOL_PATTERN, name).matches();
  }
  
  /**
  