From e3fe1d2cfe41c6b6d7d661cbcc5da620fd6e398c Mon Sep 17 00:00:00 2001 From: pmai <pmai> Date: Sun, 23 Sep 2001 19:02:12 +0000 Subject: [PATCH] Fixes a bug in short-method-combination handling reported on cmucl-help: The optional order argument to method combinations defined by the short form of define-method-combination was being quietly ignored, resulting in the default :most-specific-first behaviour, even if :most-specific-last was specified. This fix makes it respect the specified order. --- pcl/defcombin.lisp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pcl/defcombin.lisp b/pcl/defcombin.lisp index c89fbe6c3..8d6b7bc6d 100644 --- a/pcl/defcombin.lisp +++ b/pcl/defcombin.lisp @@ -26,7 +26,7 @@ ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/defcombin.lisp,v 1.11 2001/04/25 21:44:51 pmai Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/defcombin.lisp,v 1.12 2001/09/23 19:02:12 pmai Exp $") ;;; (in-package :pcl) @@ -171,6 +171,7 @@ (let ((type (method-combination-type combin)) (operator (short-combination-operator combin)) (ioa (short-combination-identity-with-one-argument combin)) + (order (car (method-combination-options combin))) (around ()) (primary ())) (dolist (m applicable-methods) @@ -194,8 +195,9 @@ (push m primary)) (t (lose m "has an illegal qualifier")))))) - (setq around (nreverse around) - primary (nreverse primary)) + (setq around (nreverse around)) + (unless (eq order :most-specific-last) + (setq primary (nreverse primary))) (let ((main-method (if (and (null (cdr primary)) (not (null ioa))) -- GitLab