code: public Iterable<? extends Element> analyze(Iterable<? extends Element> classes) {
          enter(null);  // ensure all classes have been entered
  
          final ListBuffer<Element> results = new ListBuffer<>();
          try {
              if (classes == null) {
                  handleFlowResults(compiler.flow(compiler.attribute(compiler.todo)), results);
              } else {
                  Filter f = new Filter() {
                      @Override
                      public void process(Env<AttrContext> env) {
                          handleFlowResults(compiler.flow(compiler.attribute(env)), results);
                      }
                  };
                  f.run(compiler.todo, classes);
              }
          } finally {
              compiler.log.flush();
          }
          return results;
      }
docs: wrap it here