Skip to content

13.0.0-alpha.5

Pre-release
Pre-release

Choose a tag to compare

@cknitt cknitt released this 10 Jul 07:27
3a9e5aa

💥 Breaking Change

  • Make Jsx.component abstract. #8390
  • Drop Node.js version 20.x support, as it is reaching EOL. #8401
  • Remove the @taggedTemplate decorator in favor of the new first-class taggedTemplate<'param, 'output> builtin type. Using the decorator, or backtick tagged-template syntax on a value that is not a taggedTemplate, is now a compile error pointing to the new binding form. #8461

🚀 New Feature

  • Add a first-class taggedTemplate<'param, 'output> builtin type and the TaggedTemplate stdlib 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..of formatter. #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_Error and Stdlib_Exn modules in favor of JsError/JsExn. #8404
  • Remove vendored Json library and use yojson and lsp library for analysis. #8436
  • Improve clarity of various error and warning messages. #8460

🏠 Internal

  • Remove Primitive_option.toUndefined; use valFromOption for optional ffi args. #8380
  • Add a developer playground for testing the current compiler bundle locally and deploy the latest master build to GitHub Pages. #8435
  • Expand super_errors fixture coverage for warnings and errors. #8429
  • Run super_errors fixtures in parallel (~2.4× faster locally). #8430
  • Expand super_errors fixture 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.md and 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.Lapply constructor (OCaml's applicative-functor path syntax F(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_type signature variants (OCaml class items, which ReScript cannot produce). #8470