summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBradley Lucier <lucier@math.purdue.edu>2024-02-15 14:01:28 -0500
committerBradley Lucier <lucier@math.purdue.edu>2024-02-15 14:01:28 -0500
commit0e034f100104d981eca1e88049ba753f83d284cc (patch)
tree61f21af6d374e5f73e4e3d50321e1cb182bc7783
parent72d24f7478dcd3a6481831831d29f20f43973794 (diff)
Mimic https://github.com/gambit/gambit/commit/e25a37038106d87416419130f41654f42742651f to fix mismatched vector arg lengths
-rw-r--r--lib/gambit/vector/vector.scm8
-rw-r--r--tests/unit-tests/07-vector/vector_any.scm5
-rw-r--r--tests/unit-tests/07-vector/vector_every.scm5
-rw-r--r--tests/unit-tests/07-vector/vector_fold.scm3
-rw-r--r--tests/unit-tests/07-vector/vector_fold_right.scm3
5 files changed, 18 insertions, 6 deletions
diff --git a/lib/gambit/vector/vector.scm b/lib/gambit/vector/vector.scm
index 6c9e9180..695c104c 100644
--- a/lib/gambit/vector/vector.scm
+++ b/lib/gambit/vector/vector.scm
@@ -298,8 +298,8 @@
(if (fx> len-arg max-len)
(loop (cdr lst)
(cons arg rev-x-y)
+ min-len
len-arg
- max-len
arg-num
(fx+ arg-num 1))
(loop (cdr lst)
@@ -400,8 +400,8 @@
(if (fx> len-arg max-len)
(loop (cdr lst)
(cons arg rev-x-y)
+ min-len
len-arg
- max-len
arg-num
(fx+ arg-num 1))
(loop (cdr lst)
@@ -497,8 +497,8 @@
(if (fx> len-arg max-len)
(loop (cdr lst)
(cons arg rev-x-y)
+ min-len
len-arg
- max-len
arg-num
(fx+ arg-num 1))
(loop (cdr lst)
@@ -595,8 +595,8 @@
(if (fx> len-arg max-len)
(loop (cdr lst)
(cons arg rev-x-y)
+ min-len
len-arg
- max-len
arg-num
(fx+ arg-num 1))
(loop (cdr lst)
diff --git a/tests/unit-tests/07-vector/vector_any.scm b/tests/unit-tests/07-vector/vector_any.scm
index cde00d93..57e49e4d 100644
--- a/tests/unit-tests/07-vector/vector_any.scm
+++ b/tests/unit-tests/07-vector/vector_any.scm
@@ -8,7 +8,7 @@
(define vect3 '#(11 22 33))
(define (inc x) (+ x 1))
-(define (add x y) (+ x y))
+(define add +)
(check-equal? (vector-any + vect0 vect2) #f)
(check-equal? (vector-any + vect1 vect2) 22)
@@ -21,3 +21,6 @@
(check-tail-exn wrong-number-of-arguments-exception? (lambda () (vector-any)))
(check-tail-exn wrong-number-of-arguments-exception? (lambda () (vector-any inc)))
+
+(set! ##allow-length-mismatch? #f)
+(check-tail-exn length-mismatch-exception? (lambda () (vector-any add '#(1) '#(1 2) '#(1))))
diff --git a/tests/unit-tests/07-vector/vector_every.scm b/tests/unit-tests/07-vector/vector_every.scm
index 315db002..2bfb1f51 100644
--- a/tests/unit-tests/07-vector/vector_every.scm
+++ b/tests/unit-tests/07-vector/vector_every.scm
@@ -8,7 +8,7 @@
(define vect3 '#(11 22 33))
(define (inc x) (+ x 1))
-(define (add x y) (+ x y))
+(define add +)
(check-equal? (vector-every + vect0 vect2) #t)
(check-equal? (vector-every + vect1 vect2) 22)
@@ -21,3 +21,6 @@
(check-tail-exn wrong-number-of-arguments-exception? (lambda () (vector-every)))
(check-tail-exn wrong-number-of-arguments-exception? (lambda () (vector-every inc)))
+
+(set! ##allow-length-mismatch? #f)
+(check-tail-exn length-mismatch-exception? (lambda () (vector-every add '#(1) '#(1 2) '#(1))))
diff --git a/tests/unit-tests/07-vector/vector_fold.scm b/tests/unit-tests/07-vector/vector_fold.scm
index b4b99756..0c0a5670 100644
--- a/tests/unit-tests/07-vector/vector_fold.scm
+++ b/tests/unit-tests/07-vector/vector_fold.scm
@@ -24,3 +24,6 @@
(check-tail-exn wrong-number-of-arguments-exception? (lambda () (vector-fold)))
(check-tail-exn wrong-number-of-arguments-exception? (lambda () (vector-fold xcons)))
(check-tail-exn wrong-number-of-arguments-exception? (lambda () (vector-fold xcons 0)))
+
+(set! ##allow-length-mismatch? #f)
+(check-tail-exn length-mismatch-exception? (lambda () (vector-fold + 0 '#(1) '#(1 2) '#(1))))
diff --git a/tests/unit-tests/07-vector/vector_fold_right.scm b/tests/unit-tests/07-vector/vector_fold_right.scm
index 593bd9cb..bc415331 100644
--- a/tests/unit-tests/07-vector/vector_fold_right.scm
+++ b/tests/unit-tests/07-vector/vector_fold_right.scm
@@ -12,3 +12,6 @@
(check-tail-exn wrong-number-of-arguments-exception? (lambda () (vector-fold-right)))
(check-tail-exn wrong-number-of-arguments-exception? (lambda () (vector-fold-right xcons)))
(check-tail-exn wrong-number-of-arguments-exception? (lambda () (vector-fold-right xcons 0)))
+
+(set! ##allow-length-mismatch? #f)
+(check-tail-exn length-mismatch-exception? (lambda () (vector-fold-right + 0 '#(1) '#(1 2) '#(1))))