mirror of
https://gitlab.com/embeddable-common-lisp/ecl.git
synced 2026-04-25 10:50:30 -07:00
The routine VALUES-TYPE-PRIMARY-TYPE did not extract any value from VALUES types
This commit is contained in:
parent
2838b1042b
commit
4303ea8572
1 changed files with 12 additions and 5 deletions
|
|
@ -151,9 +151,13 @@
|
|||
(cmpwarn "Unsupported CONS type ~S. Replacing it with T." t2)
|
||||
t1)
|
||||
((null tag1)
|
||||
(setf c::*compiler-break-enable* t)
|
||||
(error "foo")
|
||||
(cmpwarn "Unknown type ~S. Assuming it is T." t1)
|
||||
t2)
|
||||
(t
|
||||
(setf c::*compiler-break-enable* t)
|
||||
(error "foo")
|
||||
(cmpwarn "Unknown type ~S. Assuming it is T." t2)
|
||||
t1))))
|
||||
|
||||
|
|
@ -161,11 +165,14 @@
|
|||
(when (and (consp type) (eq (first type) 'VALUES))
|
||||
(let ((subtype (second type)))
|
||||
(when (or (eq subtype '&optional) (eq subtype '&rest))
|
||||
(setf subtype type)
|
||||
(when (eq subtype '&optional)
|
||||
(cmperr "Syntax error in type expression ~S" type)))
|
||||
(when (eq subtype '&rest)
|
||||
(cmperr "Syntax error in type expression ~S" type))
|
||||
(setf type (cddr type))
|
||||
(when (or (null type)
|
||||
(eq (setf subtype (first type)) '&optional)
|
||||
(eq subtype '&rest))
|
||||
(cmperr "Syntax error in type expression ~S" type))
|
||||
;; An &optional or &rest output value might be missing
|
||||
;; If this is the case, the the value will be NIL.
|
||||
(setf subtype (type-or 'null subtype)))
|
||||
(setf type subtype)))
|
||||
type)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue