-
-
Notifications
You must be signed in to change notification settings - Fork 609
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
Issue 14541 - "duplicate COMDAT" linker error with the template forward reference in Tuple.opAssign #4814
Conversation
|
|
||
| alias T = typeof(result); | ||
| static assert(hasElaborateAssign!T); | ||
| // hasElablrateAssign!(Tuple(int, int)): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
s/hasElablrateAssign/hasElaborateAssign/g
s/alredy/already/g
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, fixed.
|
I'm not really qualified to comment sensibly, but getting a different result while trying to reproduce an error message seems strange. Should the retrying be part of the actual instantiation? |
…orward reference in Tuple.opAssign The "error reproduction instantiation" might succeed to finish semantic analysis by the forward reference resolution. When it happens, the cached error instance needs to be overridden by the succeeded instance.
Thanks for your understanding and question. In short, the two instantiations are not exactly same things. (Sorry my old comment was not good.) |
|
Thanks for explanations. I agree that caching the successful result is an improvement, and I'm going to merge this if there are no other objections. This compiles, but if you insert the static assert in the third line, you get an error |
|
Auto-merge toggled on |
Oh, that's brilliant small snippet. That's just an opposite pattern of issue 14541. Could you please file the issue in bugzilla in order not to forget it. |
|
|
Thanks! |
|
Not sure why the auto-merge was disabled, retrying... |
|
Auto-merge toggled on |
Issue 14541 - "duplicate COMDAT" linker error with the template forward reference in Tuple.opAssign
|
Oh, I didn't notice that... thanks again. |
Issue 14541 - "duplicate COMDAT" linker error with the template forward reference in Tuple.opAssign
Issue 14541 - "duplicate COMDAT" linker error with the template forward reference in Tuple.opAssign
Issue 14541 - "duplicate COMDAT" linker error with the template forward reference in Tuple.opAssign
Issue 14541 - "duplicate COMDAT" linker error with the template forward reference in Tuple.opAssign
Issue 14541 - "duplicate COMDAT" linker error with the template forward reference in Tuple.opAssign
Issue 14541 - "duplicate COMDAT" linker error with the template forward reference in Tuple.opAssign
Issue 14541 - "duplicate COMDAT" linker error with the template forward reference in Tuple.opAssign
https://issues.dlang.org/show_bug.cgi?id=14541
The "error reproduction instantiation" might succeed to finish semantic analysis by the forward reference resolution. When it happens, the cached error instance needs to be overridden by the succeeded instance.