User Tools

A PCRE internal error occured. This might be caused by a faulty plugin

====== Function SHADOWING-IMPORT ====== ====Syntax==== * **shadowing-import** //symbols// ''&optional'' //package// → **[[CL:Constant Variables:t]]** ====Arguments and Values==== * //symbols// - a //[[CL:Glossary:designator]]// for a //[[CL:Glossary:list]]// of //[[CL:Glossary:symbol|symbols]]//. * //package// ---a //[[CL:Glossary:package designator]]//. The default is the //[[CL:Glossary:current package]]//. ====Description==== **shadowing-import** is like **[[CL:Functions:import]]**, but it does not signal an error even if the importation of a //[[CL:Glossary:symbol]]// would shadow some //[[CL:Glossary:symbol]]// already //[[CL:Glossary:accessible]]// in //package//. **shadowing-import** inserts each of //symbols// into //package// as an internal symbol, regardless of whether another //[[CL:Glossary:symbol]]// of the same name is shadowed by this action. If a different //[[CL:Glossary:symbol]]// of the same name is already //[[CL:Glossary:present]]// in //package//, that //[[CL:Glossary:symbol]]// is first //[[CL:Glossary:uninterned]]// from //package//. The new //[[CL:Glossary:symbol]]// is added to //package//'s shadowing-symbols list. **shadowing-import** does name-conflict checking to the extent that it checks whether a distinct existing //[[CL:Glossary:symbol]]// with the same name is //[[CL:Glossary:accessible]]//; if so, it is shadowed by the new //[[CL:Glossary:symbol]]//, which implies that it must be uninterned if it was //[[CL:Glossary:present]]// in //package//. ====Examples==== <blockquote> ([[CL:Macros:in-package]] "COMMON-LISP-USER") <r>#<PACKAGE "COMMON-LISP-USER"> </r> ([[CL:Macros:defparameter]] *symbol* (intern "CONFLICT")) <r>CONFLICT </r> ([[CL:Functions:intern]] "CONFLICT" ([[CL:Functions:make-package]] 'temp)) <r>TEMP::CONFLICT, [[CL:Constant Variables:NIL]] </r> ([[CL:Functions:package-shadowing-symbols]] 'temp) <r>[[CL:Constant Variables:NIL]] </r> (shadowing-import *symbol* 'temp) <r>[[CL:Constant Variables:T]] </r> ([[CL:Functions:package-shadowing-symbols]] 'temp) <r>(CONFLICT) </r> </blockquote> ====Side Effects==== **shadowing-import** changes the state of the package system in such a way that the consistency rules do not hold across the change. //package//'s shadowing-symbols list is modified. ====Affected By==== Current state of the package system. ====Exceptional Situations==== None. ====See Also==== * **[[CL:Functions:import|Function IMPORT]]** * **[[CL:Functions:unintern|Function UNINTERN]]** * **[[CL:Functions:package-shadowing-symbols|Function PACKAGE-SHADOWING-SYMBOLS]]** ====Notes==== None. \issue{PACKAGE-FUNCTION-CONSISTENCY:MORE-PERMISSIVE}