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

Reply via email to