anchor.diff:        if (isValidMethodTypeArguments(token)) {
           // For example a(b)..<T>(c), where token is '<'.
           typeArguments = token;
  -        token = parseTypeArgumentsOpt(token);
  +        // TODO(brianwilkerson): Remove the invocation of `previous` when this
  +        // method accepts the last consumed token and the methods invoked above
  +        // that are assigned to `token` return the last consumed token.
  +        token = parseTypeArgumentsOpt(token.previous.next);
           assert(optional('(', token));
         }
         token = parseArgumentOrIndexStar(token, typeArguments);
  
positive.code:       hasReturnType = looksLikeType;
  
        while (optional("Function", token)) {
          Token typeVariableStart = token.next;
          if (optional("<", token.next)) {
            Token close = closeBraceTokenFor(token.next);
            if (close != null && optional(">", close)) {
  
negative.code:           // The following isn't allowed:
            //    int Function(int bar(String x)).
            if (memberKind == MemberKind.GeneralizedFunctionType) {
              reportRecoverableError(inlineFunctionTypeStart.next,
                  fasta.messageInvalidInlineFunctionType);
            }
          } else if (untyped) {
  