From 79aa5567fa3d166ae2adc19b0db28b90d9dc8a5f Mon Sep 17 00:00:00 2001 From: jjgarcia Date: Wed, 12 Jan 2005 13:29:02 +0000 Subject: [PATCH] Fix the order in which methodsare invoked in a STANDARD-METHOD-COMBINATION --- src/CHANGELOG | 3 +++ src/clos/combin.lsp | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/CHANGELOG b/src/CHANGELOG index 94371948c..e95eeed91 100644 --- a/src/CHANGELOG +++ b/src/CHANGELOG @@ -206,6 +206,9 @@ ECL 1.0 - The value of the INDEX variable in WITH-INPUT-FROM-STRING is only updated when exiting normally from the WITH-... form. + - In a standard method combination, the method with qualifier :AFTER are + invoked using the least-specific-first order (ANSI 7.6.6.2) + * MOP compliance: - ADD-METHOD is now a generic function and implements most of the protocol in diff --git a/src/clos/combin.lsp b/src/clos/combin.lsp index ac12f901f..4755dbac9 100644 --- a/src/clos/combin.lsp +++ b/src/clos/combin.lsp @@ -276,8 +276,8 @@ (return-from standard-compute-effective-method #'(lambda (&rest args) (apply 'no-primary-method gf args)))) - (setq before (nreverse before) - after (nreverse after) + (setq before (nreverse before) ;; most-specific-first order (ANSI 7.6.6.2) + after after ;; least-specific-first order (ANSI 7.6.6.2) primary (nreverse primary) around (nreverse around)) (make-effective-method-function