docs: static TypeVariableSignature parse(final Parser parser, final String definingClassName) throws ParseException {
          final char peek = parser.peek();
          if (peek == 'T') {
              parser.next();
              if (!TypeUtils.getIdentifierToken(parser)) {
                  throw new ParseException(parser, "Could not parse type variable signature");
              }
              parser.expect(';');
              final TypeVariableSignature typeVariableSignature = new TypeVariableSignature(parser.currToken(),
                      definingClassName);
  
              // Save type variable signatures in the parser state, so method and class type signatures can link
              // to type signatures
              @SuppressWarnings("unchecked")
              List<TypeVariableSignature> typeVariableSignatures = (List<TypeVariableSignature>) parser.getState();
              if (typeVariableSignatures == null) {
                  parser.setState(typeVariableSignatures = new ArrayList<>());
              }
              typeVariableSignatures.add(typeVariableSignature);
  
              return typeVariableSignature;
          } else {
              return null;
          }
      }