[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
SHADOWING-IMPORT does not work correctly when there is a conflicting
symbol in the importing package:
KCl (Kyoto Common Lisp) June 3, 1987
A>(defun f () "A") ;F in A
B>(defun f () "B") ;conflicting F in B
B>(shadowing-import 'a::f) ;should work without error
Error: Cannot shadowing-import the symbol A::F
to #<"B" package>,
because there is already a symbol with the same name
in the package.
Error signalled by SHADOWING-IMPORT.
According to Steele, p. 179:
SHADOW and SHADOWING-IMPORT never signal a name-conflict error
[...] SHADOWING-IMPORT does name-conflict checking to the extent
that it checks whether a distince existing symbol with the same
name is accessable; if so, it is shadowed by the new symbol, which
implies that it must be uninterned if it was directly present in
What should happen in the example above is that B::F should be uninterned
and the import should succeed.
Jeff Dalton, JANET: J.Dalton@uk.ac.ed
AI Applications Institute, ARPA: J.Daltonemail@example.com
Edinburgh University. UUCP: ...!ukc!ed.ac.uk!J.Dalton