From 3f0cda1ee3de54b80cf9f9072e879f2df047a8c4 Mon Sep 17 00:00:00 2001 From: Juan Jose Garcia Ripoll Date: Wed, 28 Apr 2010 23:43:08 +0200 Subject: [PATCH] Undo the previous change to SUBTYPEP and eliminate recursive types from proclamations.lsp --- src/cmp/proclamations.lsp | 6 ++++++ src/lsp/predlib.lsp | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/cmp/proclamations.lsp b/src/cmp/proclamations.lsp index a96ebbe1a..2ded6539a 100644 --- a/src/cmp/proclamations.lsp +++ b/src/cmp/proclamations.lsp @@ -79,6 +79,8 @@ (deftype array-rank-index () '(integer 0 #.(1- array-rank-limit))) (deftype association-list () + 'list + #+(or) '(or null (cons cons association-list))) (deftype byte-specifier () "The type of the output of BYTE." @@ -133,8 +135,12 @@ (deftype pathname-version () '(or unsigned-byte (member nil :wild :newest :unspecific))) (deftype proper-list () + 'list + #+(or) '(or null (cons t proper-list))) (deftype property-list () + 'list + #+(or) '(or null (cons t (cons t property-list)))) (deftype radix () '(integer 2 36)) diff --git a/src/lsp/predlib.lsp b/src/lsp/predlib.lsp index 33eb49457..f30b6c081 100644 --- a/src/lsp/predlib.lsp +++ b/src/lsp/predlib.lsp @@ -1093,8 +1093,8 @@ if not possible." ;; The problem with the code below is that it does not suport infinite ;; recursion. Instead we just canonicalize everything to CONS, irrespective ;; of whether the arguments are valid types or not! - (canonical-type 'CONS) #+(or) + (canonical-type 'CONS) (let ((car-tag (if (eq car-type '*) -1 (canonical-type car-type))) (cdr-tag (if (eq cdr-type '*) -1 (canonical-type cdr-type)))) (cond ((or (zerop car-tag) (zerop cdr-tag))