Thread overview
[Issue 19959] Eponymous template FQN's re-state the template name
Jun 15, 2019
Rainer Schuetze
Jun 15, 2019
Manu
Jun 15, 2019
Rainer Schuetze
Jun 15, 2019
Manu
Aug 30, 2019
Rainer Schuetze
Aug 30, 2019
Manu
Feb 27, 2020
Dlang Bot
Dec 17, 2022
Iain Buclaw
June 15, 2019
https://issues.dlang.org/show_bug.cgi?id=19959

Rainer Schuetze <r.sagitario@gmx.de> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |r.sagitario@gmx.de

--- Comment #1 from Rainer Schuetze <r.sagitario@gmx.de> ---
This symbol is emitted by dmd. LDC already uses the abbreviated form
"templatefunc!(arg1, arg2)()", but omits function parameter type information.

--
June 15, 2019
https://issues.dlang.org/show_bug.cgi?id=19959

--- Comment #2 from Manu <turkeyman@gmail.com> ---
Oh cool.
I tend not to debug with LDC because of that weird yellow block that follows
the cursor around ;)
It would be ideal for DMD and LDC to have identical output; building debug with
DMD and release with LDC is very common, and the debug experience changing
substantially between configurations is not great :)

> but omits function parameter type information.

I'm not sure what you mean exactly; like, just doesn't show the args at all?
So there is actual information loss?
I don't think it's good to drop information. Do you know why it would do that?

--
June 15, 2019
https://issues.dlang.org/show_bug.cgi?id=19959

--- Comment #3 from Rainer Schuetze <r.sagitario@gmx.de> ---
>> but omits function parameter type information.

>I'm not sure what you mean exactly; like, just doesn't show the args at all? So there is actual information loss?

Yes.

> I don't think it's good to drop information. Do you know why it would do that?

I guess it's just to keep the code simple? It seems it's not populated in the LDC part, but maybe the LLVM backend ignores this anyway? IIRC LDC doesn't add member functions to structs or classes, so you also cannot make "property-calls" in the debugger.

--
June 15, 2019
https://issues.dlang.org/show_bug.cgi?id=19959

--- Comment #4 from Manu <turkeyman@gmail.com> ---
Bummer. Seems we still have a ways to go.

Well I think DMD is the more important experience, since people tend to use it when debugging, so we should focus on making that behave 'correctly' first, and then work to bring LDC in-line with DMD.

--
August 30, 2019
https://issues.dlang.org/show_bug.cgi?id=19959

Rainer Schuetze <r.sagitario@gmx.de> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
          Component|visuald                     |dmd

--- Comment #5 from Rainer Schuetze <r.sagitario@gmx.de> ---
I think removing the duplicate template name can be done in error messages, too, e.g.:

void foo(T)(T x)
{
}

void main()
{
        foo!int();
}

test.d(8): Error: function `test.foo!int.foo(int x)` is not callable using
argument types `()`
test.d(8):        missing argument for parameter #1: `int x`

Changing this in Dsymbol.prettyChars() would probably propagate to the debug
info.

Reassigning to dmd...

--
August 30, 2019
https://issues.dlang.org/show_bug.cgi?id=19959

--- Comment #6 from Manu <turkeyman@gmail.com> ---
Oh yeah, that's a very good point!
I've had that same thought many times.

--
February 27, 2020
https://issues.dlang.org/show_bug.cgi?id=19959

Dlang Bot <dlang-bot@dlang.rocks> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |pull

--- Comment #7 from Dlang Bot <dlang-bot@dlang.rocks> ---
@rainers created dlang/dmd pull request #10846 "fix Issue 19959 - Eponymous template FQN's re-state the template name" fixing this issue:

- fix Issue 19959 - Eponymous template FQN's re-state the template name

https://github.com/dlang/dmd/pull/10846

--
December 17, 2022
https://issues.dlang.org/show_bug.cgi?id=19959

Iain Buclaw <ibuclaw@gdcproject.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P1                          |P4

--