blob: de65b2b47278ed8cf92426544376a68833607e80 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
;;;; Objective-CL, an Objective-C bridge for Common Lisp.
;;;; Copyright (C) 2007 Matthias Andreas Benkard.
;;;;
;;;; This program is free software: you can redistribute it and/or
;;;; modify it under the terms of the GNU General Public License as
;;;; published by the Free Software Foundation, either version 3 of the
;;;; License, or (at your option) any later version.
;;;;
;;;; This program is distributed in the hope that it will be useful, but
;;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
;;;; General Public License for more details.
;;;;
;;;; You should have received a copy of the GNU General Public License
;;;; along with this program. If not, see
;;;; <http://www.gnu.org/licenses/>.
(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)
;; The CLHS forbids the use of WITH-SLOTS for conditions.
(format stream
"~S does not designate a known selector."
(rejected-selector-designator condition))))
(:documentation "Someone tried to dereference an invalid method selector.
## Description:
A **condition** of **type** __no-such-selector__ is **signal**led when
an attempt is made to retrieve a method selector by name, and that
selector cannot be found. This is most often the case when a typo is
made in the message name part of a method invocation.
Note that this error will, at present, never be signalled on Mac OS X,
because __find-selector__ automatically interns selectors on that
system. This behaviour is subject to change."))
(define-condition message-not-understood (error)
((selector :initarg :selector
:reader rejected-selector)
(class :initarg :class
:reader rejecting-class))
(:report (lambda (condition stream)
(format stream
"The Objective-C class ~S does not understand the ~
message ~S."
(rejecting-class condition)
(rejected-selector condition))))
(:documentation "The runtime is unable to retrieve the signature of a method.
## Description:
A **condition** of **type** __message-not-understood__ is **signal**led
when an attempt is made to call a method on an object that knows nothing
of it and can therefore not provide signature information for the
method. This is most often the case when an object is used at a place
that expects an object of a different Objective-C type (that is, it can
be regarded as a kind of type error), although it can also happen when a
typo is made in the message name part of a method invocation and a
__no-such-selector__ error is not **signal**led (on Mac OS X, for
example)."))
|