Bug 9981 – Implement lazy ref arguments

Status
NEW
Severity
enhancement
Priority
P4
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2013-04-23T03:21:29Z
Last change time
2024-12-13T18:06:18Z
Assigned to
No Owner
Creator
timon.gehr
Moved to GitHub: dmd#17583 →

Comments

Comment #0 by timon.gehr — 2013-04-23T03:21:29Z
DMD 2.062: bool isLvalue(T)(lazy auto ref T t){ return __traits(isRef, t); } void main(){ int i; static assert(isLvalue(i)); static assert(!isLvalue(i + 1)); } /c286/c611.d(2): Error: incompatible parameter storage classes Lazy and (auto )ref are not incompatible parameter storage classes.
Comment #1 by yebblies — 2013-11-21T08:27:27Z
Since when was this supposed to work? Enhancement.
Comment #2 by john.loughran.colvin — 2018-09-12T11:08:19Z
Is there a reason for this being disallowed? Seeing as lazy is just pass-by-delegate, why not allow pass-by-delegate-with-ref-return?
Comment #3 by robert.schadek — 2024-12-13T18:06:18Z
THIS ISSUE HAS BEEN MOVED TO GITHUB https://github.com/dlang/dmd/issues/17583 DO NOT COMMENT HERE ANYMORE, NOBODY WILL SEE IT, THIS ISSUE HAS BEEN MOVED TO GITHUB