diff options
Diffstat (limited to 'Lisp')
-rw-r--r-- | Lisp/compiler-macros.lisp | 6 | ||||
-rw-r--r-- | Lisp/conditions.lisp | 29 |
2 files changed, 23 insertions, 12 deletions
diff --git a/Lisp/compiler-macros.lisp b/Lisp/compiler-macros.lisp index ba29c2d..2661687 100644 --- a/Lisp/compiler-macros.lisp +++ b/Lisp/compiler-macros.lisp @@ -15,7 +15,7 @@ (serious-condition () (warn (make-condition - 'style-warning + 'simple-style-warning :format-control "~S designates an unknown ~ method selector." @@ -38,7 +38,7 @@ (selector ,method-name) (serious-condition () (warn - (make-condition 'style-warning + (make-condition 'simple-style-warning :format-control "~S designates an unknown ~ method selector." @@ -60,7 +60,7 @@ (selector ',method-name) (serious-condition () (warn - (make-condition 'style-warning + (make-condition 'simple-style-warning :format-control "~S designates an unknown ~ method selector." diff --git a/Lisp/conditions.lisp b/Lisp/conditions.lisp index 839838e..86897ba 100644 --- a/Lisp/conditions.lisp +++ b/Lisp/conditions.lisp @@ -1,14 +1,26 @@ (in-package #:mulk.objective-cl) +(define-condition simple-style-warning (style-warning) + ((format-control :initarg :format-control + :reader format-control) + (format-arguments :initarg :format-arguments + :reader format-arguments)) + (:report (lambda (condition stream) + (apply #'format + stream + (format-control condition) + (format-arguments condition))))) + + (define-condition no-such-selector (error) ((designator :initarg :designator :reader rejected-selector-designator)) (:report (lambda (condition stream) - (with-slots (designator) condition - (format stream - "~S does not designate a known selector." - designator))))) + ;; The CLHS forbids the use of WITH-SLOTS for conditions. + (format stream + "~S does not designate a known selector." + (rejected-selector-designator condition))))) (define-condition message-not-understood (error) @@ -17,9 +29,8 @@ (class :initarg :class :reader rejecting-class)) (:report (lambda (condition stream) - (with-slots (selector class) condition - (format stream - "The Objective-C class ~S does not understand the ~ + (format stream + "The Objective-C class ~S does not understand the ~ message ~S." - class - selector))))) + (rejecting-class condition) + (rejected-selector condition))))) |