/** * Parse a reference type signature. * * @param parser * The parser * @param definingClassName * The class containing the type descriptor. * @return The parsed type reference type signature. * @throws ParseException * If the type signature could not be parsed. */ static ReferenceTypeSignature parseReferenceTypeSignature(final Parser parser, final String definingClassName) throws ParseException { final ClassRefTypeSignature classTypeSignature = ClassRefTypeSignature.parse(parser, definingClassName); if (classTypeSignature != null) { return classTypeSignature; } final TypeVariableSignature typeVariableSignature = TypeVariableSignature.parse(parser, definingClassName); if (typeVariableSignature != null) { return typeVariableSignature; } final ArrayTypeSignature arrayTypeSignature = ArrayTypeSignature.parse(parser, definingClassName); if (arrayTypeSignature != null) { return arrayTypeSignature; } return null; }
final ClassRefTypeSignature superclassSignature = ClassRefTypeSignature.parse(parser, definingClassNameNull); List<ClassRefTypeSignature> superinterfaceSignatures; superinterfaceSignatures = new ArrayList<>(); while (parser.hasMore()) { final ClassRefTypeSignature superinterfaceSignature = ClassRefTypeSignature.parse(parser, definingClassNameNull); if (superinterfaceSignature == null) {
while (parser.peek() == '^') { parser.expect('^'); final ClassRefTypeSignature classTypeSignature = ClassRefTypeSignature.parse(parser, definingClassName); if (classTypeSignature != null) {