anchor.diff:      GatheringErrorListener errorListener = new GatheringErrorListener();
       ErrorReporter errorReporter =
           new ErrorReporter(errorListener, _dummySource());
  -    DartObjectImpl result = expression.accept(new ConstantVisitor(
  -        new ConstantEvaluationEngine(
  -            new TestTypeProvider(), new DeclaredVariables(),
  -            typeSystem: new TypeSystemImpl()),
  -        errorReporter));
  +    DartObjectImpl result = _evaluate(expression, errorReporter);
       expect(result, isNull);
       errorListener
           .assertErrorsWithCodes([CompileTimeErrorCode.INVALID_CONSTANT]);
  
positive.code:     GatheringErrorListener errorListener = new GatheringErrorListener();
      ErrorReporter errorReporter =
          new ErrorReporter(errorListener, _dummySource());
      DartObjectImpl result = expression.accept(new ConstantVisitor(
          new ConstantEvaluationEngine(
              new TestTypeProvider(), new DeclaredVariables(),
              typeSystem: new TypeSystemImpl()),
          errorReporter));
      expect(result, isNull);
      errorListener
          .assertErrorsWithCodes([CompileTimeErrorCode.INVALID_CONSTANT]);
  
negative.code:     ElementHolder holder = new ElementHolder();
      ElementBuilder builder = new ElementBuilder(holder);
      String className = "A";
      ConstructorDeclaration constructorDeclaration =
          AstFactory.constructorDeclaration2(
              null,
              Keyword.FACTORY,
              AstFactory.identifier3(className),
  