Unnamed repository; edit this file 'description' to name the repository.
Remove support for `None` `Op::Count` in MBE
Chayim Refael Friedman 2 weeks ago
parent 2e10350 · commit add23df
-rw-r--r--crates/mbe/src/expander/transcriber.rs2
-rw-r--r--crates/mbe/src/parser.rs48
2 files changed, 11 insertions, 39 deletions
diff --git a/crates/mbe/src/expander/transcriber.rs b/crates/mbe/src/expander/transcriber.rs
index e135291d89..440e75eb7e 100644
--- a/crates/mbe/src/expander/transcriber.rs
+++ b/crates/mbe/src/expander/transcriber.rs
@@ -275,7 +275,7 @@ fn expand_subtree(
}
}
- let res = count(binding, 0, depth.unwrap_or(0));
+ let res = count(binding, 0, *depth);
builder.push(tt::Leaf::Literal(tt::Literal {
text_and_suffix: sym::Integer::get(res),
diff --git a/crates/mbe/src/parser.rs b/crates/mbe/src/parser.rs
index 9fbd06cf88..7c3d451d04 100644
--- a/crates/mbe/src/parser.rs
+++ b/crates/mbe/src/parser.rs
@@ -92,39 +92,14 @@ impl MetaTemplate {
#[derive(Clone, Debug, PartialEq, Eq)]
pub(crate) enum Op {
- Var {
- name: Symbol,
- kind: Option<MetaVarKind>,
- id: Span,
- },
- Ignore {
- name: Symbol,
- id: Span,
- },
- Index {
- depth: usize,
- },
- Len {
- depth: usize,
- },
- Count {
- name: Symbol,
- // FIXME: `usize` once we drop support for 1.76
- depth: Option<usize>,
- },
- Concat {
- elements: Box<[ConcatMetaVarExprElem]>,
- span: Span,
- },
- Repeat {
- tokens: MetaTemplate,
- kind: RepeatKind,
- separator: Option<Arc<Separator>>,
- },
- Subtree {
- tokens: MetaTemplate,
- delimiter: tt::Delimiter,
- },
+ Var { name: Symbol, kind: Option<MetaVarKind>, id: Span },
+ Ignore { name: Symbol, id: Span },
+ Index { depth: usize },
+ Len { depth: usize },
+ Count { name: Symbol, depth: usize },
+ Concat { elements: Box<[ConcatMetaVarExprElem]>, span: Span },
+ Repeat { tokens: MetaTemplate, kind: RepeatKind, separator: Option<Arc<Separator>> },
+ Subtree { tokens: MetaTemplate, delimiter: tt::Delimiter },
Literal(tt::Literal),
Punct(Box<ArrayVec<tt::Punct, MAX_GLUED_PUNCT_LEN>>),
Ident(tt::Ident),
@@ -432,11 +407,8 @@ fn parse_metavar_expr(src: &mut TtIter<'_>) -> Result<Op, ()> {
s if sym::count == *s => {
args_iter.expect_dollar()?;
let ident = args_iter.expect_ident()?;
- let depth = if try_eat_comma(&mut args_iter) {
- Some(parse_depth(&mut args_iter)?)
- } else {
- None
- };
+ let depth =
+ if try_eat_comma(&mut args_iter) { parse_depth(&mut args_iter)? } else { 0 };
Op::Count { name: ident.sym.clone(), depth }
}
s if sym::concat == *s => {