docs: @Requires({
      "desc1 != null",
      "desc2 != null",
      "offset >= 0"
    })
    private boolean descArgumentsMatch(String desc1, String desc2, int offset) {
      Type[] types1 = Type.getArgumentTypes(desc1);
      Type[] types2 = Type.getArgumentTypes(desc2);
  
      if (types2.length - types1.length != offset) {
        return false;
      }
      for (int i = 0; i < types1.length; ++i) {
        if (!types1[i].equals(types2[i])) {
          return false;
        }
      }
      return true;
    }