| //@ check-pass |
| //@ aux-build:transparent-basic.rs |
| |
| #![feature(decl_macro, rustc_attrs)] |
| |
| extern crate transparent_basic; |
| |
| #[rustc_macro_transparency = "transparent"] |
| macro binding() { |
| let x = 10; |
| } |
| |
| #[rustc_macro_transparency = "transparent"] |
| macro label() { |
| break 'label |
| } |
| |
| macro_rules! legacy { |
| () => { |
| binding!(); |
| let y = x; |
| } |
| } |
| |
| fn legacy_interaction1() { |
| legacy!(); |
| } |
| |
| struct S; |
| |
| fn check_dollar_crate() { |
| // `$crate::S` inside the macro resolves to `S` from this crate. |
| transparent_basic::dollar_crate!(); |
| } |
| |
| fn main() { |
| binding!(); |
| let y = x; |
| |
| 'label: loop { |
| label!(); |
| } |
| } |