anchor.diff:    }
   
     @override
  -  void _replaceType(DartType type, int offset) {
  +  void _replaceType(DartType type) {
       if (_debug) {
  +      int offset = _deferredOffsets.removeLast();
         print('Replacing type $type for offset $offset');
       }
  -    super._replaceType(type, offset);
  +    super._replaceType(type);
     }
   }
   
  
positive.code:     // TODO(paulberry): get the actual callee function type from the inference
      // engine
      var calleeType = const DynamicType();
      _replaceType(calleeType, expression.fileOffset);
      _recordType(inferredType, expression.arguments.fileOffset);
      super.genericExpressionExit("staticInvocation", expression, inferredType);
    }
  
    @override
    void variableDeclarationEnter(VariableDeclaration statement) {
      _deferredTypeSlots.add(_recordType(null, statement.fileOffset));
      super.variableDeclarationEnter(statement);
    }
  
    @override
    void variableDeclarationExit(
        VariableDeclaration statement, DartType inferredType) {
      _replaceType(inferredType, statement.fileOffset);
      super.variableDeclarationExit(statement, inferredType);
    }
  
    int _recordType(DartType type, int offset) {
  
negative.code:     //
      // So we add a `null` to our list of types; we'll update it with the actual
      // type later.
      _deferType(expression.fileOffset);
      return super.staticInvocationEnter(expression, typeContext);
    }
  
  