Hm... it should only be visited once, in place in the expansion (since expansion runs and finishes before resolve starts). I guess resolve might be doing multiple passes...

But it certainly seems to be distinguishing between labels with the same name.

(I think the `SyntaxContext` is what is set by the ident renaming step of macro expansion.)