Thread overview
[Issue 9631] New: Error message not using fully qualified name when appropriate.
Mar 02, 2013
deadalnix
Mar 02, 2013
Andrej Mitrovic
Mar 20, 2013
Andrej Mitrovic
Apr 18, 2013
luka8088
Aug 18, 2013
Andrej Mitrovic
March 02, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=9631

           Summary: Error message not using fully qualified name when
                    appropriate.
           Product: D
           Version: D2
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: nobody@puremagic.com
        ReportedBy: deadalnix@gmail.com


--- Comment #0 from deadalnix <deadalnix@gmail.com> 2013-03-02 01:29:14 PST ---
I'm doing some refactoring in SDC. Doing so, I'm moving this to use a new implementation of Location. I get often message like :

Error: cannot implicitly convert expression (e.location) of type Location to
Location

The error message is about me using the new Location when the old is expected or the other way around. But the message itself is kind of cryptic.

DMD should use the fully qualified name in error message when the regular name isn't enough.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
March 02, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=9631


bearophile_hugs@eml.cc changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |bearophile_hugs@eml.cc


--- Comment #1 from bearophile_hugs@eml.cc 2013-03-02 05:21:58 PST ---
(In reply to comment #0)

> The error message is about me using the new Location when the old is expected or the other way around. But the message itself is kind of cryptic.

I suggest to add here a minimal complete program example.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
March 02, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=9631


Andrej Mitrovic <andrej.mitrovich@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |andrej.mitrovich@gmail.com


--- Comment #2 from Andrej Mitrovic <andrej.mitrovich@gmail.com> 2013-03-02 08:03:41 PST ---
Test case:

template T1()
{
    struct F { }
}

template T2()
{
    struct F { }
}

void main()
{
    T2!().F x = T1!().F();
}

> Error: cannot implicitly convert expression (F()) of type F to F

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
March 20, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=9631


Andrej Mitrovic <andrej.mitrovich@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |andrew.smith@uk.mlp.com


--- Comment #3 from Andrej Mitrovic <andrej.mitrovich@gmail.com> 2013-03-20 14:30:53 PDT ---
*** Issue 9767 has been marked as a duplicate of this issue. ***

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
April 18, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=9631


luka8088 <luka8088@owave.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |luka8088@owave.net


--- Comment #4 from luka8088 <luka8088@owave.net> 2013-04-18 12:39:24 PDT ---
Test case (from #9949):

// Error: function literal __lambda3 (S!(s) a) is not
// callable using argument types (S!(s))

module program;

struct S (alias T) {
  typeof(T) value;
}

void f (alias l = x => 1) (string s) {
  l(S!(s).init);
}

void main () {
  auto s = "some-string";
  f!((S!s a) { return 1; })(s);
}

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
August 18, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=9631



--- Comment #5 from Andrej Mitrovic <andrej.mitrovich@gmail.com> 2013-08-18 11:08:04 PDT ---
Here's another example:

test.d:

-----
module test;

import foo;

struct S { }

void main()
{
    test(S());
}
-----

-----
module foo;

struct S { }

void test(S s) { }
-----

test.d(9): Error: function foo.test (S s) is not callable using argument types
(S)

There used to be another error message here which would say "Cannot implicitly convert type S to S", and *that* error message is the one that should really be fixed, however Walter removed the message. I think it will eventually come back though.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------