Disable the local keyword in typing#540
Conversation
gretay-js
left a comment
There was a problem hiding this comment.
I don't know anything about typing, but as far as this change goes, all it does is raise in a few places if Clflags.Extension.(is_enabled local) is false and a local attribute or extension is encountered, so it looks fine to me.
|
I am certainly out of my depth here, but there are occurrences It is also not clear to me whether something should be done |
It will. These three are in ancillary code that checks side-conditions (whether a function is annotated with
Nothing! It's not a user-visible feature, it exists only temporarily during typechecking as a workaround for tricky compilation behaviour of optional arguments. |
|
Sorry, unrelated to this diff but maybe we can sneak it in. |
cef4d42 to
61be403
Compare
64235a3 flambda-backend: Change Float.nan from sNaN to qNaN (oxcaml#466) 14a8e27 flambda-backend: Track GC work for all managed bigarray allocations (upstream 11022) (oxcaml#569) c3cda96 flambda-backend: Add two new methods to targetint for dwarf (oxcaml#560) e6f1fed flambda-backend: Handle arithmetic overflow in select_addr (oxcaml#570) dab7209 flambda-backend: Add Target_system to ocaml/utils (oxcaml#542) 82d5044 flambda-backend: Enhance numbers.ml with more primitive types (oxcaml#544) 216be99 flambda-backend: Fix flambda_o3 and flambda_oclassic attributes (oxcaml#536) 4b56e07 flambda-backend: Test naked pointer root handling (oxcaml#550) 40d69ce flambda-backend: Stop local function optimisation from moving code into function bodies; opaque_identity fixes for class compilation (oxcaml#537) f08ae58 flambda-backend: Implemented inlining history and use it inside inlining reports (oxcaml#365) ac496bf flambda-backend: Disable the local keyword in typing (oxcaml#540) 7d46712 flambda-backend: Bugfix for Typedtree generation of arrow types (oxcaml#539) 61a7b47 flambda-backend: Insert missing page table check in roots_nat.c (oxcaml#541) 323bd36 flambda-backend: Compiler error when -disable-all-extensions and -extension are used (oxcaml#534) d8956b0 flambda-backend: Persistent environment and reproducibility (oxcaml#533) 4a0c89f flambda-backend: Revert "Revert bswap PRs (480 and 482)" (oxcaml#506) 7803705 flambda-backend: Cause a C warning when CAMLreturn is missing in C stubs. (oxcaml#376) 6199db5 flambda-backend: Improve unboxing during cmm for Flambda (oxcaml#295) 96b9e1b flambda-backend: Print diagnostics at runtime for Invalid (oxcaml#530) 42ab88e flambda-backend: Disable bytecode compilers in ocamltest (oxcaml#504) 58c72d5 flambda-backend: Backport ocaml/ocaml#10595 from upstream/trunk (oxcaml#471) 1010539 flambda-backend: Use C++ name mangling convention (oxcaml#483) 81881bb flambda-backend: Local allocation test no longer relies on lifting (oxcaml#525) f5c4719 flambda-backend: Fix an assertion in Closure that breaks probes (oxcaml#505) c2cf2b2 flambda-backend: Add some missing command line arguments to ocamlnat (oxcaml#499) git-subtree-dir: ocaml git-subtree-split: 64235a3
64235a3 flambda-backend: Change Float.nan from sNaN to qNaN (#466) 14a8e27 flambda-backend: Track GC work for all managed bigarray allocations (upstream 11022) (#569) c3cda96 flambda-backend: Add two new methods to targetint for dwarf (#560) e6f1fed flambda-backend: Handle arithmetic overflow in select_addr (#570) dab7209 flambda-backend: Add Target_system to ocaml/utils (#542) 82d5044 flambda-backend: Enhance numbers.ml with more primitive types (#544) 216be99 flambda-backend: Fix flambda_o3 and flambda_oclassic attributes (#536) 4b56e07 flambda-backend: Test naked pointer root handling (#550) 40d69ce flambda-backend: Stop local function optimisation from moving code into function bodies; opaque_identity fixes for class compilation (#537) f08ae58 flambda-backend: Implemented inlining history and use it inside inlining reports (#365) ac496bf flambda-backend: Disable the local keyword in typing (#540) 7d46712 flambda-backend: Bugfix for Typedtree generation of arrow types (#539) 61a7b47 flambda-backend: Insert missing page table check in roots_nat.c (#541) 323bd36 flambda-backend: Compiler error when -disable-all-extensions and -extension are used (#534) d8956b0 flambda-backend: Persistent environment and reproducibility (#533) 4a0c89f flambda-backend: Revert "Revert bswap PRs (480 and 482)" (#506) 7803705 flambda-backend: Cause a C warning when CAMLreturn is missing in C stubs. (#376) 6199db5 flambda-backend: Improve unboxing during cmm for Flambda (#295) 96b9e1b flambda-backend: Print diagnostics at runtime for Invalid (#530) 42ab88e flambda-backend: Disable bytecode compilers in ocamltest (#504) 58c72d5 flambda-backend: Backport ocaml/ocaml#10595 from upstream/trunk (#471) 1010539 flambda-backend: Use C++ name mangling convention (#483) 81881bb flambda-backend: Local allocation test no longer relies on lifting (#525) f5c4719 flambda-backend: Fix an assertion in Closure that breaks probes (#505) c2cf2b2 flambda-backend: Add some missing command line arguments to ocamlnat (#499) git-subtree-dir: ocaml git-subtree-split: 64235a3
If the
local_keyword somehow sneaks into the parsetree even with the extension disabled (e.g. because the parsing occured in a ppx), then the typechecker should nonetheless reject uses of it.Tested manually with a temporarily hacked lexer that lets the keyword through always, example output: