private boolean finishedCompilation(CompilationUnitTree tree) {
    OUTER:
    for (Tree decl : tree.getTypeDecls()) {
      switch (decl.getKind()) {
        case EMPTY_STATEMENT:
          // ignore ";" at the top level, which counts as an empty type decl
          continue OUTER;
        case IMPORT:
          // The spec disallows mixing imports and empty top-level declarations (";"), but
          // javac has a bug that causes it to accept empty declarations interspersed with imports:
          // http://mail.openjdk.java.net/pipermail/compiler-dev/2013-August/006968.html
          //
          // Any import declarations after the first semi are incorrectly added to the list
          // of type declarations, so we have to skip over them here.
          continue OUTER;
        default:
          break;
      }
      if (!seen.contains(decl)) {
        return false;
      }
    }
    return true;
  }
private boolean finishedCompilation ( CompilationUnitTree tree ) { OUTER : for ( Tree decl : tree . getTypeDecls ( ) ) { switch ( decl . getKind ( ) ) { case EMPTY_STATEMENT : continue OUTER ; case IMPORT : continue OUTER ; default : break ; } if ( ! seen . contains ( decl ) ) { return false ; } } return true ; }
Returns true if all declarations inside the given compilation unit have been visited.