diff --git a/argus-parser/src/lib.rs b/argus-parser/src/lib.rs index a25f84e..2121680 100644 --- a/argus-parser/src/lib.rs +++ b/argus-parser/src/lib.rs @@ -13,7 +13,7 @@ pub use parser::{parser, Expr, Interval}; pub fn parse_str(src: &str) -> Result>> { use chumsky::prelude::{Input, Parser}; - let (tokens, lex_errors) = lexer().parse(src.clone()).into_output_errors(); + let (tokens, lex_errors) = lexer().parse(src).into_output_errors(); let (parsed, parse_errors) = if let Some(tokens) = &tokens { parser() diff --git a/argus-parser/src/parser.rs b/argus-parser/src/parser.rs index 3d15d9f..cbce9a8 100644 --- a/argus-parser/src/parser.rs +++ b/argus-parser/src/parser.rs @@ -292,8 +292,8 @@ pub fn parser<'tokens, 'src: 'tokens>( } .labelled("boolean literal"); - let var = select! { Token::Ident(ident) => Expr::Var{ name: ident.clone(), kind: Type::default()} } - .labelled("variable"); + let var = + select! { Token::Ident(ident) => Expr::Var{ name: ident, kind: Type::default()} }.labelled("variable"); // Relational ops (<, <=, >, >=, ==, !=) have equal precedence let relational_op = {