docs: @Override
    public Description matchClass(ClassTree tree, VisitorState state) {
      // TODO(b/36395371): filter here to exclude some classes (e.g. not immutable)
      if (TEST_CLASS.matches(tree, state)) {
        return NO_MATCH;
      }
  
      for (Tree member : tree.getMembers()) {
        if (isSuppressed(member)) {
          continue;
        }
        if ((member instanceof MethodTree
                && Matchers.methodIsConstructor().matches((MethodTree) member, state))
            || (member instanceof BlockTree && !((BlockTree) member).isStatic())
            || (member instanceof VariableTree && !Matchers.isStatic().matches(member, state))) {
          traverse(member, state);
        }
      }
      return NO_MATCH;
    }