public boolean endvisit(Assignment assignment) throws Exception { if (!fNodes.isEmpty() && fNodes.peek() == assignment) { fRequestor.exitField(assignment.sourceEnd() - 1); fNodes.pop(); ElementInfo currentField = fInfoStack.pop(); if (fDeferredVariables.containsKey(currentField)) { for (Assignment assign : fDeferredVariables.get(currentField)) { assign.traverse(this); } fDeferredVariables.remove(currentField); } } return true; }