anchor.diff:  
   /// Type inference listener that records inferred types for later use by
   /// [ResolutionApplier].
  -class ResolutionStorer extends _ResolutionStorer<int, Node, int>
  +class ResolutionStorer
       implements
           TypeInferenceListener<int, Node, int>,
           Factory<void, void, void, void> {
  +  final Map<int, ResolutionData<DartType, int, Node, int>> _data;
  +
     ResolutionStorer(Map<int, ResolutionData<DartType, int, Node, int>> data)
  -      : super(data);
  -
  -  @override
  -  void _validateLocation(int location) {
  -    if (location < 0) {
  -      throw new StateError('Invalid location: $location');
  -    }
  -  }
  -}
  -
  -/// A [DartType] wrapper around invocation type arguments.
  -class TypeArgumentsDartType implements DartType {
  -  final List<DartType> types;
  -
  -  TypeArgumentsDartType(this.types);
  -
  -  noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation);
  -
  -  @override
  -  String toString() {
  -    return '<${types.join(', ')}>';
  -  }
  -}
  -
  -/// TODO(paulberry): eventually just use the element directly.
  -class VariableDeclarationBinder {
  -  final int fileOffset;
  -
  -  VariableDeclarationBinder(this.fileOffset);
  -}
  -
  -/// Implementation of [ResolutionStorer], with types parameterized to avoid
  -/// accidentally peeking into kernel internals.
  -///
  -/// TODO(paulberry): when the time is right, fuse this with [ResolutionStorer].
  -class _ResolutionStorer<Location, Reference, PrefixInfo> {
  -  final Map<Location, ResolutionData<DartType, int, Reference, PrefixInfo>>
  -      _data;
  -
  -  _ResolutionStorer(this._data);
  -
  -  void asExpression(
  -      ExpressionJudgment judgment,
  -      Location location,
  -      void expression,
  -      Token asOperator,
  -      void literalType,
  -      DartType inferredType) {
  +      : _data = data;
  +
  +  void asExpression(ExpressionJudgment judgment, int location, void expression,
  +      Token asOperator, void literalType, DartType inferredType) {
       _store(location, literalType: inferredType, inferredType: inferredType);
     }
   
     void assertInitializer(
         InitializerJudgment judgment,
  -      Location location,
  +      int location,
         Token assertKeyword,
         Token leftParenthesis,
         void condition,
  
positive.code:       void body,
        covariant VariableDeclarationBinder loopVariableBinder,
        DartType loopVariableType,
        Location writeLocation,
        DartType writeType,
        covariant VariableDeclarationBinder writeVariableBinder,
        Reference writeTarget) {
      if (loopVariableBinder != null) {
        _store(loopVariableBinder.fileOffset as Location,
            inferredType: loopVariableType);
      } else {
        if (writeVariableBinder != null) {
          _store(writeLocation,
  
negative.code: 
    void isNotExpression(
        ExpressionJudgment judgment,
        int location,
        void expression,
        Token isOperator,
        Token notOperator,
  