File tree Expand file tree Collapse file tree 1 file changed +37
-0
lines changed
crates/ra_hir_def/src/nameres/tests Expand file tree Collapse file tree 1 file changed +37
-0
lines changed Original file line number Diff line number Diff line change @@ -135,6 +135,43 @@ fn macro_rules_export_with_local_inner_macros_are_visible() {
135
135
"### ) ;
136
136
}
137
137
138
+ #[ test]
139
+ fn local_inner_macros_makes_local_macros_usable ( ) {
140
+ let map = def_map (
141
+ "
142
+ //- /main.rs crate:main deps:foo
143
+ foo::structs!(Foo, Bar);
144
+ mod bar;
145
+ //- /bar.rs
146
+ use crate::*;
147
+ //- /lib.rs crate:foo
148
+ #[macro_export(local_inner_macros)]
149
+ macro_rules! structs {
150
+ ($($i:ident),*) => {
151
+ inner!($($i),*);
152
+ }
153
+ }
154
+ #[macro_export]
155
+ macro_rules! inner {
156
+ ($($i:ident),*) => {
157
+ $(struct $i { field: u32 } )*
158
+ }
159
+ }
160
+ " ,
161
+ ) ;
162
+ assert_snapshot ! ( map, @r###"
163
+ ⋮crate
164
+ ⋮Bar: t v
165
+ ⋮Foo: t v
166
+ ⋮bar: t
167
+ ⋮
168
+ ⋮crate::bar
169
+ ⋮Bar: t v
170
+ ⋮Foo: t v
171
+ ⋮bar: t
172
+ "### ) ;
173
+ }
174
+
138
175
#[ test]
139
176
fn unexpanded_macro_should_expand_by_fixedpoint_loop ( ) {
140
177
let map = def_map (
You can’t perform that action at this time.
0 commit comments