From 64d01eca151659f12de3aa5cd453e6b07d32067e Mon Sep 17 00:00:00 2001
From: Francois-Rene Rideau <fare@tunes.org>
Date: Tue, 17 Jan 2017 21:41:31 -0500
Subject: [PATCH] Stop warning in define-convenience-methods explain

The convenience methods recursively call explain, which cause a style-warning
if the compiler-macro is already defined, and a different one if it is defined
afterwards. The solution is to declare the function notinline in the body of
the convenience methods.

This fixes test-clean-load on sbcl, and more generally
hushes loading asdf.lisp from source.
---
 Makefile    | 1 +
 action.lisp | 3 +++
 2 files changed, 4 insertions(+)

diff --git a/Makefile b/Makefile
index c96d65537..ff35d0c67 100644
--- a/Makefile
+++ b/Makefile
@@ -194,6 +194,7 @@ test-clean-load: build/asdf.lisp
 # test-glob has been replaced by t, and lisp by l, easier to type
 test-lisp: build/asdf.lisp
 	@cd test; ./run-tests.sh ${l} ${t}
+
 t: test-lisp
 
 test: doc test-lisp test-clean-load test-load-systems
diff --git a/action.lisp b/action.lisp
index 99413e841..702fcb858 100644
--- a/action.lisp
+++ b/action.lisp
@@ -88,15 +88,18 @@ and a class-name or class designates the canonical instance of the designated cl
                    `(,function ,@prefix ,o ,c ,@suffix))))
         `(progn
            (defmethod ,function (,@prefix (,operation string) ,component ,@suffix ,@more-args)
+             (declare (notinline ,function))
              (let ((,component (find-component () ,component))) ;; do it first, for defsystem-depends-on
                ,(next-method `(safe-read-from-string ,operation :package :asdf/interface) component)))
            (defmethod ,function (,@prefix (,operation symbol) ,component ,@suffix ,@more-args)
+             (declare (notinline ,function))
              (if ,operation
                  ,(next-method
                    `(make-operation ,operation)
                    `(or (find-component () ,component) ,if-no-component))
                  ,if-no-operation))
            (defmethod ,function (,@prefix (,operation operation) ,component ,@suffix ,@more-args)
+             (declare (notinline ,function))
              (if (typep ,component 'component)
                  (error "No defined method for ~S on ~/asdf-action:format-action/"
                         ',function (make-action ,operation ,component))
-- 
GitLab