predlib.lsp: fix type comparisons involving gray streams

Due to gray:fundamental-stream being treated as a built-in type,
subclass relationships were not checked (see added test case).
Fixes #614.
This commit is contained in:
Marius Gerbershagen 2020-11-06 20:35:22 +01:00
parent cdb602e40d
commit 1effa6a160
2 changed files with 4 additions and 1 deletions

View file

@ -1351,7 +1351,6 @@ if not possible."
(EXT:ANSI-STREAM (OR BROADCAST-STREAM CONCATENATED-STREAM ECHO-STREAM (EXT:ANSI-STREAM (OR BROADCAST-STREAM CONCATENATED-STREAM ECHO-STREAM
FILE-STREAM STRING-STREAM SYNONYM-STREAM TWO-WAY-STREAM FILE-STREAM STRING-STREAM SYNONYM-STREAM TWO-WAY-STREAM
EXT:SEQUENCE-STREAM)) EXT:SEQUENCE-STREAM))
#+clos-streams (GRAY:FUNDAMENTAL-STREAM)
(STREAM (OR EXT:ANSI-STREAM (STREAM (OR EXT:ANSI-STREAM
#+clos-streams GRAY:FUNDAMENTAL-STREAM)) #+clos-streams GRAY:FUNDAMENTAL-STREAM))
(EXT:VIRTUAL-STREAM (OR STRING-STREAM #+clos-streams GRAY:FUNDAMENTAL-STREAM)) (EXT:VIRTUAL-STREAM (OR STRING-STREAM #+clos-streams GRAY:FUNDAMENTAL-STREAM))

View file

@ -76,9 +76,13 @@
;;; ;;;
;;; There is a problem with SUBTYPEP and type STREAM ;;; There is a problem with SUBTYPEP and type STREAM
;;; ;;;
(defclass gray-stream-test (gray:fundamental-character-output-stream) ())
(test cmp.0005.subtypep-stream (test cmp.0005.subtypep-stream
(is (equal (multiple-value-list (is (equal (multiple-value-list
(subtypep (find-class 'gray:fundamental-stream) 'stream)) (subtypep (find-class 'gray:fundamental-stream) 'stream))
(list t t)))
(is (equal (multiple-value-list
(subtypep (find-class 'gray-stream-test) 'stream))
(list t t)))) (list t t))))
;;; Date: 09/07/2006 (Tim S) ;;; Date: 09/07/2006 (Tim S)