Semantic Diff

#9052 Remove stdlib APIs deprecated in v12

4 commits

230405f3663725799120d75be576018b4967754f..pr-9052

bf4e2c502 · cknitt + Claude · Oct 26, 2026, 09:57 UTC

Remove stdlib APIs deprecated in v12

Why

v12 deprecated these APIs with migration templates, so v13 can drop them. List.has and the Error and Exn modules are deprecated in 12.3.2 (#8807) and go as well. Reanalyze, gentype and completion no longer name the removed modules.

Review

  • Why does lam_analysis lose its Lazy.from_fun case? That case treated a call to the removed Lazy.from_fun as free of side effects; no program can call it any more.
9ef4fe269 · cknitt + Claude · Oct 26, 2026, 09:57 UTC

Replace the stdlib migration fixtures with a self-contained one

The StdlibMigration_* fixtures exercised the templates of the removed stdlib APIs. DeprecatedTemplates declares the same template shapes locally, so the migration tool keeps its coverage.

fd9924f23 · cknitt + Claude · Oct 26, 2026, 09:57 UTC

Migrate tests to the replacement APIs

Tests and fixtures that used the removed APIs now use the replacements their migration templates name; snapshots are regenerated.

7b0ea27fa · cknitt + Claude · Oct 26, 2026, 10:10 UTC

Patch the test repo's bindings for the removed stdlib APIs

rescript-nodejs 17.0.0 and rescript-bun 2.1.0, the latest releases, call failwith and catch Exn.Error, so the rewatch test repo stopped compiling. Yarn patches replace them with throw(Failure(...)) and JsExn, which v12 accepts as well.