fixes #3706
This commit is contained in:
parent
8dd27a6699
commit
f47165af11
5 changed files with 47 additions and 1 deletions
20
tests/metatype/tmodulo.nim
Normal file
20
tests/metatype/tmodulo.nim
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
discard """
|
||||
output: '''1 mod 7'''
|
||||
"""
|
||||
|
||||
# bug #3706
|
||||
|
||||
type Modulo[M: static[int]] = distinct int
|
||||
|
||||
proc modulo(a: int, M: static[int]): Modulo[M] = Modulo[M](a %% M)
|
||||
|
||||
proc `+`[M: static[int]](a, b: Modulo[M]): Modulo[M] = (a.int + b.int).modulo(M)
|
||||
|
||||
proc `$`*[M: static[int]](a: Modulo[M]): string = $(a.int) & " mod " & $(M)
|
||||
|
||||
when isMainModule:
|
||||
let
|
||||
a = 3.modulo(7)
|
||||
b = 5.modulo(7)
|
||||
echo a + b
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue