From a81ea23d7100ff350c4df552cb8f016b11f7ff04 Mon Sep 17 00:00:00 2001 From: Simon Krajewski Date: Fri, 14 Apr 2023 15:16:02 +0200 Subject: [PATCH] [parser] fix ?? precedence closes #11144 --- src/syntax/parser.ml | 4 ++-- tests/unit/src/unit/issues/Issue11144.hx | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 tests/unit/src/unit/issues/Issue11144.hx diff --git a/src/syntax/parser.ml b/src/syntax/parser.ml index d0686b28caa..e806d038c15 100644 --- a/src/syntax/parser.ml +++ b/src/syntax/parser.ml @@ -270,8 +270,8 @@ let precedence op = | OpEq | OpNotEq | OpGt | OpLt | OpGte | OpLte -> 6, left | OpInterval -> 7, left | OpBoolAnd -> 8, left - | OpBoolOr -> 9, left - | OpArrow | OpNullCoal -> 10, right + | OpBoolOr | OpNullCoal -> 9, left + | OpArrow -> 10, right | OpAssign | OpAssignOp _ -> 11, right let is_higher_than_ternary = function diff --git a/tests/unit/src/unit/issues/Issue11144.hx b/tests/unit/src/unit/issues/Issue11144.hx new file mode 100644 index 00000000000..a17d218b49d --- /dev/null +++ b/tests/unit/src/unit/issues/Issue11144.hx @@ -0,0 +1,8 @@ +package unit.issues; + +class Issue11144 extends Test { + function test() { + t(false ?? false || true); // false + t((false ?? false) || true); // true + } +}