summaryrefslogtreecommitdiff
path: root/Lisp/method-invocation.lisp
diff options
context:
space:
mode:
authorMatthias Benkard <code@mail.matthias.benkard.de>2007-09-17 14:36:09 +0200
committerMatthias Benkard <code@mail.matthias.benkard.de>2007-09-17 14:36:09 +0200
commitc3f89b6967800bfdb8d4462d2e91d3bc2e3796fa (patch)
tree50c283eaaeadd247e43410e4c44be14c7825481c /Lisp/method-invocation.lisp
parent50a7dd437c9d3c1ea9bac9ade86e903d12a39eb3 (diff)
PRIMITIVE-INVOKE: Make the compiler macro degrade gracefully when a constant selector designator designates an unknown selector.
darcs-hash:f6a5bf8ff9fb560b7fd991e48982163b27dc58fa
Diffstat (limited to 'Lisp/method-invocation.lisp')
-rw-r--r--Lisp/method-invocation.lisp7
1 files changed, 6 insertions, 1 deletions
diff --git a/Lisp/method-invocation.lisp b/Lisp/method-invocation.lisp
index cfefc8c..0426d38 100644
--- a/Lisp/method-invocation.lisp
+++ b/Lisp/method-invocation.lisp
@@ -276,7 +276,12 @@ Returns: *result* --- the return value of the method invocation.
(not (and (listp method-name)
(eq 'load-time-value (car method-name)))))
`(primitive-invoke ,receiver
- (load-time-value (selector ,method-name))
+ (load-time-value (handler-case
+ (selector ,method-name)
+ (serious-condition ()
+ ;; XXX May want to issue a
+ ;; warning here.
+ ,method-name)))
,return-type ,@args)
form))