123456789101112131415161718192021222324252627282930313233343536 |
- 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
|