As an example, take any property in core.time - say @property long weeks() const pure nothrow { return get!"weeks"(); } Now make it return auto instead of long. Rebuild druntime, and time.di will have this for weeks: auto @property const pure nothrow @property weeks() { return get!("weeks")(); } Notice that @property is doubled. This will cause compilation errors for Phobos such as ../druntime/import/core/time.di(136): redundant storage class identifier However, if you change it back to long, you get @property const pure nothrow long weeks() { return get!("weeks")(); } So, @property and auto are not getting along when .di files are generated.
https://github.com/D-Programming-Language/dmd/pull/404
https://github.com/D-Programming-Language/dmd/commit/15f54382fb89671c1c640d8b7c11da3b3b923aa1