anchor.diff:          stdin,
           stdout;
   
  -import 'package:_fe_analyzer_shared/src/parser/parser.dart' show Parser;
  -import 'package:_fe_analyzer_shared/src/parser/forwarding_listener.dart'
  -    show NullListener;
   import 'package:_fe_analyzer_shared/src/messages/severity.dart' show Severity;
   import 'package:_fe_analyzer_shared/src/scanner/token.dart'
       show CommentToken, Token;
  
positive.code: 
    for (Library library in component.libraries) {
      if (library.importUri.scheme == "dart") continue;
      // This isn't perfect because of parts, but (for now it'll do).
      for (Uri uri in libUris) {
        if (library.fileUri.toString().startsWith(uri.toString())) {
          library.accept(new InvocationVisitor());
  
negative.code: 
  Map<Uri, Token> cache = {};
  
  void check(
      Expression argumentExpression,
      int parameterNumber,
      VariableDeclaration parameter,
      NamedNode targetNode,
      String expectedComment) {
    if (targetNode is Procedure && targetNode.kind == ProcedureKind.Operator) {
      // Operator calls doesn't look like 'regular' method calls.
      return;
    }
    if (argumentExpression.fileOffset == -1) return;
    Location location = argumentExpression.location;
    Token token = cache[location.file];
    while (token.offset != argumentExpression.fileOffset) {
      token = token.next;
      if (token.isEof) {
        throw "Couldn't find token for $argumentExpression "
            "(${argumentExpression.fileOffset}).";
      }
    }
    bool foundComment = false;
    CommentToken commentToken = token.precedingComments;
    while (commentToken != null) {
  