Fix closure parameter capturing

This commit is contained in:
Laurenz 2023-01-23 15:02:09 +01:00
parent 2b8426b1b3
commit 84c6c8b0e6

View File

@ -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"]);