[Issue 17968] [REG 2.073] object initializer omitted when it should be included.
https://issues.dlang.org/show_bug.cgi?id=17968 github-bugzi...@puremagic.com changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --
[Issue 17968] [REG 2.073] object initializer omitted when it should be included.
https://issues.dlang.org/show_bug.cgi?id=17968 --- Comment #6 from github-bugzi...@puremagic.com --- Commits pushed to master at https://github.com/dlang/dmd https://github.com/dlang/dmd/commit/6fefecf21994bab869e2f281a4d2815a6884117a Fix issue 17968 - When generating xtoHash function for a struct, use typeid(const(Object)) for class members instead of the derived type to avoid pulling in ungenerated symbols https://github.com/dlang/dmd/commit/c69c5663d0a035ee1aacc1a1201a6de5ae6c25a4 Merge pull request #8222 from schveiguy/fix17968 Fix issue 17968 - Use typeid(Object) instead of typeid(T) to avoid pulling in unused symbols merged-on-behalf-of: unknown --
[Issue 17968] [REG 2.073] object initializer omitted when it should be included.
https://issues.dlang.org/show_bug.cgi?id=17968 Steven Schveighofferchanged: What|Removed |Added See Also||https://issues.dlang.org/sh ||ow_bug.cgi?id=18833 --
[Issue 17968] [REG 2.073] object initializer omitted when it should be included.
https://issues.dlang.org/show_bug.cgi?id=17968 Steven Schveighofferchanged: What|Removed |Added Keywords||pull --- Comment #5 from Steven Schveighoffer --- PR: https://github.com/dlang/dmd/pull/8222 This does not fix the root cause, I will file a new issue on that. --
[Issue 17968] [REG 2.073] object initializer omitted when it should be included.
https://issues.dlang.org/show_bug.cgi?id=17968 --- Comment #4 from RazvanN--- Also, if IOObject is not templated, the code compiles. --
[Issue 17968] [REG 2.073] object initializer omitted when it should be included.
https://issues.dlang.org/show_bug.cgi?id=17968 Steven Schveighofferchanged: What|Removed |Added CC||razvan.nitu1...@gmail.com --
[Issue 17968] [REG 2.073] object initializer omitted when it should be included.
https://issues.dlang.org/show_bug.cgi?id=17968 --- Comment #3 from Steven Schveighoffer--- Further reduced mod1: module mod1; class IOObject(IO) { } struct BufferedInputSource(Source) { Source dev; } BufferedInputSource!Source bufd(Source)(Source s) { return BufferedInputSource!Source(); } auto openDev(int ) { return new IOObject!int; } --
[Issue 17968] [REG 2.073] object initializer omitted when it should be included.
https://issues.dlang.org/show_bug.cgi?id=17968 Steven Schveighofferchanged: What|Removed |Added Summary|object initializer for auto |[REG 2.073] object |function not included when |initializer omitted when it |seen through 2 libraries|should be included. Severity|normal |regression --- Comment #2 from Steven Schveighoffer --- Used dustmite to reduce, then hand-reduced further. Does not require 2 libs, but it does require the 2 calls into the lib (both openDev and bufd). openDev must return auto. Files are as follows: mod1.d: module mod1; struct File { } class IOObject(IO) { } /// IFTI construction helper for `IOObject` IOObject!IO ioObject(IO)() { return new IOObject!IO; } struct BufferedInputSource(Source) { Source dev; } BufferedInputSource!Source bufd(Source)(Source s) { return BufferedInputSource!Source(); } auto openDev(int ) { return ioObject!File(); } app.d: import mod1; void main() { openDev(0).bufd; } execute these commands: dmd -lib -ofthelib.a mod1.d dmd app.d thelib.a This fails as of 2.073.0. Version 2.072.2 compiles and links. --