aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir_ty/src
diff options
context:
space:
mode:
authorEdwin Cheng <[email protected]>2019-12-20 21:02:31 +0000
committerEdwin Cheng <[email protected]>2019-12-20 21:02:31 +0000
commit360de5ba71a631a118a088dba7c975e9ae592452 (patch)
treeaa270c12c8cebc72908444d9f28722d159b040c3 /crates/ra_hir_ty/src
parent6eab968c601637361e8fbd1ee93ded1b0d967bee (diff)
Recursive collect macros in impl items
Diffstat (limited to 'crates/ra_hir_ty/src')
-rw-r--r--crates/ra_hir_ty/src/tests/macros.rs23
1 files changed, 23 insertions, 0 deletions
diff --git a/crates/ra_hir_ty/src/tests/macros.rs b/crates/ra_hir_ty/src/tests/macros.rs
index 7fdbf996f..69c695cc8 100644
--- a/crates/ra_hir_ty/src/tests/macros.rs
+++ b/crates/ra_hir_ty/src/tests/macros.rs
@@ -202,6 +202,29 @@ fn test() { S.foo()<|>; }
202} 202}
203 203
204#[test] 204#[test]
205fn infer_impl_items_generated_by_macros_chain() {
206 let t = type_at(
207 r#"
208//- /main.rs
209macro_rules! m_inner {
210 () => {fn foo(&self) -> u128 {0}}
211}
212macro_rules! m {
213 () => {m_inner!();}
214}
215
216struct S;
217impl S {
218 m!();
219}
220
221fn test() { S.foo()<|>; }
222"#,
223 );
224 assert_eq!(t, "u128");
225}
226
227#[test]
205fn infer_macro_with_dollar_crate_is_correct_in_expr() { 228fn infer_macro_with_dollar_crate_is_correct_in_expr() {
206 let (db, pos) = TestDB::with_position( 229 let (db, pos) = TestDB::with_position(
207 r#" 230 r#"