code: private static int getAnonCompilePriority50(IJavaElement javaElement, IJavaElement firstAncestor, IJavaElement topAncestor) {
  
          // search for initializer block
          IJavaElement initBlock = getLastAncestor(javaElement, IJavaElement.INITIALIZER);
          // test is for anon. classes from initializer blocks
          if (initBlock != null) {
              return 10; // from inner from class init
          }
  
          // test for anon. classes from "regular" code
          return 5;
      }
docs: 1) from instance init 2) from deepest inner from instance init (deepest
  first) 3) from static init 4) from deepest inner from static init
  (deepest first) 5) from deepest inner (deepest first) 6) regular anon
  classes from main class
  
  <br>
  Note, that nested inner anon. classes which do not have different
  non-anon. inner class ancestors, are compiled in they nesting order,
  opposite to rule 2)
  
  @param javaElement
  @return priority - lesser mean wil be compiled later, a value > 0