code: public void visitSelect(JCFieldAccess tree) {
              if ((tree.name == names._this || tree.name == names._super) &&
                  tree.selected.type.tsym != clazz &&
                  outerThisStack.head != null)
                  visitSymbol(outerThisStack.head);
              super.visitSelect(tree);
          }
docs: If tree refers to a qualified this or super expression
  for anything but the current class, add the outer this
  stack as a free variable.