diff options
author | Andrei Alexeyev <akari@taisei-project.org> | 2020-04-02 21:41:22 +0300 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2020-04-04 13:31:07 +0300 |
commit | 2cfbb36a848d9a730a3318cec34789902ce27658 (patch) | |
tree | 603e3f15f21f25d527bdf90844ac862207a1554e /test cases | |
parent | d84daf3e95742910a0e3165c479c0726dcbb40ef (diff) | |
download | meson-2cfbb36a848d9a730a3318cec34789902ce27658.zip meson-2cfbb36a848d9a730a3318cec34789902ce27658.tar.gz meson-2cfbb36a848d9a730a3318cec34789902ce27658.tar.bz2 |
mparser: fix precedence of arithmetic operators
The arithmetic operators are now split into two groups:
* The add/sub group: +, -
* The mul/div group: *, /, %
All operators within the same group are left-associative and have equal
precedence. The mul/div group has a higher precedence than the add/sub
group, as one would expect.
Previously every operator had a different precedence and was
right-associative, which resulted in surprising behavior.
This is a potentially breaking change for projects that relied on the
old incorrect behavior.
Fixes #6870
Diffstat (limited to 'test cases')
-rw-r--r-- | test cases/common/230 arithmetic operators/meson.build | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/test cases/common/230 arithmetic operators/meson.build b/test cases/common/230 arithmetic operators/meson.build new file mode 100644 index 0000000..a904bd0 --- /dev/null +++ b/test cases/common/230 arithmetic operators/meson.build @@ -0,0 +1,8 @@ +project('arithmetic operators') +assert(5 - 3 - 1 == 1) +assert(5 - (3 - 1) == 3) +assert(5 - 1 * 3 - 3 == -1) +assert(420 - 300 - 51 == 69) +assert(1000 / 2 / 2 / 2 == 125) +assert(4 * 9 / 3 % 8 - 3 - 10 / 2 == -4) +assert(94 - 30 + (2 - (40 - 6 + 7) - 9) - 10 == 6) |