~ chicken-core (chicken-5) 806b378fd834154e042254d5cd2e4d29d005cc6a


commit 806b378fd834154e042254d5cd2e4d29d005cc6a
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Sat Jan 29 13:03:22 2011 +0100
Commit:     felix <felix@call-with-current-continuation.org>
CommitDate: Sat Jan 29 13:03:22 2011 +0100

    handle #(N ...) in specialization templates

diff --git a/scrutinizer.scm b/scrutinizer.scm
index 71613ad4..1303f126 100755
--- a/scrutinizer.scm
+++ b/scrutinizer.scm
@@ -67,7 +67,7 @@
 ;
 ;   SPECIALIZATION = ((MVAL ... [#!rest MVAL]) TEMPLATE)
 ;   MVAL = VAL | (not VAL) | (or VAL ...)
-;   TEMPLATE = #(INDEX)
+;   TEMPLATE = #(INDEX [...])
 ;            | INTEGER | SYMBOL | STRING
 ;            | (quote CONSTANT)
 ;            | (TEMPLATE . TEMPLATE)
@@ -721,6 +721,11 @@
 		  (= 1 (vector-length x)) 
 		  (integer? (vector-ref x 0)))
 	     (list-ref args (sub1 (vector-ref x 0))))
+	    ((and (vector? x)
+		  (= 2 (vector-length x))
+		  (integer? (vector-ref x 0))
+		  (eq? '... (vector-ref x 1)))
+	     (list-tail args (sub1 (vector-ref x 0))))
 	    ((not (pair? x)) x)
 	    ((eq? 'quote (car x)) x)	; to handle numeric constants
 	    (else (cons (subst (car x)) (subst (cdr x))))))
Trap