[Issue 19279] mutable does not promote to shared
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Mon Oct 1 05:32:29 UTC 2018
https://issues.dlang.org/show_bug.cgi?id=19279
--- Comment #1 from Manu <turkeyman at gmail.com> ---
Conversation: https://github.com/dlang/dmd/pull/8782
Reveals that `scope` is also necessary to guarantee that the promoted reference
does not escape.
Promotion is safe so long as no promoted-reference outlives the call where the
instance was promoted.
struct Bob
{
void setThing() shared scope;
}
void f(ref shared Bob a, ref Bob b)
{
a.setThing(); // I have a shared object, can call shared method
b.setThing(); // this should work with `scope`
}
--
More information about the Digitalmars-d-bugs
mailing list