Commit 5e4d4e06 authored by Pascal Costanza's avatar Pascal Costanza
Browse files

If make-method-lambda is specialized, we also need to use the new invocation protocol.

Ignore-this: 61621850de162e6691398502bda25f4a

darcs-hash:14e5f6501b6a1f3fac4ddff69cf7ea1027b9d1d9
parent e58cd234
......@@ -224,7 +224,8 @@
(defvar *standard-gfs*
(list #'compute-applicable-methods #'compute-applicable-methods-using-classes
#'compute-effective-method #'compute-effective-method-function))
#'compute-effective-method #'compute-effective-method-function
#'make-method-lambda))
(defun only-standard-methods (gf &rest other-gfs)
(declare (dynamic-extent other-gfs) (optimize (speed 3) (space 0) (compilation-speed 0)))
......@@ -273,7 +274,7 @@
(apply (the function emf) args))))
(when (only-standard-methods gf #'compute-applicable-methods #'compute-applicable-methods-using-classes)
(setq discriminator
(if (only-standard-methods gf #'compute-effective-method #'compute-effective-method-function)
(if (only-standard-methods gf #'compute-effective-method #'compute-effective-method-function #'make-method-lambda)
(call-next-method)
(let ((argument-order (compute-argument-order gf nof-required-args)))
(cond ((null (generic-function-methods gf))
......
......@@ -621,7 +621,8 @@
(defvar *standard-gfs*
(list #'compute-applicable-methods #'compute-applicable-methods-using-classes
#'compute-effective-method #'compute-effective-method-function))
#'compute-effective-method #'compute-effective-method-function
#'make-method-lambda))
(defun only-standard-methods (gf &rest other-gfs)
(declare (dynamic-extent other-gfs) (optimize (speed 3) (space 0) (compilation-speed 0)))
......@@ -671,7 +672,7 @@
(apply (the function emf) args))))
(when (only-standard-methods gf #'compute-applicable-methods #'compute-applicable-methods-using-classes)
(setq discriminator
(if (only-standard-methods gf #'compute-effective-method #'compute-effective-method-function)
(if (only-standard-methods gf #'compute-effective-method #'compute-effective-method-function #'make-method-lambda)
(call-next-method)
(cond ((null (generic-function-methods gf))
(lambda (&rest args)
......
......@@ -508,7 +508,8 @@
(defvar *standard-gfs*
(list #'compute-applicable-methods #'compute-applicable-methods-using-classes
#'compute-effective-method #'compute-effective-method-function))
#'compute-effective-method #'compute-effective-method-function
#'make-method-lambda))
(defun only-standard-methods (gf &rest other-gfs)
(declare (dynamic-extent other-gfs) (optimize (speed 3) (space 0) (compilation-speed 0)))
......@@ -558,7 +559,7 @@
(apply (the function emf) args))))
(when (only-standard-methods gf #'compute-applicable-methods #'compute-applicable-methods-using-classes)
(setq discriminator
(if (only-standard-methods #'compute-effective-method #'compute-effective-method-function)
(if (only-standard-methods gf #'compute-effective-method #'compute-effective-method-function #'make-method-lambda)
(call-next-method)
(cond ((null (generic-function-methods gf))
(lambda (&rest args)
......
......@@ -291,7 +291,8 @@
(defvar *standard-gfs*
(list #'compute-applicable-methods #'compute-applicable-methods-using-classes
#'compute-effective-method #'compute-effective-method-function))
#'compute-effective-method #'compute-effective-method-function
#'make-method-lambda))
(defun only-standard-methods (gf &rest other-gfs)
(declare (dynamic-extent other-gfs) (optimize (speed 3) (space 0) (compilation-speed 0)))
......@@ -341,7 +342,7 @@
(apply (the function emf) args))))
(when (only-standard-methods gf #'compute-applicable-methods #'compute-applicable-methods-using-classes)
(setq discriminator
(if (only-standard-methods gf #'compute-effective-method #'compute-effective-method-function)
(if (only-standard-methods gf #'compute-effective-method #'compute-effective-method-function #'make-method-lambda)
(call-next-method)
(cond ((null (generic-function-methods gf))
(lambda (&rest args)
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment