docs: public static Matcher<Tree> hasAnnotation(TypeMirror annotationMirror) {
      return new Matcher<Tree>() {
        @Override
        public boolean matches(Tree tree, VisitorState state) {
          JavacProcessingEnvironment javacEnv = JavacProcessingEnvironment.instance(state.context);
          TypeElement typeElem = (TypeElement) javacEnv.getTypeUtils().asElement(annotationMirror);
          String name = annotationMirror.toString();
          if (typeElem != null) {
            // Get the binary name if possible ($ to separate nested members). See b/36160747
            name = javacEnv.getElementUtils().getBinaryName(typeElem).toString();
          }
          return ASTHelpers.hasAnnotation(ASTHelpers.getDeclaredSymbol(tree), name, state);
        }
      };
    }