October 13, 2012 [Issue 8813] New: Cannot define delegate with const/immutable/shared/inout attributes | ||||
---|---|---|---|---|
| ||||
http://d.puremagic.com/issues/show_bug.cgi?id=8813 Summary: Cannot define delegate with const/immutable/shared/inout attributes Product: D Version: D2 Platform: All OS/Version: All Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nobody@puremagic.com ReportedBy: zan77137@nifty.com --- Comment #0 from SHOO <zan77137@nifty.com> 2012-10-13 11:05:38 PDT --- This code doesn't work: ----------------------- void main() { auto dg = delegate() const { }; // NG } ----------------------- And, I do not know whether a cause is the same as this problem... This code doesn't work, too. ----------------------- import std.traits; void main() { static assert(is(FunctionTypeOf!(void delegate() const) == const)); // NG alias void delegate() const DG; // OK static assert(is(FunctionTypeOf!DG == const)); // OK } ----------------------- -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
October 15, 2012 [Issue 8813] Cannot define delegate with const/immutable/shared/inout attributes | ||||
---|---|---|---|---|
| ||||
Posted in reply to SHOO | http://d.puremagic.com/issues/show_bug.cgi?id=8813 --- Comment #1 from Kenji Hara <k.hara.pg@gmail.com> 2012-10-14 20:50:28 PDT --- (In reply to comment #0) > This code doesn't work: > ----------------------- > void main() > { > auto dg = delegate() const { }; // NG > } > ----------------------- In current, the semantics about qualified nested function (==lambda literal) is not defined in language spec. Compiler assumes that the frame pointer of nested function is always mutable. > And, I do not know whether a cause is the same as this problem... This code doesn't work, too. > ----------------------- > import std.traits; > void main() > { > static assert(is(FunctionTypeOf!(void delegate() const) == const)); // NG > > alias void delegate() const DG; // OK > static assert(is(FunctionTypeOf!DG == const)); // OK > } > ----------------------- This is a parser bug and a rest of issue 4838. I've separated it to bug 8822. -- 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