Null references redux
Nick Sabalausky
a at a.a
Mon Sep 28 01:14:23 PDT 2009
"Jeremie Pelletier" <jeremiep at gmail.com> wrote in message
news:h9mmre$1i8j$1 at digitalmars.com...
> Ary Borenszweig wrote:
>>
>> Object is not-nullable, Object? (or whatever syntax you like) is
>> nullable. So that line is a compile-time error: you can't cast a null to
>> an Object (because Object *can't* be null).
>>
>
> union A {
> Object foo;
> Object? bar;
> }
>
> Give me a type system, and I will find backdoors :)
>
Unions are nothing more than an alternate syntax for a reinterpret cast. And
it's an arguably worse syntax because unlike casts, uses of it are
indistinguishable from normal safe code, there's nothing to grep for. As
such, unions should never be considered any more safe than cast(x)y. The
following is just as dangerous as your example above and doesn't even touch
the issue of nullability/non-nulability:
union A {
int foo;
float bar;
}
More information about the Digitalmars-d
mailing list