Does this mean that 

```rust
macro_rules! foo ( () => { unsafe { *(0 as *int) } } )

fn main() { foo!() }
```

doesn't get picked up? Maybe we need `UserProvided`, `UserMacroGenerated`, `CompileMacroGenerated`, or something.