shadow warning with function parameters and local module variables
- To: mathgroup at smc.vnet.net
- Subject: [mg104994] shadow warning with function parameters and local module variables
- From: brien colwell <xcolwell at gmail.com>
- Date: Tue, 17 Nov 2009 05:13:52 -0500 (EST)
hi all, I have a set of fairly complex packages. Frequently I use the same variable names in function definitions and local modules across many packages. Sometimes I see this type of warning: <varname>::shdw : Symbol <varname> appears in multiple contexts {*}; definitions in context * may shadow or be shadowed ... This does not happen with symbols in the package context (already fixed); it happens only with function parameters and variables in local modules. I can recreate the warning with the following code snippet. It seems to me that the variable 'v' should be safely local to each module. Is there really a symbol conflict to worry about here? thanks, Brien In[1]:= BeginPackage["a`"]; Test1[t_] := Module[{v = t + 1}, t + v]; EndPackage[]; BeginPackage["b`"]; Test2[t_] := Module[{v = t + 2}, t + v]; EndPackage[]; Out[1]:= v$::shdw: Symbol v$ appears in multiple contexts {b`,a`}; definitions in context b` may shadow or be shadowed by other definitions. >>
- Follow-Ups:
- Re: shadow warning with function parameters and local
- From: DrMajorBob <btreat1@austin.rr.com>
- Re: shadow warning with function parameters and local