https://issues.dlang.org/show_bug.cgi?id=13216

Mathias LANG <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
                 CC|                            |[email protected]
         Resolution|---                         |INVALID

--- Comment #1 from Mathias LANG <[email protected]> ---
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.

--

Reply via email to