summaryrefslogtreecommitdiff
path: root/Lisp/compiler-macros.lisp
diff options
context:
space:
mode:
authorMatthias Benkard <code@mail.matthias.benkard.de>2007-10-10 13:48:50 +0200
committerMatthias Benkard <code@mail.matthias.benkard.de>2007-10-10 13:48:50 +0200
commitf71611e1995b2645a183a52e221fccfcca64d2e0 (patch)
treebb077189374c81a3ece36d37a221a5d75530bb99 /Lisp/compiler-macros.lisp
parent8c5db651a2d55a8692b0dd78e37d4c01c4794585 (diff)
Make compile-time selector warnings work on the NeXT runtime, clean the Objective-C layer up a bit.
darcs-hash:bff1454e2749c658ed0d0ad4eb51c4b1802e6f40
Diffstat (limited to 'Lisp/compiler-macros.lisp')
-rw-r--r--Lisp/compiler-macros.lisp12
1 files changed, 8 insertions, 4 deletions
diff --git a/Lisp/compiler-macros.lisp b/Lisp/compiler-macros.lisp
index 97aecb7..3ffba63 100644
--- a/Lisp/compiler-macros.lisp
+++ b/Lisp/compiler-macros.lisp
@@ -28,7 +28,7 @@
(eq 'load-time-value (car method-name)))))
`(primitive-invoke ,receiver
(load-time-value (handler-case
- (selector ,method-name)
+ (find-selector ,method-name t)
(serious-condition ()
(warn
(make-condition
@@ -52,7 +52,7 @@
`(invoke-by-name
,receiver
(load-time-value (handler-case
- (selector ,method-name)
+ (find-selector ,method-name t)
(serious-condition ()
(warn
(make-condition 'simple-style-warning
@@ -70,11 +70,15 @@
;; ones.
(define-compiler-macro invoke (receiver message-start &rest message-components)
(multiple-value-bind (method-name args)
- (split-method-call message-start message-components)
+ (split-method-call (if (and (consp message-start)
+ (eq (first message-start) 'quote))
+ (second message-start)
+ message-start)
+ message-components)
`(invoke-by-name
,receiver
(load-time-value (handler-case
- (selector ',method-name)
+ (find-selector ',method-name t)
(serious-condition ()
(warn
(make-condition 'simple-style-warning