diff --git a/CHANGELOG.md b/CHANGELOG.md index efcd681611..2693e3de7f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,9 @@ # 11.0.0-beta.1 (Unreleased) +#### :rocket: Main New Feature +- Make uncurried mode opt-out: by default, every project is now in uncurried mode, unless `"uncurried": false` is specified in the project config. https://github.com/rescript-lang/rescript-compiler/pull/6249 + # 11.0.0-alpha.6 #### :boom: Breaking Change diff --git a/jscomp/bsb/bsb_config_parse.ml b/jscomp/bsb/bsb_config_parse.ml index 2ea53deb4c..0ef2c2da33 100644 --- a/jscomp/bsb/bsb_config_parse.ml +++ b/jscomp/bsb/bsb_config_parse.ml @@ -97,7 +97,7 @@ let extract_gentype_config (map : json_map) : Bsb_config_types.gentype_config = let extract_uncurried (map : json_map) : bool = match map.?(Bsb_build_schemas.uncurried) with - | None -> false + | None -> true | Some (True _) -> true | Some (False _) -> false | Some config -> diff --git a/jscomp/build_tests/react_ppx/src/gpr_3987_test.bs.js b/jscomp/build_tests/react_ppx/src/gpr_3987_test.bs.js index 3a70b78ea1..9144226068 100644 --- a/jscomp/build_tests/react_ppx/src/gpr_3987_test.bs.js +++ b/jscomp/build_tests/react_ppx/src/gpr_3987_test.bs.js @@ -1,20 +1,19 @@ // Generated by ReScript, PLEASE EDIT WITH CARE 'use strict'; -var Curry = require("rescript/lib/js/curry.js"); var React = require("react"); function makeContainer(text) { - var container = Curry._1(document.createElement, "div"); + var container = document.createElement("div"); container.className = "container"; - var title = Curry._1(document.createElement, "div"); + var title = document.createElement("div"); title.className = "containerTitle"; title.innerText = text; - var content = Curry._1(document.createElement, "div"); + var content = document.createElement("div"); content.className = "containerContent"; - Curry._1(container.appendChild, title); - Curry._1(container.appendChild, content); - Curry._1(document.body.appendChild, container); + container.appendChild(title); + container.appendChild(content); + document.body.appendChild(container); return content; } diff --git a/jscomp/build_tests/react_ppx/src/recursive_component_test.bs.js b/jscomp/build_tests/react_ppx/src/recursive_component_test.bs.js index b34928e920..860ce62165 100644 --- a/jscomp/build_tests/react_ppx/src/recursive_component_test.bs.js +++ b/jscomp/build_tests/react_ppx/src/recursive_component_test.bs.js @@ -1,7 +1,6 @@ // Generated by ReScript, PLEASE EDIT WITH CARE 'use strict'; -var Curry = require("rescript/lib/js/curry.js"); var React = require("react"); function make(Props) { @@ -12,7 +11,7 @@ function make(Props) { } function mm(x) { - return Curry._1(make$1, { + return make$1({ b: !x.b }); } diff --git a/jscomp/syntax/src/res_multi_printer.ml b/jscomp/syntax/src/res_multi_printer.ml index 551ab5bbf3..d419db1c8b 100644 --- a/jscomp/syntax/src/res_multi_printer.ml +++ b/jscomp/syntax/src/res_multi_printer.ml @@ -1,7 +1,7 @@ let defaultPrintWidth = 100 (* Determine if the file is in uncurried mode by looking for - the fist ancestor .bsconfig and see if it contains "uncurried": true *) + the fist ancestor .bsconfig and see if it contains "uncurried": false *) let getUncurriedFromBsconfig ~filename = let rec findBsconfig ~dir = let bsconfig = Filename.concat dir "bsconfig.json" in @@ -42,18 +42,19 @@ let getUncurriedFromBsconfig ~filename = lines |> List.exists (fun line -> let uncurried = ref false in - let true_ = ref false in + let false_ = ref false in let words = line |> String.split_on_char ' ' in words |> List.iter (fun word -> match word with | "\"uncurried\"" | "\"uncurried\":" -> uncurried := true - | "\"uncurried\":true" | "\"uncurried\":true," -> + | "\"uncurried\":false" | "\"uncurried\":false," -> uncurried := true; - true_ := true - | "true" | ":true" | "true," | ":true," -> true_ := true + false_ := true + | "false" | ":false" | "false," | ":false," -> + false_ := true | _ -> ()); - !uncurried && !true_) + not (!uncurried && !false_)) in if uncurried then Config.uncurried := Uncurried