Sorry, i was in a rush, i wasn't thinking. I actually didn't need to do this, but here's a convoluted example to demonstrate my question, which i guess has no practical use

.
Question rephrased: Let's say there is a package, named arnesi, which exports the symbol walker. This symbol is actually the name of a method. The package :general-walker uses the arnesi package, but also defines a method named
walker which specializes on a different class. Since you can create methods with the same name, there'll be no error. So, the question is, if you try to find the symbol 'walker in package :general-walker, will it return the inherited method symbol from arnesi or that from general-walker? Why? On lispworks, using (find-symbol 'walker :general-walker) will return (values 'arnesi:walker :external). I half expected it to return (values 'general-walker::walker :internal)
- Code: Select all
(defpackage :arnesi (:use :cl) (:export :walker :application-form))
(in-package :arnesi)
(defclass application-form () ())
(defmethod walker ((class application-form)) (print "arnesi-walker"))
(defpackage :general-walker (:use :cl :arnesi) (:export :walker))
(in-package :general-walker)
(defmethod walker ((class application-form))
(print "general-walker-form"))
(defpackage :test (:use :cl ))
(in-package :test)
(find-symbol 'walker :general-walker)