code: public void organizeTypeAnnotationsSignatures(final Env<AttrContext> env, final JCClassDecl tree) {
          annotate.afterRepeated( new Worker() {
              @Override
              public void run() {
                  JavaFileObject oldSource = log.useSource(env.toplevel.sourcefile);
  
                  try {
                      new TypeAnnotationPositions(true).scan(tree);
                  } finally {
                      log.useSource(oldSource);
                  }
              }
          } );
      }
docs: Separate type annotations from declaration annotations and
  determine the correct positions for type annotations.
  This version only visits types in signatures and should be
  called from MemberEnter.
  The method takes the Annotate object as parameter and
  adds an Annotate.Worker to the correct Annotate queue for
  later processing.