assigment to null class object member compiled? is this a bug?
Alex
sascha.orlov at gmail.com
Mon Oct 22 15:51:03 UTC 2018
On Monday, 22 October 2018 at 01:39:48 UTC, dangbinghoo wrote:
> On Friday, 19 October 2018 at 09:08:32 UTC, Vijay Nayar wrote:
>> Technically the code you have is syntactically correct. You
>> are permitted to create a class variable without assigning it
>> to a class object. (Assigning it to a class object would look
>> like "A a = new A();")
>>
>> Which section of The D Programming Language book makes you
>> think this would not compile? I have the book as well, but
>> I'm not quite sure what part of the book you're referring to.
>
> the section 6.2, which is
> ---
> A a;
> a.x = 5;
> ---
>
> the book explained this should be refused to compile.
>
>
> thanks!
>
> --
> dangbinghoo
You are wrong, actually:
In the book, site 179 it states:
"If you try to access a non-static member of a reference and the
compiler can prove statically that the reference would definitely
be null, it will refuse to compile the code."
But the compiler is not able to prove that the reference is
definitely null. At least in this case, with compiler, I think of.
That's why it called runtime error.
More information about the Digitalmars-d-learn
mailing list