]> gitweb.factorcode.org Git - factor.git/commitdiff
Fix check-slice
authorSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Fri, 13 Mar 2009 01:37:26 +0000 (20:37 -0500)
committerSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Fri, 13 Mar 2009 01:37:26 +0000 (20:37 -0500)
core/sequences/sequences-tests.factor
core/sequences/sequences.factor

index dbbf49ef36f022ed2381651efb6fdeee590b0bc6..da495f410fb62ae0a23adf304553a330b1e472dc 100644 (file)
@@ -13,6 +13,10 @@ IN: sequences.tests
 [ V{ 4 5 } ] [ { 1 2 3 4 5 } 2 tail-slice* >vector ] unit-test
 [ V{ 3 4 } ] [ 2 4 1 10 dup <slice> subseq >vector ] unit-test
 [ V{ 3 4 } ] [ 0 2 2 4 1 10 dup <slice> <slice> subseq >vector ] unit-test
+[ 0 10 "hello" <slice> ] must-fail
+[ -10 3 "hello" <slice> ] must-fail
+[ 2 1 "hello" <slice> ] must-fail
+
 [ "cba" ] [ "abcdef" 3 head-slice reverse ] unit-test
 
 [ 5040 ] [ [ 1 2 3 4 5 6 7 ] 1 [ * ] reduce ] unit-test
index c5ff787768b4dd97913b9104b29139d55b9c592b..144b417f04b9a8d209ade4eb52c8b3d47adfeb0c 100755 (executable)
@@ -221,8 +221,9 @@ TUPLE: slice-error from to seq reason ;
 : check-slice ( from to seq -- from to seq )
     3dup
     [ 2drop 0 < "start < 0" slice-error ]
-    [ nip length > "end > sequence" slice-error ]
-    [ drop > "start > end" slice-error ] 3tri ; inline
+    [ [ drop ] 2dip length > "end > sequence" slice-error ]
+    [ drop > "start > end" slice-error ]
+    3tri ; inline
 
 : <slice> ( from to seq -- slice )
     dup slice? [ collapse-slice ] when