One thing to check.. since you call `super.traverse` on each `arg`, it means that you won't see the first layer of nodes in each argument. I wonder if you get any occurrences for `x` and `bar`:

```
  foo.bar(bar.x)
```