diff options
| author | Laurenz <laurmaedje@gmail.com> | 2023-03-17 18:51:42 +0100 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2023-03-17 18:51:42 +0100 |
| commit | 9315e2f08ea20d021bf7a34c1aa9453499d063f7 (patch) | |
| tree | 7970f1bff307e530c606c6a042954d24b5579d5f /src/eval/mod.rs | |
| parent | 59903270dc5a21c65df8a4d88068662287918b4c (diff) | |
Make parameters traceable
Diffstat (limited to 'src/eval/mod.rs')
| -rw-r--r-- | src/eval/mod.rs | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/eval/mod.rs b/src/eval/mod.rs index a7f4b825..e6da6cba 100644 --- a/src/eval/mod.rs +++ b/src/eval/mod.rs @@ -1140,7 +1140,7 @@ impl Eval for ast::Closure { fn eval(&self, vm: &mut Vm) -> SourceResult<Self::Output> { // The closure's name is defined by its let binding if there's one. - let name = self.name().map(ast::Ident::take); + let name = self.name(); // Collect captured variables. let captured = { @@ -1156,16 +1156,16 @@ impl Eval for ast::Closure { for param in self.params() { match param { ast::Param::Pos(name) => { - params.push((name.take(), None)); + params.push((name, None)); } ast::Param::Named(named) => { - params.push((named.name().take(), Some(named.expr().eval(vm)?))); + params.push((named.name(), Some(named.expr().eval(vm)?))); } ast::Param::Sink(name) => { if sink.is_some() { bail!(name.span(), "only one argument sink is allowed"); } - sink = Some(name.take()); + sink = Some(name); } } } |
