aboutsummaryrefslogtreecommitdiffstats
path: root/src/parse
diff options
context:
space:
mode:
authorJonas Maier <jonas@x77.dev>2026-03-09 20:25:41 +0100
committerJonas Maier <jonas@x77.dev>2026-03-09 20:25:41 +0100
commit93e5286946b5ed3e6c27a4ef6f1b457a1f6bebc7 (patch)
tree8da79b5ee48db3219504c1514a5e7d6077ef8e07 /src/parse
parent13516f11b836e89808cf2ebb71f610f02188961c (diff)
downloadpish-93e5286946b5ed3e6c27a4ef6f1b457a1f6bebc7.tar.gz
another parse error
Diffstat (limited to 'src/parse')
-rw-r--r--src/parse/mod.rs1
-rw-r--r--src/parse/test.rs8
2 files changed, 9 insertions, 0 deletions
diff --git a/src/parse/mod.rs b/src/parse/mod.rs
index 9cd894e..d25767d 100644
--- a/src/parse/mod.rs
+++ b/src/parse/mod.rs
@@ -213,6 +213,7 @@ impl Parse for FunBody {
b.adv();
let body = Box::new(Ast::parse(b)?);
+ b.spaces();
if b.is_empty() {
if b.is_completion() {
Ok(Self { body })
diff --git a/src/parse/test.rs b/src/parse/test.rs
index 9e2d7a8..28cf4a2 100644
--- a/src/parse/test.rs
+++ b/src/parse/test.rs
@@ -78,3 +78,11 @@ fn tilde() {
pipes([cmd([estr(b"echo"), str([var(b"HOME")])])]),
);
}
+
+#[test]
+fn set_variable_in_fun() {
+ parse_test(
+ parse(b"fun setter { set x = 1 }"),
+ decl(estr(b"setter"), assign(estr(b"x"), estr(b"1"))),
+ );
+}