Files
Nim/tests/borrow/tborrow.nim
2020-06-23 14:17:12 +02:00

36 lines
604 B
Nim

discard """
output: '''4887 true
0.5'''
"""
# test the new borrow feature that works with generics:
proc `++`*[T: int | float](a, b: T): T =
result = a + b
type
DI = distinct int
DF = distinct float
DS = distinct string
proc `++`(x, y: DI): DI {.borrow.}
proc `++`(x, y: DF): DF {.borrow.}
proc `$`(x: DI): string {.borrow.}
proc `$`(x: DF): string {.borrow.}
echo 4544.DI ++ 343.DI, " ", (4.5.DF ++ 0.5.DF).float == 5.0
# issue #14440
type Radians = distinct float64
func `-=`(a: var Radians, b: Radians) {.borrow.}
var a = Radians(1.5)
let b = Radians(1.0)
a -= b
echo a.float64