For example, this compiles: ``` rust #![feature(rustc_private)] #[macro_use] extern crate syntax; fn main() { help!(S, ""); struct S; impl S { fn help(&self, _: &str) {} } } ``` but this doesn't: ``` rust #![feature(rustc_private)] macro_rules! my_extern_crate { ($i:ident) => { #[macro_use] extern crate $i; } } my_extern_crate!(syntax); fn main() { ... } ```