Skip to content
This repository has been archived by the owner on Jun 15, 2023. It is now read-only.

Latest commit

 

History

History
115 lines (93 loc) · 9.85 KB

CHANGELOG.md

File metadata and controls

115 lines (93 loc) · 9.85 KB

Master

Tags:

  • 💥 [Breaking Change]
  • 👓 [Spec Compliance]
  • 🚀 [New Feature]
  • 🐛 [Bug Fix]
  • 📝 [Documentation]
  • 🏠 [Internal]
  • 💅 [Polish]

💥 Breaking Change

  • Emit an error when a @string or @int attribute is used in a V4 component rescript-lang/rescript#5724
  • Parse the attributes of labelled argument to the pattern attributes of argument instead of function. #722

🚀 New Feature

  • Add surface syntax for async/await #600

  • Initial support for JSX V4, still work in progress.

    • 💥 when V4 is activated, at most one component is allowed for each module.
  • Add support for empty record literal {} for records with only optional fields, and type definition of empty record (e.g. type empty = {}) #632

  • Support the use of spread anywhere in list creation (e.g. `list{...x, 1, ...y, ...z}). #692

  • Add support for the argument of @react.component to set a props type from the outside. #699

🐛 Bug Fix

  • Fix issue in formatting JSX spread props #644
  • Fix pretty printer where it would print doc comments on the same line as other attributes #642
  • Fix location issue in error messages with JSX V4 where the body of the component is an application #633
  • Fix issue where the printer would omit attributes for -> and |> #629
  • Fix printing of optional fields in records rescript-lang/rescript#5654
  • Fix printing of comments inside empty blocks #647
  • Fix location issue in error messages with JSX V4 where the multiple props types are defined #655
  • Fix location issue in make function in JSX V4 that breaks dead code elimination #660
  • Fix parsing (hence pretty printing) of expressions with underscore _ and comments.
  • Fix printing of comments inside JSX tag #664
  • Fix issue where formatter erases tail comments inside JSX tag #663
  • Fix issue where the JSX prop has type annotation of the first class module #666
  • Fix issue where a spread ...x in non-last position would not be reported as syntax error #673
  • Fix issue where the formatter would delete async in a function with labelled arguments.
  • Fix several printing issues with async including an infinite loop #680
  • Fix issue where certain JSX expressions would be formatted differenctly in compiler 10.1.0-rc.1 #675
  • Fix issue where printing nested pipe discards await #687
  • Fix issue where the JSX key type is not an optional string #693
  • Fix issue where the JSX fragment without children build error #704
  • Fix issue where async as an id cannot be used with application and labelled arguments #707
  • Treat await as almost-unary operator weaker than pipe so await foo->bar means await (foo->bar) #711
  • Fix build error where aliasing arguments to _ in the make function with JSX V4. #720
  • Fix parsing of spread props as an expression in JSX V4 #721
  • Fix dropping attributes from props in make function in JSX V4 #723
  • Fix an issue where error messages related to duplicate props were displayed without a loc and were unclear #728
  • Fix issue where error messages related to non-existent props were displayed without location information #730
  • Fix issue where uncurried functions were incorrectly converting the type of a prop given as a default value to curried #731
  • Fix issue with printing async functions with locally abstract types #732
  • Fix support for recursive components in JSX V4 #733
  • Fix issue with overlapping labelled argument with default value #734
  • Fix issue with using alias and default value together #734
  • Fix formatting of switch expressions that contain braced cases inside #735
  • Fix formatting of props spread for multiline JSX expression #736
  • Fix issue with JSX V4 and newtype #737
  • Fix issue with JSX V4 when components are nested #738
  • Improve code generated for default arguments in JSX V4 #739
  • Fix issue with JSX V4 props of the form ~p as module(...) #739

👓 Spec Compliance

  • Functions with consecutive dots now print as multiple arrow functions like in JavaScript.

:nail_care Polish

  • Change the internal representation of props for the lowercase components to record. #665
  • Change the payload of Pconst_char for type safety. rescript-lang/rescript#5759
  • Specialize the printing of the rhs of a record field assignment for optional values {x: ? e} #714

ReScript 10.0

  • Fix printing for inline nullary functor types #477
  • Fix stripping of quotes for empty poly variants #474
  • Implement syntax for arity zero vs arity one in uncurried application in #139
  • Fix parsing of first class module exprs as part of binary/ternary expr in #256
  • Fix formatter hanging on deeply nested function calls #261
  • Remove parsing of "import" and "export" which was never officially supported.

ReScript 9.0.0

ReScript 8.4.2 (December 11, 2020)

Released in https://github.com/rescript-lang/syntax/releases/tag/v8.4.2 as part of https://github.com/rescript-lang/rescript-compiler/releases/tag/8.4.2