code: protected boolean narrowArguments(Object[] args) {
      boolean narrowed = false;
      for (int a = 0; a < args.length; ++a) {
        Object arg = args[a];
        if (arg instanceof Number) {
          Object narg = narrow((Number) arg);
          if (narg != arg) {
            narrowed = true;
          }
          args[a] = narg;
        }
      }
      return narrowed;
    }
docs: Replace all numbers in an arguments array with the smallest type that will
  fit.
  
  @param args
  the argument array
  @return true if some arguments were narrowed and args array is modified,
  false if no narrowing occured and args array has not been modified