aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/nameres/tests/macros.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_hir/src/nameres/tests/macros.rs')
-rw-r--r--crates/ra_hir/src/nameres/tests/macros.rs91
1 files changed, 91 insertions, 0 deletions
diff --git a/crates/ra_hir/src/nameres/tests/macros.rs b/crates/ra_hir/src/nameres/tests/macros.rs
index c62152d26..8f0db95f2 100644
--- a/crates/ra_hir/src/nameres/tests/macros.rs
+++ b/crates/ra_hir/src/nameres/tests/macros.rs
@@ -277,3 +277,94 @@ fn prelude_cycle() {
277 ⋮crate::foo 277 ⋮crate::foo
278 "###); 278 "###);
279} 279}
280
281#[test]
282fn plain_macros_are_textual_scoped_between_modules() {
283 let map = def_map(
284 r#"
285 //- /main.rs
286 mod m1;
287 bar!(NotFoundNotMacroUse);
288
289 mod m2 {
290 foo!(NotFoundBeforeInside2);
291 }
292
293 macro_rules! foo {
294 ($x:ident) => { struct $x; }
295 }
296 foo!(Ok);
297
298 mod m3;
299 foo!(OkShadowStop);
300 bar!(NotFoundMacroUseStop);
301
302 #[macro_use]
303 mod m5 {
304 #[macro_use]
305 mod m6 {
306 macro_rules! foo {
307 ($x:ident) => { fn $x() {} }
308 }
309 }
310 }
311 foo!(ok_double_macro_use_shadow);
312
313 //- /m1.rs
314 foo!(NotFoundBeforeInside1);
315 macro_rules! bar {
316 ($x:ident) => { struct $x; }
317 }
318
319 //- /m3/mod.rs
320 foo!(OkAfterInside);
321 macro_rules! foo {
322 ($x:ident) => { fn $x() {} }
323 }
324 foo!(ok_shadow);
325
326 #[macro_use]
327 mod m4;
328 bar!(OkMacroUse);
329
330 //- /m3/m4.rs
331 foo!(ok_shadow_deep);
332 macro_rules! bar {
333 ($x:ident) => { struct $x; }
334 }
335 "#,
336 );
337 assert_snapshot!(map, @r###"
338 ⋮crate
339 ⋮Ok: t v
340 ⋮OkShadowStop: t v
341 ⋮foo: m
342 ⋮m1: t
343 ⋮m2: t
344 ⋮m3: t
345 ⋮m5: t
346 ⋮ok_double_macro_use_shadow: v
347
348 ⋮crate::m1
349 ⋮bar: m
350
351 ⋮crate::m5
352 ⋮m6: t
353
354 ⋮crate::m5::m6
355 ⋮foo: m
356
357 ⋮crate::m2
358
359 ⋮crate::m3
360 ⋮OkAfterInside: t v
361 ⋮OkMacroUse: t v
362 ⋮foo: m
363 ⋮m4: t
364 ⋮ok_shadow: v
365
366 ⋮crate::m3::m4
367 ⋮bar: m
368 ⋮ok_shadow_deep: v
369 "###);
370}