private ClassInfo parseClassSignature(String signature) throws ClsFormatException {
    ClassInfo result = new ClassInfo();
    SignatureParsing.CharIterator iterator = new SignatureParsing.CharIterator(signature);
    result.typeParameters = SignatureParsing.parseTypeParametersDeclaration(iterator, myFirstPassData);
    result.superType = SignatureParsing.parseTopLevelClassRefSignatureToTypeInfo(iterator, myFirstPassData);
    while (iterator.current() != CharacterIterator.DONE) {
      TypeInfo anInterface = SignatureParsing.parseTopLevelClassRefSignatureToTypeInfo(iterator, myFirstPassData);
      if (anInterface == null) throw new ClsFormatException();
      if (result.interfaces == null) result.interfaces = new SmartList<>();
      result.interfaces.add(anInterface);
    }
    return result;
  }
private ClassInfo parseClassSignature(String signature)