[Issue 13216] Failed anti-hijacking of with statement
    d-bugmail at puremagic.com 
    d-bugmail at puremagic.com
       
    Mon Nov  9 01:38:04 UTC 2020
    
    
  
https://issues.dlang.org/show_bug.cgi?id=13216
Mathias LANG <pro.mathias.lang at gmail.com> changed:
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
                 CC|                            |pro.mathias.lang at gmail.com
         Resolution|---                         |INVALID
--- Comment #1 from Mathias LANG <pro.mathias.lang at gmail.com> ---
This works as intended. I think you are confusing two notions: hijacking and
shadowing. We prevent hijacking by making sure a change in a different module
will not suddenly change the symbol being called, but keep the same behavior or
result in an error. There's no hijacking protection within a module itself.
However we have shadowing protection. We make sure not to allow a more nested
scope to override a scope name from an outer scope, as long as this outer scope
is in the same function.
However, `with`'s whole point is to bypass this. An object used in a `with`
clause will be searched first for this scope. Erroring on shadowing would
render the feature completely useless and unreliable.
--
    
    
More information about the Digitalmars-d-bugs
mailing list