unify tuple expressions (#13793)
* unify tuple expressions * fix test * fix test * apply feedback * Handle empty tuples * Fix rendering named unary tuple * Protect static NimNode against stripping * Slightly less hacky * Revert "Slightly less hacky" This reverts commit 170c5aec0addc029f637afbc948700ca006b7942. * Slightly less hacky * Cleanup * Fix test * Fix another test * Add condsym * Rebase fallout * changelog: Move from compiler changes to language changes * Add stricter tests * Add empty tuple example to doc/astspec * Fix test Co-authored-by: Clyybber <darkmine956@gmail.com>
This commit is contained in:
parent
35655cd189
commit
159c06e045
13 changed files with 136 additions and 32 deletions
|
|
@ -133,8 +133,8 @@ proc matchLengthKind*(arg: NimNode; kind: NimNodeKind; length: int): MatchingErr
|
|||
matchLengthKind(arg, {kind}, length)
|
||||
|
||||
proc matchValue(arg: NimNode; kind: set[NimNodeKind]; value: SomeInteger): MatchingError {.compileTime.} =
|
||||
let kindFail = not(kind.card == 0 or arg.kind in kind)
|
||||
let valueFail = arg.intVal != int(value)
|
||||
template kindFail: bool = not(kind.card == 0 or arg.kind in kind)
|
||||
template valueFail: bool = arg.intVal != int(value)
|
||||
if kindFail or valueFail:
|
||||
result.node = arg
|
||||
result.kind = WrongKindValue
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue