[Issue 24574] Scope not inferred on this parameter
    d-bugmail at puremagic.com 
    d-bugmail at puremagic.com
       
    Thu May 30 13:50:42 UTC 2024
    
    
  
https://issues.dlang.org/show_bug.cgi?id=24574
Dennis <dkorpel at live.nl> changed:
           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |safe
                 CC|                            |dkorpel at live.nl
           Hardware|x86_64                      |All
                 OS|Linux                       |All
--- Comment #1 from Dennis <dkorpel at live.nl> ---
I think both calls should fail to compile, because they can escape through
self-assignment:
```D
struct A
{
    A* p;
    @safe nothrow pure void f()
    {
        this.p.p = p;
    }
} 
@trusted nothrow pure void g(ref A a)
{
    a.p.p = a.p;
}
@safe void e(ref scope A a)
{
    a.f();  // (1)
    g(a);   // (2)
}
```
--
    
    
More information about the Digitalmars-d-bugs
mailing list