On Tuesday, 27 October 2015 at 23:15:39 UTC, Tofu Ninja wrote:
On Tuesday, 27 October 2015 at 22:23:15 UTC, bitwise wrote:
[...]
-H also keeps the body of template functions so I would assume
it would treat auto overrides the same.
Well.. It's not going to just work. Dmd will surely have to be
told what to do.
[...]
I think you are correct, there is a scenario where one might
want to provide a header to a class and not include the auto
override body. An alternative solution could be that if you
provide a header to a class and don't include the auto override
body, then the auto override functionality is removed and the
method is treated as a regular method from that point on(with
the most recent version of the method being the one that is
used). This would allow the class to still be inherited later
on.
I have to disagree with this. A function's meaning should not
change because it's definition is removed.
[...]
A.foo() or B.foo() seems to work instead of super.super.foo()
or super.foo()
Ah, ok. I'll take your word for it(on my phone).
I'm wondering if it would be worth it to make a DIP for this. We
could sort out the details and discuss the use and ab-use cases ;)
I myself would be a bit reluctant to start on the DIP right this
second though, as I don't currently have the knowledge/time to
back it with a proof of concept implementation.
Bit