http://d.puremagic.com/issues/show_bug.cgi?id=2720

           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
        AssignedTo: bugzi...@digitalmars.com
        ReportedBy: jarrett.billings...@gmail.com


void foo(int x) { }
foo(4.5);

Gives the error:

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

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
types).

Something like:

dtest.d(11): Incompatible argument types (double) for function dtest.main.foo
(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