From 24ff5f311f6c797681be1cff0fb2d0b75c0f848f Mon Sep 17 00:00:00 2001 From: Greg Brown Date: Thu, 14 Jan 2021 14:37:27 +0000 Subject: Finish AutoChomp --- src/nibble/cst.rs | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'src/nibble/cst.rs') 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, }); -- cgit v1.2.3