diff options
author | Matthias Benkard <code@mail.matthias.benkard.de> | 2007-09-17 14:36:09 +0200 |
---|---|---|
committer | Matthias Benkard <code@mail.matthias.benkard.de> | 2007-09-17 14:36:09 +0200 |
commit | c3f89b6967800bfdb8d4462d2e91d3bc2e3796fa (patch) | |
tree | 50c283eaaeadd247e43410e4c44be14c7825481c /Lisp | |
parent | 50a7dd437c9d3c1ea9bac9ade86e903d12a39eb3 (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')
-rw-r--r-- | Lisp/method-invocation.lisp | 7 |
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)) |