docs: private static String getSignature(IMethod mtd) {
      String classType =
          mtd.getDeclaringClass().getName().toString().replaceAll("/", "\\.").substring(1);
      classType = classType.replaceAll("\\$", "\\."); // handle inner class
      String returnType = mtd.isInit() ? null : getSimpleTypeName(mtd.getReturnType());
      String strArgTypes = "";
      int argi = mtd.isStatic() ? 0 : 1; // Skip 'this' parameter
      for (; argi < mtd.getNumberOfParameters(); argi++) {
        strArgTypes += getSimpleTypeName(mtd.getParameterType(argi));
        if (argi < mtd.getNumberOfParameters() - 1) strArgTypes += ", ";
      }
      return classType
          + ":"
          + (returnType == null ? "void " : returnType + " ")
          + mtd.getName().toString()
          + "("
          + strArgTypes
          + ")";
    }