On Thursday, 22 March 2018 at 02:35:41 UTC, Adam D. Ruppe wrote:
On Thursday, 22 March 2018 at 01:55:48 UTC, 12345swordy wrote:
Are you suggesting that we need runtime version of system/user
attributes?
We already have that in a sense - InvalidMemoryOperationError
is thrown if you try to GC allocate from inside a GC
destructor. The attributes are supposed to render such runtime
errors impossible, catching them at compile time instead.
That is not a runtime version of system/user attributes! That is
custom checking for destructor! Hardly the same.
All classes are dynamic types
I do not see it anywhere in the dlang specification that
supports your claim.
https://dlang.org/spec/class.html
This is the reason why all D classes have a vtable attached
(with attached runtime type info).
C++ classes also have vtables which are typically implemented as
static arrays at compile time.
Again I do not see it anywhere in the specification that support
your claim that all classes are dynamic. Otherwise if what your
saying is true then you should unable to use classes in Better C
mode, as that involves runtime.
Why can't it produce a warning message regarding implied
classes conversion if it detects mismatch attributes?
The entire purpose of OOP inheritance
I think you do not understand the question that I am asking. I am
not asking to produce an ERROR message here, I am asking to
produce a WARNING message here. We are dealing with the
possibility of mismatch attributes, which seriously can cause
some nasty bugs to leak, without the programmer noticing.