feat(lang): a module's private names are its own
A private function, var or const no longer collides with the same spelling in another module, in no module or in the runtime: where two meet, each private one is renamed for its module (seed$shop), with every reference its module writes that no local shadows. Exported names stay one namespace. Nothing is renamed without a clash. Reseed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
c9dc592dcc
commit
a09b622a1d
14 changed files with 49752 additions and 44752 deletions
8
changes/private-per-module.md
Normal file
8
changes/private-per-module.md
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
bump: minor
|
||||
type: feature
|
||||
**A module's private names are its own.** A function, var or const a module does not export no
|
||||
longer collides with the same spelling in another module, in a file in no module or in the
|
||||
runtime: each private one is compiled under its module's name (`seed$shop`) and its module's
|
||||
references follow it. Exported names are still one namespace, and two exports of one name are
|
||||
still refused. Records and events still share one namespace. A program with no such clash compiles
|
||||
exactly as before.
|
||||
Loading…
Add table
Add a link
Reference in a new issue