mirror of
https://gitlab.com/embeddable-common-lisp/ecl.git
synced 2026-01-15 05:43:19 -08:00
Undo the previous change to SUBTYPEP and eliminate recursive types from proclamations.lsp
This commit is contained in:
parent
2f9e993603
commit
3f0cda1ee3
2 changed files with 7 additions and 1 deletions
|
|
@ -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))
|
||||
|
|
|
|||
|
|
@ -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))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue