From 84c6c8b0e6b17996a603ec88b7490107154f38f3 Mon Sep 17 00:00:00 2001 From: Laurenz Date: Mon, 23 Jan 2023 15:02:09 +0100 Subject: [PATCH] Fix closure parameter capturing --- src/model/func.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/model/func.rs b/src/model/func.rs index 98dc527c5..73b7f1c79 100644 --- a/src/model/func.rs +++ b/src/model/func.rs @@ -401,6 +401,7 @@ impl<'a> CapturesVisitor<'a> { } } + self.internal.enter(); if let Some(name) = expr.name() { self.bind(name); } @@ -414,6 +415,7 @@ impl<'a> CapturesVisitor<'a> { } self.visit(expr.body().as_untyped()); + self.internal.exit(); } // A let expression contains a binding, but that binding is only @@ -513,6 +515,7 @@ mod tests { test("{(x: y, z) => x + z}", &["y"]); test("{(..x) => x + y}", &["y"]); test("{(x, y: x + z) => x + y}", &["x", "z"]); + test("{x => x; x}", &["x"]); // Show rule. test("#show y: x => x", &["y"]);