@Override
 public void visitClass(ClassTree tree) {
   Symbol.TypeSymbol symbol = tree.symbol();
   if (!tree.is(Tree.Kind.CLASS)) {
     return;
   }
   outerClasses.push(symbol);
   atLeastOneReference.push(Boolean.FALSE);
   scan(tree.members());
   Boolean oneReference = atLeastOneReference.pop();
   outerClasses.pop();
   if (!symbol.isStatic()
       && !oneReference
       && !outerClasses.isEmpty()
       && isFirstParentStatic(outerClasses)) {
     String named = symbol.name().isEmpty() ? "named " : "";
     context.addIssue(tree, this, "Make this a " + named + "\"static\" inner class.");
   }
 }