1.1.13: will be tagged as "sbcl-1.1.13"
[sbcl.git] / src / code / alien-type.lisp
index 86b7121..b0aeb65 100644 (file)
 (!begin-collecting-cold-init-forms)
 
 (defstruct (alien-type-type
-           (:include ctype
-                     (class-info (type-class-or-lose 'alien)))
-           (:constructor %make-alien-type-type (alien-type))
-           (:copier nil))
+            (:include ctype
+                      (class-info (type-class-or-lose 'alien)))
+            (:constructor %make-alien-type-type (alien-type))
+            (:copier nil))
   (alien-type nil :type alien-type))
 
 (!define-type-class alien)
 
+(!define-type-method (alien :negate) (type)
+  (make-negation-type :type type))
+
 (!define-type-method (alien :unparse) (type)
   `(alien ,(unparse-alien-type (alien-type-type-alien-type type))))
 
 (!define-type-method (alien :simple-subtypep) (type1 type2)
   (values (alien-subtype-p (alien-type-type-alien-type type1)
-                          (alien-type-type-alien-type type2))
-         t))
+                           (alien-type-type-alien-type type2))
+          t))
 
 ;;; KLUDGE: This !DEFINE-SUPERCLASSES gets executed much later than the
 ;;; others (toplevel form time instead of cold load init time) because
 
 (!define-type-method (alien :simple-=) (type1 type2)
   (let ((alien-type-1 (alien-type-type-alien-type type1))
-       (alien-type-2 (alien-type-type-alien-type type2)))
+        (alien-type-2 (alien-type-type-alien-type type2)))
     (values (or (eq alien-type-1 alien-type-2)
-               (alien-type-= alien-type-1 alien-type-2))
-           t)))
+                (alien-type-= alien-type-1 alien-type-2))
+            t)))
 
 (!def-type-translator alien (&optional (alien-type nil))
   (typecase alien-type
@@ -59,9 +62,9 @@
 (defun make-alien-type-type (&optional alien-type)
   (if alien-type
       (let ((lisp-rep-type (compute-lisp-rep-type alien-type)))
-       (if lisp-rep-type
-           (single-value-specifier-type lisp-rep-type)
-           (%make-alien-type-type alien-type)))
+        (if lisp-rep-type
+            (single-value-specifier-type lisp-rep-type)
+            (%make-alien-type-type alien-type)))
       *universal-type*))
 
 (!defun-from-collected-cold-init-forms !alien-type-cold-init)