use arrow precedence in spec (#20166)

* test using arrow precedence in spec

refs #8759

* add test for #8759
This commit is contained in:
metagn 2022-09-06 22:24:32 +03:00 • committed by GitHub
commit 801eb3cb56
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 1 deletions

View file

@ -973,7 +973,7 @@ proc getPrecedence*(tok: Token): int =
# arrow like? # arrow like?
if tok.ident.s.len > 1 and tok.ident.s[^1] == '>' and if tok.ident.s.len > 1 and tok.ident.s[^1] == '>' and
tok.ident.s[^2] in {'-', '~', '='}: return 1 tok.ident.s[^2] in {'-', '~', '='}: return 0
template considerAsgn(value: untyped) = template considerAsgn(value: untyped) =
result = if tok.ident.s[^1] == '=': 1 else: value result = if tok.ident.s[^1] == '=': 1 else: value

View file

@ -54,3 +54,10 @@ let
const const
test = test =
proc(): int = 1 proc(): int = 1
# bug #8759
block:
template `=>`(a, b): untyped = (a, b)
template `+=`(a, b): untyped = a * b
doAssert ("abc" => 3 += 5) == ("abc", 15)