code: private boolean equalsIgnoreOrder(final ConstructorDef<?> def) {
      HashMap map = new HashMap();
      for (ConstructorArg a : def.getArgs()) {
        map.put(a.getName(), null);
      }
      for (ConstructorArg a : getArgs()) {
        if (!map.containsKey(a.getName())) {
          return false;
        }
      }
      return true;
    }
docs: Check to see if two boundConstructors take indistinguishable arguments. If
  so (and they are in the same class), then this would lead to ambiguous
  injection targets, and we want to fail fast.
  
  @param def
  @return