[Issue 15043] [e2ir] dmd still crashes when trying to set a delegate from __traits(getOverloads)
https://issues.dlang.org/show_bug.cgi?id=15043 Basile B.changed: What|Removed |Added Keywords|ice |diagnostic Status|REOPENED|NEW --- Comment #4 from Basile B. --- The code now leads to a wrong diagnostic "/tmp/temp_7FECD0F3D050.d(9,27): Error: delegates are only for non-static functions" but on the other hand this works class Foo { uint bar(){return 0;} this() { foreach(member; __traits(allMembers, typeof(this))) foreach(overload; __traits(getOverloads, typeof(this), member)) static if (member == "bar") {uint delegate() a = setDg(a);} } void setDg(uint delegate() dg){} } void main(){} --
[Issue 15043] [e2ir] dmd still crashes when trying to set a delegate from __traits(getOverloads)
https://issues.dlang.org/show_bug.cgi?id=15043 ag0ae...@gmail.com changed: What|Removed |Added Status|RESOLVED|REOPENED CC||ag0ae...@gmail.com Resolution|WONTFIX |--- --- Comment #3 from ag0ae...@gmail.com --- The bug is still there. ICEs are certainly not WONTFIX. Reopening. --
[Issue 15043] [e2ir] dmd still crashes when trying to set a delegate from __traits(getOverloads)
https://issues.dlang.org/show_bug.cgi?id=15043 b2.t...@gmx.com changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |WONTFIX Assignee|k.hara...@gmail.com |nob...@puremagic.com --
[Issue 15043] [e2ir] dmd still crashes when trying to set a delegate from __traits(getOverloads)
https://issues.dlang.org/show_bug.cgi?id=15043 b2.t...@gmx.com changed: What|Removed |Added Status|ASSIGNED|NEW --
[Issue 15043] [e2ir] dmd still crashes when trying to set a delegate from __traits(getOverloads)
https://issues.dlang.org/show_bug.cgi?id=15043 bb.t...@gmx.com changed: What|Removed |Added Status|NEW |ASSIGNED Assignee|nob...@puremagic.com|k.hara...@gmail.com --- Comment #2 from bb.t...@gmx.com --- he knows the topic. --
[Issue 15043] [e2ir] dmd still crashes when trying to set a delegate from __traits(getOverloads)
https://issues.dlang.org/show_bug.cgi?id=15043 bb.t...@gmx.com changed: What|Removed |Added Severity|major |normal --- Comment #1 from bb.t...@gmx.com --- Lowered importance. Actually the problem seems to come from a lValue/rValue thing because when using an intermediate variable to carry the delegate then this works: --- static if (member == "bar") { auto dg = // OK with intermediate value setDg(dg); } --- --