From b51480f4df1c3ff537f1503395a8a2d71b1721ce Mon Sep 17 00:00:00 2001 From: Cristiano Calcagno Date: Fri, 22 Jul 2022 22:20:09 +0200 Subject: [PATCH 1/3] Printing pipe eats attributes. --- tests/parsing/grammar/expressions/expected/pipe.res.txt | 2 ++ tests/parsing/grammar/expressions/pipe.res | 2 ++ tests/printer/expr/expected/pipe.res.txt | 2 ++ tests/printer/expr/pipe.res | 2 ++ 4 files changed, 8 insertions(+) create mode 100644 tests/parsing/grammar/expressions/expected/pipe.res.txt create mode 100644 tests/parsing/grammar/expressions/pipe.res create mode 100644 tests/printer/expr/expected/pipe.res.txt create mode 100644 tests/printer/expr/pipe.res diff --git a/tests/parsing/grammar/expressions/expected/pipe.res.txt b/tests/parsing/grammar/expressions/expected/pipe.res.txt new file mode 100644 index 00000000..1fb9b206 --- /dev/null +++ b/tests/parsing/grammar/expressions/expected/pipe.res.txt @@ -0,0 +1,2 @@ +let ok = ((optionMap name (fun x -> x))[@foo ]) +let bad = ((name |. (optionMap (fun x -> x)))[@foo ]) \ No newline at end of file diff --git a/tests/parsing/grammar/expressions/pipe.res b/tests/parsing/grammar/expressions/pipe.res new file mode 100644 index 00000000..0f848057 --- /dev/null +++ b/tests/parsing/grammar/expressions/pipe.res @@ -0,0 +1,2 @@ +let ok = @foo (optionMap(name, x => x)) +let bad = @foo (name->optionMap(x => x)) diff --git a/tests/printer/expr/expected/pipe.res.txt b/tests/printer/expr/expected/pipe.res.txt new file mode 100644 index 00000000..26055a59 --- /dev/null +++ b/tests/printer/expr/expected/pipe.res.txt @@ -0,0 +1,2 @@ +let ok = @foo optionMap(name, x => x) +let bad = name->optionMap(x => x) diff --git a/tests/printer/expr/pipe.res b/tests/printer/expr/pipe.res new file mode 100644 index 00000000..0f848057 --- /dev/null +++ b/tests/printer/expr/pipe.res @@ -0,0 +1,2 @@ +let ok = @foo (optionMap(name, x => x)) +let bad = @foo (name->optionMap(x => x)) From c602431fb4f5ee1267253367ba9f83d3d0a7dd22 Mon Sep 17 00:00:00 2001 From: Cristiano Calcagno Date: Fri, 22 Jul 2022 22:30:33 +0200 Subject: [PATCH 2/3] Fix printing attributes. --- src/res_printer.ml | 1 + tests/printer/expr/expected/pipe.res.txt | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/res_printer.ml b/src/res_printer.ml index c1d947d4..ca442be3 100644 --- a/src/res_printer.ml +++ b/src/res_printer.ml @@ -3658,6 +3658,7 @@ and printBinaryExpression ~customLayout (expr : Parsetree.expression) cmtTbl = Doc.group (Doc.concat [ + printAttributes ~customLayout expr.pexp_attributes cmtTbl; lhsDoc; (match (lhsHasCommentBelow, op) with | true, "|." -> Doc.concat [Doc.softLine; Doc.text "->"] diff --git a/tests/printer/expr/expected/pipe.res.txt b/tests/printer/expr/expected/pipe.res.txt index 26055a59..9818af75 100644 --- a/tests/printer/expr/expected/pipe.res.txt +++ b/tests/printer/expr/expected/pipe.res.txt @@ -1,2 +1,2 @@ let ok = @foo optionMap(name, x => x) -let bad = name->optionMap(x => x) +let bad = @foo name->optionMap(x => x) From 5eb0a16b0d0d7c235f6ea8321bd63a9be7d9517d Mon Sep 17 00:00:00 2001 From: Cristiano Calcagno Date: Fri, 22 Jul 2022 22:31:43 +0200 Subject: [PATCH 3/3] Remove parsing test. --- tests/parsing/grammar/expressions/expected/pipe.res.txt | 2 -- tests/parsing/grammar/expressions/pipe.res | 2 -- 2 files changed, 4 deletions(-) delete mode 100644 tests/parsing/grammar/expressions/expected/pipe.res.txt delete mode 100644 tests/parsing/grammar/expressions/pipe.res diff --git a/tests/parsing/grammar/expressions/expected/pipe.res.txt b/tests/parsing/grammar/expressions/expected/pipe.res.txt deleted file mode 100644 index 1fb9b206..00000000 --- a/tests/parsing/grammar/expressions/expected/pipe.res.txt +++ /dev/null @@ -1,2 +0,0 @@ -let ok = ((optionMap name (fun x -> x))[@foo ]) -let bad = ((name |. (optionMap (fun x -> x)))[@foo ]) \ No newline at end of file diff --git a/tests/parsing/grammar/expressions/pipe.res b/tests/parsing/grammar/expressions/pipe.res deleted file mode 100644 index 0f848057..00000000 --- a/tests/parsing/grammar/expressions/pipe.res +++ /dev/null @@ -1,2 +0,0 @@ -let ok = @foo (optionMap(name, x => x)) -let bad = @foo (name->optionMap(x => x))