>From aa4292255ac95c6867e041c7e3ecf51db0d01805 Mon Sep 17 00:00:00 2001 From: Peter Bex Date: Sun, 4 Mar 2012 17:51:47 +0100 Subject: [PATCH 2/2] Also convert ##sys#make-structure to use and-let* like the vector-ref and list-ref result type special cases --- scrutinizer.scm | 22 +++++++++++----------- 1 files changed, 11 insertions(+), 11 deletions(-) diff --git a/scrutinizer.scm b/scrutinizer.scm index e9f3414..0fddd2a 100755 --- a/scrutinizer.scm +++ b/scrutinizer.scm @@ -2142,17 +2142,17 @@ (define-special-case ##sys#make-structure (lambda (node args rtypes) - (or (let ((subs (node-subexpressions node))) - (and (>= (length subs) 2) - (let ((arg1 (second subs))) - (and (eq? 'quote (node-class arg1)) - (let ((val (first (node-parameters arg1)))) - (and (symbol? val) - ;;XXX a dirty hack - we should remove the distinct - ;; "pointer-vector" type. - (if (eq? 'pointer-vector val) - '(pointer-vector) - `((struct ,val))))))))) + (or (and-let* ((subs (node-subexpressions node)) + ((>= (length subs) 2)) + (arg1 (second subs)) + ((eq? 'quote (node-class arg1))) + (val (first (node-parameters arg1))) + ((symbol? val))) + ;;XXX a dirty hack - we should remove the distinct + ;; "pointer-vector" type. + (if (eq? 'pointer-vector val) + '(pointer-vector) + `((struct ,val)))) rtypes))) (let () -- 1.7.9.1