| //@ run-pass | |
| #![allow(unused_variables)] | |
| mod a { | |
| pub mod b { | |
| pub mod c { | |
| pub struct S; | |
| pub struct Z; | |
| } | |
| pub struct W; | |
| } | |
| } | |
| macro_rules! import { | |
| (1 $p: path) => (use $p;); | |
| (2 $p: path) => (use $p::{Z};); | |
| (3 $p: path) => (use $p::*;); | |
| } | |
| import! { 1 a::b::c::S } | |
| import! { 2 a::b::c } | |
| import! { 3 a::b } | |
| fn main() { | |
| let s = S; | |
| let z = Z; | |
| let w = W; | |
| } |