chiark / gitweb /
doc/concepts.tex: Typeset method rĂ´le names as identifiers.
[sod] / src / c-types-class-impl.lisp
index 36e9c504963ed7f6ca39bfddab9169d9c8afd1a8..2908d754a5b2f48c687640203460d3b336bba94f 100644 (file)
@@ -7,7 +7,7 @@
 
 ;;;----- Licensing notice ---------------------------------------------------
 ;;;
-;;; This file is part of the Sensble Object Design, an object system for C.
+;;; This file is part of the Sensible Object Design, an object system for C.
 ;;;
 ;;; SOD is free software; you can redistribute it and/or modify
 ;;; it under the terms of the GNU General Public License as published by
@@ -30,8 +30,8 @@ (cl:in-package #:sod)
 
 (export '(c-class-type c-type-class))
 (defclass c-class-type (simple-c-type)
-  ((class :initarg :class :initform nil
-         :type (or null sod-class) :accessor c-type-class)
+  ((%class :initarg :class :initform nil
+          :type (or null sod-class) :accessor c-type-class)
    (tag :initarg :tag))
   (:documentation
    "A SOD class, as a C type.
@@ -68,7 +68,7 @@ (defun find-class-type (name)
   (atypecase (gethash name *module-type-map*)
     (null nil)
     (c-class-type it)
-    (t (error "Type `~A' (~A) is not a class" name it))))
+    (t (error "Type `~A' is not a class" name))))
 
 (export 'make-class-type)
 (defun make-class-type (name &optional qualifiers)
@@ -128,9 +128,13 @@ (define-c-type-syntax class (name &rest quals)
 (export 'find-sod-class)
 (defun find-sod-class (name)
   "Return the `sod-class' object with the given NAME."
-  (aif (find-class-type name)
-       (or (c-type-class it) (error "Class `~A' is incomplete" name))
-       (error "Type `~A' not known" name)))
+  (acond ((find-class-type name)
+         (or (c-type-class it)
+             (error "Class `~A' is incomplete" name)))
+        ((find-simple-c-type name)
+         (error "Type `~A' is not a class" name))
+        (t
+         (error "Type `~A' not known" name))))
 
 (export 'record-sod-class)
 (defun record-sod-class (class)