diff options
Diffstat (limited to 'crates/ra_hir/src/ty')
-rw-r--r-- | crates/ra_hir/src/ty/tests.rs | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/crates/ra_hir/src/ty/tests.rs b/crates/ra_hir/src/ty/tests.rs index c4bddde85..f2d5b115e 100644 --- a/crates/ra_hir/src/ty/tests.rs +++ b/crates/ra_hir/src/ty/tests.rs | |||
@@ -2803,6 +2803,41 @@ fn main() { | |||
2803 | ); | 2803 | ); |
2804 | } | 2804 | } |
2805 | 2805 | ||
2806 | #[test] | ||
2807 | fn infer_textual_scoped_macros_expanded() { | ||
2808 | assert_snapshot!( | ||
2809 | infer(r#" | ||
2810 | struct Foo(Vec<i32>); | ||
2811 | |||
2812 | #[macro_use] | ||
2813 | mod m { | ||
2814 | macro_rules! foo { | ||
2815 | ($($item:expr),*) => { | ||
2816 | { | ||
2817 | Foo(vec![$($item,)*]) | ||
2818 | } | ||
2819 | }; | ||
2820 | } | ||
2821 | } | ||
2822 | |||
2823 | fn main() { | ||
2824 | let x = foo!(1,2); | ||
2825 | let y = crate::foo!(1,2); | ||
2826 | } | ||
2827 | "#), | ||
2828 | @r###" | ||
2829 | ![0; 17) '{Foo(v...,2,])}': Foo | ||
2830 | ![1; 4) 'Foo': Foo({unknown}) -> Foo | ||
2831 | ![1; 16) 'Foo(vec![1,2,])': Foo | ||
2832 | ![5; 15) 'vec![1,2,]': {unknown} | ||
2833 | [195; 251) '{ ...,2); }': () | ||
2834 | [205; 206) 'x': Foo | ||
2835 | [228; 229) 'y': {unknown} | ||
2836 | [232; 248) 'crate:...!(1,2)': {unknown} | ||
2837 | "### | ||
2838 | ); | ||
2839 | } | ||
2840 | |||
2806 | #[ignore] | 2841 | #[ignore] |
2807 | #[test] | 2842 | #[test] |
2808 | fn method_resolution_trait_before_autoref() { | 2843 | fn method_resolution_trait_before_autoref() { |