From 928b3f09032c21430935e0cd4476ecd23ef9c73e Mon Sep 17 00:00:00 2001 From: Christoph Knittel Date: Fri, 9 May 2025 09:51:58 +0200 Subject: [PATCH 1/3] Syntax test: reproduce bug --- .../data/printer/typeDef/expected/private.res.txt | 5 +++++ tests/syntax_tests/data/printer/typeDef/private.res | 5 +++++ 2 files changed, 10 insertions(+) create mode 100644 tests/syntax_tests/data/printer/typeDef/expected/private.res.txt create mode 100644 tests/syntax_tests/data/printer/typeDef/private.res diff --git a/tests/syntax_tests/data/printer/typeDef/expected/private.res.txt b/tests/syntax_tests/data/printer/typeDef/expected/private.res.txt new file mode 100644 index 0000000000..44cb90251e --- /dev/null +++ b/tests/syntax_tests/data/printer/typeDef/expected/private.res.txt @@ -0,0 +1,5 @@ +type t1 = {} + +type t2 = private {x: int} + +type t3 = private A | B diff --git a/tests/syntax_tests/data/printer/typeDef/private.res b/tests/syntax_tests/data/printer/typeDef/private.res new file mode 100644 index 0000000000..91b1c53d6e --- /dev/null +++ b/tests/syntax_tests/data/printer/typeDef/private.res @@ -0,0 +1,5 @@ +type t1 = private {} + +type t2 = private {x: int} + +type t3 = private A | B \ No newline at end of file From dca2c0289359f720e1f706ca0628ce226eaa7a83 Mon Sep 17 00:00:00 2001 From: Christoph Knittel Date: Fri, 9 May 2025 09:55:02 +0200 Subject: [PATCH 2/3] Fix printer removing private for empty record --- compiler/syntax/src/res_printer.ml | 1 + .../syntax_tests/data/printer/typeDef/expected/private.res.txt | 2 +- tests/syntax_tests/data/printer/typeDef/private.res | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/compiler/syntax/src/res_printer.ml b/compiler/syntax/src/res_printer.ml index a6f039d031..72c53be91c 100644 --- a/compiler/syntax/src/res_printer.ml +++ b/compiler/syntax/src/res_printer.ml @@ -1289,6 +1289,7 @@ and print_type_declaration2 ?inline_record_definitions ~state ~rec_flag Doc.space; Doc.text equal_sign; Doc.space; + print_private_flag td.ptype_private; Doc.lbrace; print_comments_inside cmt_tbl td.ptype_loc; Doc.rbrace; diff --git a/tests/syntax_tests/data/printer/typeDef/expected/private.res.txt b/tests/syntax_tests/data/printer/typeDef/expected/private.res.txt index 44cb90251e..e3fcb998b3 100644 --- a/tests/syntax_tests/data/printer/typeDef/expected/private.res.txt +++ b/tests/syntax_tests/data/printer/typeDef/expected/private.res.txt @@ -1,4 +1,4 @@ -type t1 = {} +type t1 = private {} type t2 = private {x: int} diff --git a/tests/syntax_tests/data/printer/typeDef/private.res b/tests/syntax_tests/data/printer/typeDef/private.res index 91b1c53d6e..e3fcb998b3 100644 --- a/tests/syntax_tests/data/printer/typeDef/private.res +++ b/tests/syntax_tests/data/printer/typeDef/private.res @@ -2,4 +2,4 @@ type t1 = private {} type t2 = private {x: int} -type t3 = private A | B \ No newline at end of file +type t3 = private A | B From 6606d8b1e5476e16a87bc6083e6b4f3e056b28e7 Mon Sep 17 00:00:00 2001 From: Christoph Knittel Date: Fri, 9 May 2025 11:05:09 +0200 Subject: [PATCH 3/3] CHANGELOG --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0bfe1b60d0..34079500d0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -33,6 +33,7 @@ - Fix JSON escaping in code editor analysis: JSON was not always escaped properly, which prevented code actions from being available in certain situations https://github.com/rescript-lang/rescript/pull/7435 - Fix regression in pattern matching for optional fields containing variants. https://github.com/rescript-lang/rescript/pull/7440 - Fix missing checks for duplicate literals in variants with payloads. https://github.com/rescript-lang/rescript/pull/7441 +- Fix printer removing private for empty record. https://github.com/rescript-lang/rescript/pull/7448 #### :house: Internal