docs: public static <T extends Tree> Matcher<Tree> enclosingNode(final Matcher<T> matcher) {
      return new Matcher<Tree>() {
        @SuppressWarnings("unchecked") // TODO(cushon): this should take a Class<T>
        @Override
        public boolean matches(Tree t, VisitorState state) {
          TreePath path = state.getPath().getParentPath();
          while (path != null) {
            Tree node = path.getLeaf();
            state = state.withPath(path);
            if (matcher.matches((T) node, state)) {
              return true;
            }
            path = path.getParentPath();
          }
          return false;
        }
      };
    }