On Sat, 04 Sep 2010 22:05:05 +0400, dsimcha <dsim...@yahoo.com> wrote:
I noticed that the following code compiles even in SafeD. Is this a
bug? If
not, what are the semantics of casting unshared to shared? TDPL doesn't
seem
to mention this. Isn't it dangerous to have shared and unshared
references to
the same memory?
@safe:
class Foo {
uint num;
}
void main() {
auto foo = new Foo;
auto bar = cast(shared) foo;
}
I loved the recent clone() idea. I think it might be better to disable
casting to (and from) shared (and immutable) and make a (deep?) copy of an
object instead. This will make sure that the isn't any dangling reference
left. I strongly believe dangling references could become a major source
of bugs which might be hard to find and fix.