[Issue 19754] New: cast() sometimes yields lvalue, sometimes yields rvalue
    d-bugmail at puremagic.com 
    d-bugmail at puremagic.com
       
    Tue Mar 19 16:08:00 UTC 2019
    
    
  
https://issues.dlang.org/show_bug.cgi?id=19754
          Issue ID: 19754
           Summary: cast() sometimes yields lvalue, sometimes yields
                    rvalue
           Product: D
           Version: D2
          Hardware: All
                OS: All
            Status: NEW
          Severity: normal
          Priority: P1
         Component: dmd
          Assignee: nobody at puremagic.com
          Reporter: andrei at erdani.com
Consider:
shared int x;
(cast() x) = 5;
assert(x == 5);
So the cast yields an lvalue. However:
shared int x;
auto p = &(cast() x);
This does not compile claiming that the result of cast is an rvalue. Should
pass and use an lvalue.
Same for this:
int x;
(cast(shared) x) = 5;
assert(x == 5);
...
auto p = &(cast(shared) x);
--
    
    
More information about the Digitalmars-d-bugs
mailing list