anchor.diff:     */
     Token skipTypeArgumentList(Token startToken) {
       Token token = startToken;
  -    if (!_tokenMatches(token, TokenType.LT) &&
  -        !_injectGenericCommentTypeList()) {
  +    if (!_tokenMatches(token, TokenType.LT)) {
         return null;
       }
       token = skipTypeAnnotation(token.next);
  
positive.code:       return parseFunctionDeclaration(
            commentAndMetadata, modifiers.externalKeyword, null);
      } else if (_tokenMatches(next, TokenType.OPEN_PAREN)) {
        TypeName returnType = _parseOptionalTypeNameComment();
        _validateModifiersForTopLevelFunction(modifiers);
        return parseFunctionDeclaration(
            commentAndMetadata, modifiers.externalKeyword, returnType);
  
negative.code:     }
      _reportError(new AnalysisError(_source, token.offset,
          math.max(token.length, 1), errorCode, arguments));
    }
  
    /**
  