public function leaveNode(Node $node)
{
if ($node instanceof Node\Stmt\ClassLike) {
assert(end($this->classStack) === $node->namespacedName->toString());
array_pop($this->classStack);
array_pop($this->parentStack);
} elseif ($node instanceof Node\Stmt\Function_) {
assert(end($this->functionStack) === $node->namespacedName->toString());
array_pop($this->functionStack);
} elseif ($node instanceof Node\Stmt\ClassMethod) {
assert(end($this->methodStack) === end($this->classStack) . '::' . $node->name);
array_pop($this->methodStack);
}
}