The attached patch fixes a problem of type-declarations like (: foo (number --> (number -> number)))
Validation of the type in the scrutinizer will ignore "foo" being declared "pure" (the nested procedure-type causes an overwrite of the variable that holds the "purity" status). This patch fixes #883. cheers, felix
>From abd5c53bb4700ce7e08e129d1890cf9939475dee Mon Sep 17 00:00:00 2001 From: felix <[email protected]> Date: Sun, 15 Jul 2012 23:19:58 +0200 Subject: [PATCH] retain whether procedure-type is pure when using nested procedure types in type-declarations --- scrutinizer.scm | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/scrutinizer.scm b/scrutinizer.scm index 8c2788e..37eefbc 100755 --- a/scrutinizer.scm +++ b/scrutinizer.scm @@ -1996,7 +1996,7 @@ (lambda (p) (let* ((cleanf (eq? '--> (car p))) (ok (or (not rec) (not cleanf)))) - (set! clean cleanf) + (unless rec (set! clean cleanf)) (let ((cp (memq ': (cdr p)))) (cond ((not cp) (and ok -- 1.7.0.4
_______________________________________________ Chicken-hackers mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/chicken-hackers
