Summary: Function resolution failure error message is unclear
           Product: D
           Version: unspecified
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: enhancement
          Priority: P2
         Component: DMD

void foo(int x) { }

Gives the error:

dtest.d(11): function (int) does not match parameter types

I've been using DMD for over 4 years and I still have trouble interpreting the
error message.  I always think it's the other way around (I expect what is
passed to be on the left and the function's signature to be on the right).  It
also goes against the convention I've seen used elsewhere where parameters are
what are defined in the function header and arguments are the values passed to
the parameters (so (double) is the list of argument types, not parameter

Something like:

dtest.d(11): Incompatible argument types (double) for function
(expected (int))

Would be much more helpful.

I'll leave it to Stewie to put a keyword on here if he wants.  I'm afraid I'll
pick the wrong one.


Reply via email to