code: private boolean methodHasSyntheticTwin(String methodName, String methodSig) {
          for (Method m : cls.getMethods()) {
              if (m.isSynthetic() && m.getName().equals(methodName) && !m.getSignature().equals(methodSig)) {
                  return true;
              }
          }
  
          return false;
      }
docs: returns whether this method has an equivalent method that is synthetic, which
  implies this method is constrained by some Generified interface. We could
  compare parameters but that is a bunch of work that probably doesn't make
  this test any more precise, so just return true if method name and synthetic
  is found.
  
  @param methodName the method name to look for a synthetic twin of
  @param methodSig  the method signature to lookfor a synthetic twin of
  @return if a synthetic twin is found