diff --git a/src/core/t-vector.c b/src/core/t-vector.c index 8a867570a6..95f317d74b 100644 --- a/src/core/t-vector.c +++ b/src/core/t-vector.c @@ -586,6 +586,9 @@ void Set_Vector_Row(REBSER *ser, REBVAL *blk) /* ***********************************************************************/ { + if (mode == 3) + return VAL_SERIES(a) == VAL_SERIES(b) && VAL_INDEX(a) == VAL_INDEX(b); + REBINT n = Compare_Vector(a, b); // needs to be expanded for equality if (mode >= 0) { return n == 0; diff --git a/src/tests/units/vector-test.r3 b/src/tests/units/vector-test.r3 index 8ab9181c6f..36e685b98a 100644 --- a/src/tests/units/vector-test.r3 +++ b/src/tests/units/vector-test.r3 @@ -359,6 +359,18 @@ Rebol [ ===start-group=== "VECTOR copy" +--test-- "COPY" + ;@@ https://github.com/rebol/rebol-issues/issues/2400 + v1: #[ui16! [1 2]] + v2: v1 + v3: copy v2 + --assert same? v1 v2 + --assert not same? v1 v3 + v2/1: 3 + --assert v1/1 = 3 + --assert v3/1 = 1 + + --test-- "COPY/PART" ;@@ https://github.com/rebol/rebol-issues/issues/2399 v: #[ui16! [1 2 3 4]]