On Sat, Sep 7, 2024, at 05:17, Juliette Reinders Folmer wrote:
> On 6-9-2024 20:41, Rob Landers wrote:
>> - This RFC expands the "use ... as ..." syntax to allow any type expression on
>> the left side. These aliases are PER FILE and expire once the file is compiled.
>>
>
> Explicitly without expressing any opinion about the RFC, I'd just like to remind you that
> use...
import statements for classes and such are not actually per file, but per
> namespace and making the use ...
statements for types behave differently would be very
> inconsistent and surprising behaviour.
>
> These are the rules (as far as I know and based on extensive testing from my side):
> * No namespace - use
imports apply to whole file.
> * Curly brace scoped namespace - use
imports apply only to the code within the
> current namespace scope.
> * Single unscoped namespace - use
imports apply to whole file (as the whole file
> is within the single unscope namespace)
> * Multiple unscoped namespaces - use
imports apply only until the next namespace
> declaration is encountered.
>
> Having type use
behave differently to other import use
statements
> would, I imagine, also bring up problems around "file contains 2 scoped namespaces, type use is
> for the file, but - as things currently are - no code is allowed in the file outside the scoped
> namespaces, so where to place the import for the type ? and what would it then apply to ?"
>
> Smile,
> Juliette
Thanks Juliette,
I meant "as they are now" and not literally "per file" as described in the RFC.
I will make that more clear in the RFC. When I wrote it, I was thinking in terms of how I usually
write namespaced code and thought of it as "per file" but that is probably the wrong
mental model in any case. Thanks again for pointing this out.
— Rob