-
-
Notifications
You must be signed in to change notification settings - Fork 610
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Eponymous template FQN's re-state the template name #19582
Labels
Comments
r.sagitario commented on 2019-06-15T12:52:25ZThis symbol is emitted by dmd. LDC already uses the abbreviated form "templatefunc!(arg1, arg2)()", but omits function parameter type information. |
turkeyman commented on 2019-06-15T18:37:19ZOh 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? |
r.sagitario commented on 2019-06-15T19:03:17Z>> 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. |
turkeyman commented on 2019-06-15T19:37:14ZBummer. 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. |
r.sagitario commented on 2019-08-30T15:53:09ZI 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... |
turkeyman commented on 2019-08-30T17:23:27ZOh yeah, that's a very good point!
I've had that same thought many times. |
dlang-bot commented on 2020-02-27T21:15:36Z@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 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Manu reported this on 2019-06-13T21:20:24Z
Transferred from https://issues.dlang.org/show_bug.cgi?id=19959
CC List
Description
The text was updated successfully, but these errors were encountered: