You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Treat uncurried application of primitives like curried application
Primitives are treated specially in the type checker, so that when fully applied, no function is generated.
With uncurried application, primitives are wrapped with eta expansion before being used, because the encoding via `Js.Internal.opaqueFullApply` disables the special treatment by the type checker.
This PR treats uncurried application of primitives like curried application, to help `Lam` compilation produce better code instead of leaving eta-expanded functions in the output.
Copy file name to clipboardexpand all lines: CHANGELOG.md
+1
Original file line number
Diff line number
Diff line change
@@ -54,6 +54,7 @@ These are only breaking changes for unformatted code.
54
54
- Remove method application via operator `##`, which does not exist in `.res` syntax https://github.com/rescript-lang/rescript-compiler/pull/5844
55
55
- Treat `@meth` annotation as making the type uncurried for backwards compatibitly with some examples https://github.com/rescript-lang/rescript-compiler/pull/5845
56
56
- Process `@set` annotation for field update as generating an uncurried function https://github.com/rescript-lang/rescript-compiler/pull/5846
57
+
- Treat uncurried application of primitives like curried application, which produces better output https://github.com/rescript-lang/rescript-compiler/pull/5851
0 commit comments