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
|
|
@ -203,6 +203,7 @@ entry {
|
|||
else { g_windowed = has_target and has_systems() }
|
||||
|
||||
g_parsing = false # lowering errors now locate by statement, not token
|
||||
privates_rename() # L3: a module's private names are its own (privates.ludic)
|
||||
check_duplicate_fns() # two declarations of one name: the cause, before its symptoms
|
||||
check_duplicate_decls()
|
||||
check_program() # L4: the types agree before anything is emitted
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue