13.0.0-alpha.5
Pre-release
Pre-release
💥 Breaking Change
- Make
Jsx.componentabstract. #8390 - Drop Node.js version 20.x support, as it is reaching EOL. #8401
- Remove the
@taggedTemplatedecorator in favor of the new first-classtaggedTemplate<'param, 'output>builtin type. Using the decorator, or backtick tagged-template syntax on a value that is not ataggedTemplate, is now a compile error pointing to the new binding form. #8461
🚀 New Feature
- Add a first-class
taggedTemplate<'param, 'output>builtin type and theTaggedTemplatestdlib module (TaggedTemplate.make). Tagged-template tags are now tracked through the type system, so they emit real JS tagged-template syntax across module boundaries, when passed as first-class values, and when constructed at runtime by a factory (e.g.postgres). #8461 - Make mutation of private record mutable fields a configurable warning instead of a hard error. #8366
- Add support for pattern matching/destructuring of record rest. #8317
🐛 Bug fix
- Fix directive
@warning("-102")not working. #8322 - Fix duplicated comments in
for..offormatter. #8395 - Fix issue where warning 56 would blow up with
dict{}patterns. #8403 - Rewatch build lock fixes. #8409 #8410 #8413 #8424
- Rewatch: treat transitive workspace dependencies as local packages in monorepo roots. #8411
- Rewatch: use a single timestamp per compile pass. #8428
- Fix rewatch warning replay after early compile errors. #8408
- Fix formatting of trailing comments before
=in let bindings. #8444 - Fix analysis namespace parsing after the Yojson migration. #8454
- Fix namespaced reference lookup in editor analysis. #8455
- Fix analysis segmentation fault for references after #7887. #8477
- Fix build crash when the compiler emits output that is not valid UTF-8, such as a truncated multibyte character in a code frame. #8482
- Fix unnecessary boxing of
Some(React.component). #8500 - Fix GenType React element output to support React 19 typedefs. #8501
💅 Polish
- Consolidate record mutation output into a single spread object literal. #8473
- Improve default argument type mismatch errors. #8389
- Resolve workspace dependencies in editor analysis. #8392
- Build system: Add OpenTelemetry tracing support for cli commands. #8370
- Use a single vendored @rescript/react package across the repo. #7525
- Improve deprecated attribute extraction and support record form. #8396
- Refactor analysis to decouple I/O from core logic. #8426
- Deprecate
Stdlib_ErrorandStdlib_Exnmodules in favor ofJsError/JsExn. #8404 - Remove vendored
Jsonlibrary and useyojsonandlsplibrary for analysis. #8436 - Improve clarity of various error and warning messages. #8460
🏠 Internal
- Remove
Primitive_option.toUndefined; usevalFromOptionfor optional ffi args. #8380 - Add a developer playground for testing the current compiler bundle locally and deploy the latest
masterbuild to GitHub Pages. #8435 - Expand
super_errorsfixture coverage for warnings and errors. #8429 - Run
super_errorsfixtures in parallel (~2.4× faster locally). #8430 - Expand
super_errorsfixture coverage for the remaining reachable single-file error variants. #8432 - Cache OPAM env, rewatch build, and instrumented dune state in the coverage workflow. #8434
- Add a multi-file fixture harness (
super_errors_multi) for cross-module errors and warnings. #8433 - Catalog every named compiler error variant in
tests/ERROR_VARIANTS.mdand add fixtures for the remaining reachable ones. #8446 - Remove dead and unreachable compiler error and warning variants; add fixtures for the ones found to be reachable. #8459
- Convert OCaml codebase to snake case format. #8456
- Analysis refactor: remove global state
Shared_types.state. #8465 - Refactor analysis CLI helpers to use source input. #8466
- Include syntax, gentype, analysis, tools, and reanalyze tests in coverage reports. #8467
- Remove the unreachable
Longident.Lapplyconstructor (OCaml's applicative-functor path syntaxF(X).t, which ReScript's grammar cannot produce). #8469 - Refactor analysis for server side use. #8478
- Remove unused files. #8481
- Remove the dead
Sig_class/Sig_class_typesignature variants (OCaml class items, which ReScript cannot produce). #8470