~ chicken-core (chicken-5) be77b972f9e691cb7ae1ea1dfbc9a8bda6d9c21e
commit be77b972f9e691cb7ae1ea1dfbc9a8bda6d9c21e Author: felix <felix@call-with-current-continuation.org> AuthorDate: Fri May 27 11:25:46 2011 +0200 Commit: felix <felix@call-with-current-continuation.org> CommitDate: Fri May 27 11:25:46 2011 +0200 respect enforcement and predicate status for emitted types diff --git a/support.scm b/support.scm index 0b26d606..af765114 100644 --- a/support.scm +++ b/support.scm @@ -749,8 +749,17 @@ (when (variable-visible? sym) (when (variable-mark sym '##compiler#declared-type) (let ((specs - (or (variable-mark sym '##compiler#specializations) '()))) - (pp (cons* sym (variable-mark sym '##compiler#type) specs)))))) + (or (variable-mark sym '##compiler#specializations) '())) + (type (variable-mark sym '##compiler#type))) + (pp (cons* + sym + (if (and (pair? type) (eq? 'procedure (car type)) + (variable-mark sym '##compiler#enforce)) + `(procedure! ,@(cdr type)) + type) + specs)) + (and-let* ((ptype (variable-mark sym '##compiler#predicate))) + (pp `(#%predicate ,sym ,ptype))))))) db) (print "; END OF FILE"))))Trap