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

Reply via email to