anchor.diff:  
   class _InvalidOperationException extends _ExceptionMatcher {
     const _InvalidOperationException() : super("InvalidOperationException");
  -  bool matches(item) => item is InvalidOperationException;
  +  bool matches(item, MatchState matchState) => item is InvalidOperationException;
   }
   
   class _NullArgumentException extends _ExceptionMatcher {
     const _NullArgumentException() : super("NullArgumentException");
  -  bool matches(item) => item is NullArgumentException;
  +  bool matches(item, MatchState matchState) => item is NullArgumentException;
   }
   
   //
  
positive.code: class _Throws extends BaseMatcher {
    final Matcher _matcher;
  
    const _Throws([Matcher matcher = null]) : this._matcher = matcher;
  
    bool matches(item) {
      if (item is Future) {
        // Queue up an asynchronous expectation that validates when the future
        // completes.
  
negative.code:     try {
        item();
        return false;
      } catch (final e, final s) {
        if (_matcher == null ||_matcher.matches(e, matchState)) {
          return true;
        } else {
          matchState.state = {
              'exception' :e,
              'stack': s
          };
          return false;
        }
      }
    }
  
  