mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-09-28 12:54:58 +00:00
Try to support pre and post-change metavars
This commit is contained in:
parent
8753ca5360
commit
f48ecb6e09
21 changed files with 255 additions and 110 deletions
|
@ -20,7 +20,10 @@ fn benchmark_parse_macro_rules() {
|
|||
let rules = macro_rules_fixtures_tt();
|
||||
let hash: usize = {
|
||||
let _pt = bench("mbe parse macro rules");
|
||||
rules.values().map(|it| DeclarativeMacro::parse_macro_rules(it, true).rules.len()).sum()
|
||||
rules
|
||||
.values()
|
||||
.map(|it| DeclarativeMacro::parse_macro_rules(it, true, true).rules.len())
|
||||
.sum()
|
||||
};
|
||||
assert_eq!(hash, 1144);
|
||||
}
|
||||
|
@ -38,7 +41,7 @@ fn benchmark_expand_macro_rules() {
|
|||
invocations
|
||||
.into_iter()
|
||||
.map(|(id, tt)| {
|
||||
let res = rules[&id].expand(&tt, |_| ());
|
||||
let res = rules[&id].expand(&tt, |_| (), true);
|
||||
assert!(res.err.is_none());
|
||||
res.value.token_trees.len()
|
||||
})
|
||||
|
@ -50,7 +53,7 @@ fn benchmark_expand_macro_rules() {
|
|||
fn macro_rules_fixtures() -> FxHashMap<String, DeclarativeMacro<DummyTestSpanData>> {
|
||||
macro_rules_fixtures_tt()
|
||||
.into_iter()
|
||||
.map(|(id, tt)| (id, DeclarativeMacro::parse_macro_rules(&tt, true)))
|
||||
.map(|(id, tt)| (id, DeclarativeMacro::parse_macro_rules(&tt, true, true)))
|
||||
.collect()
|
||||
}
|
||||
|
||||
|
@ -105,7 +108,7 @@ fn invocation_fixtures(
|
|||
for op in rule.lhs.iter() {
|
||||
collect_from_op(op, &mut subtree, &mut seed);
|
||||
}
|
||||
if it.expand(&subtree, |_| ()).err.is_none() {
|
||||
if it.expand(&subtree, |_| (), true).err.is_none() {
|
||||
res.push((name.clone(), subtree));
|
||||
break;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue