digitalmars.D.bugs - [Issue 14591] New: [SPEC] Ambiguity between extern(Pascal) and
- via Digitalmars-d-bugs (28/28) May 16 2015 https://issues.dlang.org/show_bug.cgi?id=14591
https://issues.dlang.org/show_bug.cgi?id=14591 Issue ID: 14591 Summary: [SPEC] Ambiguity between extern(Pascal) and template value parameters Product: D Version: D1 & D2 Hardware: All OS: All Status: NEW Severity: blocker Priority: P1 Component: DMD Assignee: nobody puremagic.com Reporter: ibuclaw gdcproject.org It's impossible to tell when demangling a symbol whether a 'V' we have encountered is for a extern(Pascal) calling convention or a template value parameter. Two examples: _D8demangle32__T4testTS8demangle3fooVnnZ3barZ3bazFZv _D8demangle27__T4testTS8demangle3fooVnnZ3bar3bazFZv One should be demangled to: demangle.test!(demangle.foo(none, none).bar).baz() and the other to: demangle.test!(demangle.foo, null).bar.baz() Because of this, I suggest Pascal calling convention mangle symbol should be changed to another symbol that is not shared with TemplateArgX (or even better, we should remove Pascal entirely) --
May 16 2015