Thread overview | |||||||||
---|---|---|---|---|---|---|---|---|---|
|
December 26, 2009 [Issue 3651] New: mangleof broken for enums | ||||
---|---|---|---|---|
| ||||
http://d.puremagic.com/issues/show_bug.cgi?id=3651 Summary: mangleof broken for enums Product: D Version: 1.051 Platform: Other OS/Version: All Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nobody@puremagic.com ReportedBy: nfxjfg@gmail.com --- Comment #0 from nfxjfg@gmail.com 2009-12-26 11:32:07 PST --- First off, this bug report is for dmd 1.053, not 1.051; but bugzilla let's me only select up to 1.051. .mangleof is broken for enums: enum foo { item, } //should output a mangled name with "foo" in it, but outputs "i" pragma(msg, foo.mangleof); void main() {} I apologize if this is a duplicate bug; there were quite a lot of enum bugs which look slightly similar (the compiler seems to reduce enums to ints prematurely in a lot of cases). -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
January 14, 2010 [Issue 3651] mangleof broken for enums | ||||
---|---|---|---|---|
| ||||
Posted in reply to nfxjfg@gmail.com | http://d.puremagic.com/issues/show_bug.cgi?id=3651 --- Comment #1 from mpiepk@gmail.com 2010-01-14 05:43:12 PST --- Created an attachment (id=549) Patch Patch against dmd 1.055. The problem is that mangleof is executed on the enum member type, not the enum type itself. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
January 28, 2010 [Issue 3651] mangleof broken for enums | ||||
---|---|---|---|---|
| ||||
Posted in reply to nfxjfg@gmail.com | http://d.puremagic.com/issues/show_bug.cgi?id=3651 Don <clugdbug@yahoo.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |clugdbug@yahoo.com.au --- Comment #2 from Don <clugdbug@yahoo.com.au> 2010-01-28 00:47:21 PST --- > enum foo { > item, > } > //should output a mangled name with "foo" in it, but outputs "i" > pragma(msg, foo.mangleof); Are you sure that's what it should do? Why do you think the existing behaviour is wrong? -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
January 28, 2010 [Issue 3651] mangleof broken for enums | ||||
---|---|---|---|---|
| ||||
Posted in reply to nfxjfg@gmail.com | http://d.puremagic.com/issues/show_bug.cgi?id=3651 --- Comment #3 from nfxjfg@gmail.com 2010-01-28 00:55:57 PST --- @Don: I'm pretty sure my bug report is correct. enums are the *only* type that behave different here. Further, if you get the mangle of a function or template that use enums as parameters, the enum gets mangled using the type name, not the base type. Why do you think the current behavior would be correct? Why would .mangleof for a type return the mangle for a completely *different* type? -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
January 28, 2010 [Issue 3651] mangleof broken for enums | ||||
---|---|---|---|---|
| ||||
Posted in reply to nfxjfg@gmail.com | http://d.puremagic.com/issues/show_bug.cgi?id=3651 --- Comment #4 from Don <clugdbug@yahoo.com.au> 2010-01-28 01:05:28 PST --- (In reply to comment #3) > @Don: I'm pretty sure my bug report is correct. enums are the *only* type that behave different here. Further, if you get the mangle of a function or template that use enums as parameters, the enum gets mangled using the type name, not the base type. > > Why do you think the current behavior would be correct? Why would .mangleof for a type return the mangle for a completely *different* type? Because enums aren't strong types. typeof(item) is int, not foo. 'foo' just seems to be an alias for int. (I think the existing behaviour is stupid, BTW). -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
January 28, 2010 [Issue 3651] mangleof broken for enums | ||||
---|---|---|---|---|
| ||||
Posted in reply to nfxjfg@gmail.com | http://d.puremagic.com/issues/show_bug.cgi?id=3651 --- Comment #5 from nfxjfg@gmail.com 2010-01-28 01:14:41 PST --- >typeof(item) is int, not foo. Even then, typeof(foo) is foo, and not int. It's only logical that foo.mangleof should be the mangle for foo, not int. I don't know about item.mangelof. Is that even allowed? -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
May 31, 2010 [Issue 3651] mangleof broken for enums | ||||
---|---|---|---|---|
| ||||
Posted in reply to nfxjfg@gmail.com | http://d.puremagic.com/issues/show_bug.cgi?id=3651 Walter Bright <bugzilla@digitalmars.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |bugzilla@digitalmars.com Resolution| |FIXED --- Comment #6 from Walter Bright <bugzilla@digitalmars.com> 2010-05-31 01:02:27 PDT --- http://www.dsource.org/projects/dmd/changeset/508 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
Copyright © 1999-2021 by the D Language Foundation