docs: public static <K, V, T, U extends T, W extends T> T inject(Map<K, V> self, U initialValue, @ClosureParams(value=FromString.class,options={"U,Map.Entry<K,V>","U,K,V"})  Closure<W> closure) {
          T value = initialValue;
          for (Map.Entry<K, V> entry : self.entrySet()) {
              if (closure.getMaximumNumberOfParameters() == 3) {
                  value = closure.call(value, entry.getKey(), entry.getValue());
              } else {
                  value = closure.call(value, entry);
              }
          }
          return value;
      }