www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 24664] New: Inconsistent "cannot be used as an lvalue in

https://issues.dlang.org/show_bug.cgi?id=24664

          Issue ID: 24664
           Summary: Inconsistent "cannot be used as an lvalue in  safe
                    code" deprecation
           Product: D
           Version: D2
          Hardware: All
                OS: All
            Status: NEW
          Keywords: safe
          Severity: minor
          Priority: P1
         Component: dmd
          Assignee: nobody puremagic.com
          Reporter: dkorpel live.nl

```
void main()  safe
{
    int[3] a;
    (cast(uint[3]) a)[0] = 20; // allowed 
    assert(a[0] == 20); // passes

    (cast(uint[3]) a) = [30, 40, 50]; // Deprecation: cast from `int[3]` to
`uint[3]` cannot be used as an lvalue in  safe code
    assert(a[0] == 30);
}
```

Either both should compile, or neither.

--
Jul 15