docs: public int compare(final Method m1, final Method m2) {
          int rtn = 0;
          final int m1Idx = classHierarchy.indexOf(m1.getDeclaringClass());
  
          final int m2Idx = classHierarchy.indexOf(m2.getDeclaringClass());
  
          if (m1Idx == -1 || m2Idx == -1) {
              throw new IllegalStateException("Got methods not in our known class hierachy");
          }
  
          if (m1Idx == m2Idx) {
              // both methods are in the same class
              rtn = m1.getName().compareTo(m2.getName());
          } else {
              rtn = m2Idx - m1Idx;
          }
  
          if (rtn == 0) {
              throw new IllegalStateException("Two methods can never be considered equal");
          }
  
          return rtn;
      }