Tags:
- 💥 [Breaking Change]
- 👓 [Spec Compliance]
- 🚀 [New Feature]
- 🐛 [Bug Fix]
- 📝 [Documentation]
- 🏠 [Internal]
- 💅 [Polish]
- 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
-
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
- 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
meansawait (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 bracedcases
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
- Functions with consecutive dots now print as multiple arrow functions like in JavaScript.
- 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
- 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.
- Fix parsing of poly-var typexpr consisting of one tag-spec-first in #254
- Implement new syntax for guards on pattern match cases in #248
- Implement intelligent breaking for poly-var type expressions in #246
- Improve indentation of fast pipe chain in let binding in #244
- Improve printing of non-callback arguments in call expressions with callback in #241
- Fix printing of constrained expressions in rhs of js objects #240
- Improve printing of trailing comments under lhs of "pipe" expression in #329
- Improve printing of jsx children and props with leading line comment in #236
- Improve conversion of quoted strings from Reason in #238
- Print attributes/extension without bs prefix where possible in #230
- Cleanup gentype attribute printing fe05e1051aa94b16f6993ddc5ba9651f89e86907
- Implement light weight syntax for poly-variants f84c5760b3f743f65e934195c87fc06bf88bff75
- Fix bug in fast pipe conversion from Reason. 3d5f2daba5418b821c577ba03e2de1afb0dd66de
- Improve parsed AST when tilde is missing in arrow expr parameters. e52a0c89ac39b578a2062ef15fae2be625962e1f
- Improve parser diagnostics for missing tilde in labeled parameters. a0d7689d5d2bfc31dc251e966ac33a3001200171
- Improve printing of uncurried application with a huggable expression in c8767215186982e171fe9f9101d518150a65f0d7
- Improve printing of uncurried arrow typexpr outcome printer in 4d953b668cf47358deccb8b730566f24de25b9ee
- Remove support for nativeint syntax in 72d9b7034fc28f317672c94994b322bee520acca
- Improve printing of poly variant typexprs with attributes in bf6561b
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