diff --git a/src/core/c-frame.c b/src/core/c-frame.c index f91de8a4ae..abd2cdf597 100644 --- a/src/core/c-frame.c +++ b/src/core/c-frame.c @@ -838,7 +838,7 @@ } } } - else if (ANY_BLOCK(value) && (mode & BIND_DEEP)) + else if ((ANY_BLOCK(value) || IS_MAP(value)) && (mode & BIND_DEEP)) Bind_Block_Words(frame, VAL_BLK_DATA(value), mode); else if ((IS_FUNCTION(value) || IS_CLOSURE(value)) && (mode & BIND_FUNC)) Bind_Block_Words(frame, BLK_HEAD(VAL_FUNC_BODY(value)), mode); diff --git a/src/tests/units/map-test.r3 b/src/tests/units/map-test.r3 index 7a9c707fe6..1eae9a629c 100644 --- a/src/tests/units/map-test.r3 +++ b/src/tests/units/map-test.r3 @@ -28,6 +28,14 @@ Rebol [ --assert 2 = m/b --assert empty? #[] + --test-- "word binding inside maps" + ;@@ https://github.com/Oldes/Rebol-issues/issues/2593 + a: 1 + m1: make map! [k a] + m2: #[k a] + --assert 1 = try [get m1/k] + --assert 1 = try [get m2/k] + --test-- "case sensitivity" ;@@ https://github.com/Oldes/Rebol-issues/issues/1153 m: #[