[Issue 18594] X is not an lvalue should have a better error message
    d-bugmail at puremagic.com 
    d-bugmail at puremagic.com
       
    Wed Sep 25 16:30:21 UTC 2019
    
    
  
https://issues.dlang.org/show_bug.cgi?id=18594
Tobias Pankrath <tobias at pankrath.net> changed:
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |tobias at pankrath.net
--- Comment #5 from Tobias Pankrath <tobias at pankrath.net> ---
---
struct Test(T) {
        @property ref T get() inout { return member; }
private:
   T member;
}
int main(string[] args)
{
   Test!int t;
   t.get = 12;
   return t.get;
}
---
This code has an very similar issue:
> test.d(3): Error: cast(int)this.member is not an lvalue and cannot be modified
The correct definition is:
---
struct Test(T) {
        @property ref inout(T) get() inout { return member; }
private:
   T member;
}
---
but the error message gives no hint in that direction. It confused me quite a
bit, since IMO member is a fine lvalue that happens to be const/inout. 
https://run.dlang.io/is/IJKZ80
--
    
    
More information about the Digitalmars-d-bugs
mailing list