On 2/2/2015 8:36 PM, Daniel Murphy wrote:
The user can modify the code to allow it to be inlined. There are a huge number
of constructs that cause dmd's inliner to completely give up. If a function
_must_ be inlined, the compiler needs to give an error if it fails.
A separate message with a pragmatic difficulty with your suggestion.
Different compilers will have different inlining capabilities. Different
versions of the same compiler may behave differently. This means that sometimes
a user may get a compilation failure, sometimes not. It's highly brittle.
So enter the workaround code. Different compilers and different versions will
require different workaround code. Is this really reasonable for users to put up
with? And will they really want to be running the workaround code when they
upgrade the compiler and now it could have inlined it?