On Tuesday, 13 July 2021 at 02:22:46 UTC, Mike Parker wrote:
On Tuesday, 13 July 2021 at 01:03:11 UTC, someone wrote:

Being *local* to ... ain't imply visibility too regardless scope not being a visibility attribute ? I mean, scope is restricting the variable to be leaked outside the function/whatever and to me it seems like restricted to be seen from the outside.

And I meant to add... local variables are by default visible only inside the scope in which they are declared and, by extension, any inner scopes within that scope, and can never be visible outside.

```d
{
    // Scope A
    // x can never be visible here
    {
        // Scope B
        int x;
        {
            // Scope C
            // x is visible here
        }
    }
}
```

The only possible use for your concept of scope applying to visibility would be to prevent x from being visible in in Scope C. But since we already have the private attribute, it would make more sense to use that instead, e.g., `private int x` would not be visible in scope C.

I don't know of any language that has that kind of feature, or if it would even be useful. But at any rate, there's no need for a visibility attribute to prevent outer scopes from seeing a local variable, as that's already impossible.

Reply via email to