Skip to content

Commit

Permalink
Using reference to slice in parse_formula API
Browse files Browse the repository at this point in the history
  • Loading branch information
tirix authored and digama0 committed Oct 14, 2021
1 parent 6138afb commit 82a27ca
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 8 deletions.
10 changes: 7 additions & 3 deletions src/grammar.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1078,7 +1078,7 @@ impl Grammar {
pub fn parse_formula(
&self,
symbol_iter: &mut impl Iterator<Item = Symbol>,
expected_typecodes: Box<[TypeCode]>,
expected_typecodes: &[TypeCode],
nset: &Arc<Nameset>,
) -> Result<Formula, Diagnostic> {
struct StackElement {
Expand All @@ -1091,7 +1091,11 @@ impl Grammar {
let mut ix;
let mut e = StackElement {
node_id: self.root,
expected_typecodes,
expected_typecodes: expected_typecodes
.iter()
.copied()
.collect::<Vec<TypeCode>>()
.into_boxed_slice(),
};
let mut stack = vec![];
loop {
Expand Down Expand Up @@ -1234,7 +1238,7 @@ impl Grammar {
.math_iter()
.skip(1)
.map(|token| names.lookup_symbol(token.slice).unwrap().atom);
let formula = self.parse_formula(&mut symbol_iter, Box::new([expected_typecode]), nset)?;
let formula = self.parse_formula(&mut symbol_iter, &[expected_typecode], nset)?;
Ok(Some(formula))
}

Expand Down
6 changes: 1 addition & 5 deletions src/grammar_tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -84,11 +84,7 @@ fn test_parse_formula() {
let close_parens = names.lookup_symbol(b")").unwrap().atom;
let fmla_vec = vec![a, eq, open_parens, b, plus, a, close_parens];
let formula = grammar
.parse_formula(
&mut fmla_vec.clone().into_iter(),
Box::new([wff, class]),
&names,
)
.parse_formula(&mut fmla_vec.clone().into_iter(), &[wff, class], &names)
.unwrap();
assert!(as_str(names.atom_name(formula.get_by_path(&[]).unwrap())) == "weq");
assert!(as_str(names.atom_name(formula.get_by_path(&[1]).unwrap())) == "cA");
Expand Down

0 comments on commit 82a27ca

Please sign in to comment.