Skip to content

Commit 0020ec8

Browse files
committed
FIX: Make case [true []] return unset!
fixes: Oldes/Rebol-issues#2246
1 parent 212d5fb commit 0020ec8

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

src/core/n-control.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -394,7 +394,7 @@ enum {
394394
ds = DS_POP; // volatile stack reference
395395
if (IS_BLOCK(ds)) {
396396
ds = DO_BLK(ds);
397-
if (IS_UNSET(ds) && !all_flag) return R_TRUE;
397+
if (IS_UNSET(ds) && !all_flag) return R_UNSET;
398398
}
399399
if (THROWN(ds) || !all_flag || index >= SERIES_TAIL(block))
400400
return R_TOS1;

src/tests/units/evaluation-test.r3

+8
Original file line numberDiff line numberDiff line change
@@ -346,6 +346,14 @@ Rebol [
346346
]
347347
test-unset
348348

349+
--test-- "unset? if true []"
350+
--assert unset? if true []
351+
--test-- "unset? case [true []]"
352+
;@@ https://github.com/Oldes/Rebol-issues/issues/2246
353+
--assert unset? case [true []]
354+
--assert unset? case/all [true [1] true []]
355+
356+
349357
===end-group===
350358

351359
===start-group=== "SET tests"

0 commit comments

Comments
 (0)