private void correctAccessedVariable(final InnerClassNode closureClass, ClosureExpression ce) {
   CodeVisitorSupport visitor =
       new CodeVisitorSupport() {
         @Override
         public void visitVariableExpression(VariableExpression expression) {
           Variable v = expression.getAccessedVariable();
           if (v == null) return;
           if (!(v instanceof FieldNode)) return;
           String name = expression.getName();
           FieldNode fn = closureClass.getDeclaredField(name);
           if (fn != null) { // only overwrite if we find something more specific
             expression.setAccessedVariable(fn);
           }
         }
       };
   visitor.visitClosureExpression(ce);
 }