summaryrefslogtreecommitdiff
path: root/src/nibble/cst.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/nibble/cst.rs')
-rw-r--r--src/nibble/cst.rs14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/nibble/cst.rs b/src/nibble/cst.rs
index f6fa51b..2fcc99f 100644
--- a/src/nibble/cst.rs
+++ b/src/nibble/cst.rs
@@ -9,7 +9,7 @@ use syn::{
LitStr, Token,
};
-use crate::chomp::{Name, ast};
+use crate::chomp::{ast, Name};
use super::convert::{Context, Convert, ConvertError};
@@ -332,15 +332,19 @@ impl File {
let mut map = Vec::new();
for stmt in self.lets {
let span = stmt.span();
- let params = stmt.args.into_iter().flat_map(|args| args.into_iter());
+ let name: Name = stmt.name.into();
+ let params = stmt
+ .args
+ .into_iter()
+ .flat_map(|args| args.into_iter())
+ .map(Name::from);
let mut context = Context::new(&names, params.clone());
- names.push(stmt.name.clone());
let mut expr = stmt.expr.convert(&mut context)?;
- let name: Name = stmt.name.into();
+ names.push(name.clone());
expr.name = Some(name.clone());
map.push(ast::Function {
name,
- params: params.map(|name| Some(name.into())).collect(),
+ params: params.map(Some).collect(),
expr,
span,
});