aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/macros.rs
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2019-01-31 08:09:19 +0000
committerAleksey Kladov <[email protected]>2019-01-31 20:23:30 +0000
commit2980508ad2a04364f943af72c2c05337e03f4f6c (patch)
tree86c9b7bf5eaa5c825aaf179a96980e8174c49b28 /crates/ra_hir/src/macros.rs
parent82cf0185c36faf81dbdf7e64843bdfc5b4df1b21 (diff)
debug impls
Diffstat (limited to 'crates/ra_hir/src/macros.rs')
-rw-r--r--crates/ra_hir/src/macros.rs26
1 files changed, 26 insertions, 0 deletions
diff --git a/crates/ra_hir/src/macros.rs b/crates/ra_hir/src/macros.rs
index c23ad53cc..4740e5337 100644
--- a/crates/ra_hir/src/macros.rs
+++ b/crates/ra_hir/src/macros.rs
@@ -250,3 +250,29 @@ fn convert_tt(tt: &SyntaxNode) -> Option<tt::Subtree> {
250 }; 250 };
251 Some(res) 251 Some(res)
252} 252}
253
254#[test]
255fn test_convert_tt() {
256 let text = r#"
257macro_rules! impl_froms {
258 ($e:ident: $($v:ident), *) => {
259 $(
260 impl From<$v> for $e {
261 fn from(it: $v) -> $e {
262 $e::$v(it)
263 }
264 }
265 )*
266 }
267}
268"#;
269 let source_file = ast::SourceFile::parse(text);
270 let maco_call = source_file
271 .syntax()
272 .descendants()
273 .find_map(ast::MacroCall::cast)
274 .unwrap();
275 let tt = macro_call_to_tt(maco_call).unwrap();
276 let tt = mbe::parse(&tt);
277 dbg!(tt);
278}