[Issue 20433] New: Don't complain about implicit cast when an explicit cast would also be in error

d-bugmail at puremagic.com d-bugmail at puremagic.com
Thu Dec 5 22:59:19 UTC 2019


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

          Issue ID: 20433
           Summary: Don't complain about implicit cast when an explicit
                    cast would also be in error
           Product: D
           Version: D2
          Hardware: x86_64
                OS: Linux
            Status: NEW
          Severity: trivial
          Priority: P1
         Component: dmd
          Assignee: nobody at puremagic.com
          Reporter: mipri at minimaltype.com

Consider:

struct Thing { int x; }
void main() {
    Thing a = [1];
}
// Error: cannot implicitly convert expression [1] of type int[] to Thing

The error message suggests that the implicitness of the conversion
is the problem. However, this also fails:

struct Thing { int x; }
void main() {
    Thing a = cast(Thing) [1];
}
// Error: cannot cast expression [1] of type int[] to Thing

So I suggest, as a trivial enhancement to dmd's error messages, that
'implicitly' be dropped from the first error when an explicit cast
would also fail.

The error messages would still not be the same ('convert' vs. 'cast'),
which might help the reader find the error in an expression with both
implicit conversions and explicit casts.

--


More information about the Digitalmars-d-bugs mailing list