fix(lang): a function named like an engine namespace method's target is refused
Random.range is rng_range, so a package's own rng_range(a, b, c) took every Random.range call silently. Where the program calls such a method and the target resolves to a function of its own, the function is refused, naming the namespace method and the call. Reseed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
31d842fca4
commit
73129b59d5
8 changed files with 13668 additions and 13100 deletions
|
|
@ -767,6 +767,7 @@ function cmd_dev_test() -> int {
|
|||
feat_case("events/answer", "", "10 20 0", "answer.ludic (a listener's return ends that listener, not the dispatch)")
|
||||
reject_case("rejected/duplicate_const", "'KEY_LEFT' is defined twice", "a const defined twice is refused, naming both places")
|
||||
reject_case("rejected/duplicate_property", "'Look' is defined twice", "a property defined twice is refused")
|
||||
reject_case("rejected/engine_alias_name", "rng_range is the engine's Random.range, which this program calls", "a function named like an engine namespace method's target is refused where that method is called")
|
||||
reject_case("rejected/builtin_name", "run is a built-in of the compiler", "a function named like a compiler built-in (run, exit, free...) is refused")
|
||||
reject_case("rejected/redeclared_local", "'v0' is declared twice in this block", "a local declared twice in one block is refused")
|
||||
reject_case("rejected/missing_return", "can reach its end without returning", "a function that can run off its end without its result is refused")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue