docs: public static <T> T withReader(Reader reader, @ClosureParams(FirstParam.class) Closure<T> closure) throws IOException {
          try {
              T result = closure.call(reader);
  
              Reader temp = reader;
              reader = null;
              temp.close();
  
              return result;
          } finally {
              closeWithWarning(reader);
          }
      }