[Issue 22600] New: Better error message when trying to assign non-implicitily convertible slices

d-bugmail at puremagic.com d-bugmail at puremagic.com
Wed Dec 15 05:57:38 UTC 2021


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

          Issue ID: 22600
           Summary: Better error message when trying to assign
                    non-implicitily convertible slices
           Product: D
           Version: D2
          Hardware: All
                OS: All
            Status: NEW
          Severity: enhancement
          Priority: P1
         Component: dmd
          Assignee: nobody at puremagic.com
          Reporter: rumbu at rumbu.ro

In the code below:


struct A { int x; }
struct B { int y; }
A[] bufa;
B[] bufb;
bufa[0] = bufb[0];

The error message is "cannot implicitly convert expression `bufb[0]` of type
`B` to `A`"

Trying to do a slice assignment:

bufa[] = bufb[];

will render another error message:

"cannot implicitly convert expression `bufb[]` of type `B[]` to `A[]".

Since the root cause is the first one, I think the error message must also
state that 'B' si not implicitily convertible to 'A' instead of highlight that
sorresponding slices are incompatible.

This example is simple, but if A and B are some long names (e.g. template
instantiations), the error message is difficult to gasp and makes you think
that is a problem with slice assignment, not with the basic assignment of B to
A.

--


More information about the Digitalmars-d-bugs mailing list