1234567891011121314151617181920212223242526272829303132 |
- discard """
- errormsg: "invalid type: 'lent QuadraticExt' in this context: 'proc (r: var QuadraticExt, a: lent QuadraticExt, b: lent QuadraticExt){.noSideEffect, gcsafe.}' for proc"
- """
- # bug #16898
- type
- Fp[N: static int, T] = object
- big: array[N, T]
- type
- QuadraticExt* = concept x
- ## Quadratic Extension concept (like complex)
- type BaseField = auto
- x.c0 is BaseField
- x.c1 is BaseField
- {.experimental:"views".}
- func prod(r: var QuadraticExt, a, b: lent QuadraticExt) =
- discard
- type
- Fp2[N: static int, T] = object
- c0, c1: Fp[N, T]
- # This should be passed by reference,
- # but concepts do not respect the 24 bytes rule
- # or `byref` pragma.
- var r, a, b: Fp2[6, uint64]
- prod(r, a, b)
|