[Issue 5957] Ambiguous mangling of module and template in template symbol args
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Sun May 8 10:39:23 PDT 2011
http://d.puremagic.com/issues/show_bug.cgi?id=5957
--- Comment #1 from kennytm at gmail.com 2011-05-08 10:35:26 PDT ---
To show that this bug does affect code more than the demangler, consider the
following programs:
-----------------------------------
// a146zzzzzza.d
template b(){}
-----------------------------------
// a.d
template
zzzzzza1bTC1y130bbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffffbbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffffggggggggggffffffffffgggggggggg(){}
-----------------------------------
// y.d
module y;
import a146zzzzzza;
import a;
import std.stdio;
class
bbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffffbbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffffggggggggggffffffffffgggggggggg
{}
template f(s...) {
void f(){ writeln(s.stringof); }
}
void main() {
f!( a146zzzzzza.b,
bbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffffbbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffffggggggggggffffffffffgggggggggg
)();
f!(
a.zzzzzza1bTC1y130bbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffffbbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffffggggggggggffffffffffgggggggggg
)();
}
-----------------------------------
The output is:
tuple(b(),(bbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffffbbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffffggggggggggffffffffffgggggggggg))
tuple(b(),(bbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffffbbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffffggggggggggffffffffffgggggggggg))
as we can see, the 2nd function is shadowed by the 1st as they share the same
symbol:
_D1y161__T1fS1511a146zzzzzza1bTC1y130bbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffffbbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffffggggggggggffffffffffggggggggggZ1fFZv
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
More information about the Digitalmars-d-bugs
mailing list