code: static List<TypeArgument> parseList(final Parser parser, final String definingClassName) throws ParseException {
          if (parser.peek() == '<') {
              parser.expect('<');
              final List<TypeArgument> typeArguments = new ArrayList<>(2);
              while (parser.peek() != '>') {
                  if (!parser.hasMore()) {
                      throw new ParseException(parser, "Missing '>'");
                  }
                  typeArguments.add(parse(parser, definingClassName));
              }
              parser.expect('>');
              return typeArguments;
          } else {
              return Collections.emptyList();
          }
      }
docs: Parse a list of type arguments.
  
  @param parser
  The parser.
  @param definingClassName
  The name of the defining class (for resolving type variables).
  @return The list of type arguments.
  @throws ParseException
  If type signature could not be parsed.