* Before signalling a name-conflict in IMPORT due to a symbol found
previously on the arglist, remove the earlier symbol from the list of
symbols to add to the package (one or the other will be shadowing-imported,
and there's no further check for name collision.
;;;; -*- coding: utf-8; fill-column: 78 -*-
+changes relative to sbcl-1.0.39:
+ * bug fix: Name conflicts between symbols passed as arguments to a
+single call to IMPORT no longer add multiple symbols with the same name
+to the package (detectable via DO-SYMBOLS).
+
changes in sbcl-1.0.39 relative to sbcl-1.0.38:
* bug fix: Backtrace from undefined function on x86 and x86-64 now show
the calling frame.
(let ((found (member sym syms :test #'string=)))
(if found
(when (not (eq (car found) sym))
+ (setf syms (remove (car found) syms))
(name-conflict package 'import sym sym (car found)))
(push sym syms))))
((not (eq s sym))
;;; Make sure that resolving a name-conflict in IMPORT doesn't leave
;;; multiple symbols of the same name in the package (this particular
;;; scenario found in 1.0.38.9, but clearly a longstanding issue).
-(with-test (:name import-conflict-resolution :fails-on :sbcl)
+(with-test (:name import-conflict-resolution)
(with-packages (("FOO" (:export "NIL"))
("BAR" (:use)))
(with-name-conflict-resolution ((sym "FOO" "NIL"))
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"1.0.39.1"
+"1.0.39.2"