mirror of
https://github.com/nim-lang/Nim.git
synced 2026-02-12 22:33:49 +00:00
32 lines
719 B
Nim
32 lines
719 B
Nim
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)
|