Changeset 3790
- Timestamp:
- 09/15/03 05:00:42 (20 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/j/src/org/armedbear/lisp/subtypep.lisp
r3762 r3790 2 2 ;;; 3 3 ;;; Copyright (C) 2003 Peter Graves 4 ;;; $Id: subtypep.lisp,v 1. 7 2003-09-14 16:03:26piso Exp $4 ;;; $Id: subtypep.lisp,v 1.8 2003-09-15 05:00:42 piso Exp $ 5 5 ;;; 6 6 ;;; This program is free software; you can redistribute it and/or … … 24 24 (defparameter *known-types* (make-hash-table)) 25 25 26 (dolist (i '((BASE-STRING SIMPLE-STRING) 26 (dolist (i '((ARRAY) 27 (BASE-STRING SIMPLE-STRING) 27 28 (BIGNUM INTEGER) 28 29 (BIT INTEGER) … … 30 31 (BOOLEAN SYMBOL) 31 32 (BUILT-IN-CLASS STANDARD-CLASS) 32 (CHARACTER ATOM)33 (CHARACTER) 33 34 (CLASS STANDARD-OBJECT) 35 (COMPILED-FUNCTION FUNCTION) 34 36 (COMPLEX NUMBER) 37 (CONDITION) 35 38 (CONS LIST) 36 39 (EXTENDED-CHAR CHARACTER NIL) 37 40 (FIXNUM INTEGER) 38 41 (FLOAT REAL) 42 (FUNCTION) 43 (GENERIC-FUNCTION FUNCTION) 39 44 (HASH-TABLE) 40 45 (INTEGER RATIONAL) … … 42 47 (LIST SEQUENCE) 43 48 (NULL SYMBOL LIST) 44 (NUMBER ATOM) 49 (NUMBER) 50 (PACKAGE) 45 51 (PACKAGE-ERROR ERROR) 52 (PATHNAME) 46 53 (PROGRAM-ERROR ERROR) 54 (RANDOM-STATE) 47 55 (RATIO RATIONAL) 48 56 (RATIONAL REAL) 57 (READTABLE) 49 58 (REAL NUMBER) 59 (RESTART) 50 60 (SERIOUS-CONDITION CONDITION) 51 61 (SIMPLE-ARRAY ARRAY) … … 56 66 (STANDARD-CHAR CHARACTER) 57 67 (STANDARD-CLASS CLASS) 58 (STANDARD-OBJECT ATOM) 68 (STANDARD-GENERIC-FUNCTION GENERIC-FUNCTION) 69 (STANDARD-OBJECT) 70 (STREAM) 59 71 (STRING VECTOR) 60 (SYMBOL ATOM) 72 (STRUCTURE-CLASS CLASS STANDARD-OBJECT) 73 (SYMBOL) 61 74 (TWO-WAY-STREAM STREAM) 62 75 (TYPE-ERROR ERROR) … … 69 82 70 83 (defun known-type-p (type) 71 (if (values (gethash type *known-types*)) t nil)) 84 (multiple-value-bind (value present-p) (gethash type *known-types*) 85 present-p)) 72 86 73 87 (defun normalize-type (type) … … 166 180 (i1 (cdr type1)) 167 181 (i2 (cdr type2))) 182 (when (eq t2 'atom) 183 (return-from subtypep (cond ((memq t1 '(cons list)) (values nil t)) 184 ((known-type-p t1) (values t t)) 185 (t (values nil nil))))) 168 186 (unless (or i1 i2) 169 187 (return-from subtypep (values (simple-subtypep t1 t2) t))) 170 (cond ((eq t2 'atom) 171 (cond ((member t1 '(cons list)) (values nil t)) 172 ((known-type-p t1) (values t t)) 173 (t (values nil nil)))) 174 ((eq t2 'sequence) 188 (cond ((eq t2 'sequence) 175 189 (values (simple-subtypep t2 t2) t)) 176 190 ((eq t2 'simple-string)
Note: See TracChangeset
for help on using the changeset viewer.