make concepts tests green again

This commit is contained in:
Andreas Rumpf
2018-07-06 11:16:05 +02:00
parent ae82406c8b
commit 6b8167aaa1
2 changed files with 15 additions and 15 deletions

View File

@@ -5,17 +5,9 @@ t3330.nim(63, 4) Error: type mismatch: got <Bar[system.int]>
but expected one of:
proc test(foo: Foo[int])
t3330.nim(48, 8) Hint: Non-matching candidates for add(k, string, T)
proc add(x: var string; y: string)
proc add[T](x: var seq[T]; y: openArray[T])
first type mismatch at position: 1
required type: var string
but expression 'k' is of type: Alias
proc add(x: var string; y: char)
first type mismatch at position: 1
required type: var string
but expression 'k' is of type: Alias
proc add(result: var string; x: int64)
first type mismatch at position: 1
required type: var string
required type: var seq[T]
but expression 'k' is of type: Alias
proc add(result: var string; x: float)
first type mismatch at position: 1
@@ -25,14 +17,22 @@ proc add(x: var string; y: cstring)
first type mismatch at position: 1
required type: var string
but expression 'k' is of type: Alias
proc add[T](x: var seq[T]; y: openArray[T])
proc add(x: var string; y: char)
first type mismatch at position: 1
required type: var seq[T]
required type: var string
but expression 'k' is of type: Alias
proc add(x: var string; y: string)
first type mismatch at position: 1
required type: var string
but expression 'k' is of type: Alias
proc add[T](x: var seq[T]; y: T)
first type mismatch at position: 1
required type: var seq[T]
but expression 'k' is of type: Alias
proc add(result: var string; x: int64)
first type mismatch at position: 1
required type: var string
but expression 'k' is of type: Alias
t3330.nim(48, 8) template/generic instantiation from here
t3330.nim(55, 6) Foo: 'bar.value' cannot be assigned to

View File

@@ -32,7 +32,7 @@ type
data: array[M*K, T]
# adaptor for the concept's non-matching expectations
template N(M: type MyMatrix): expr = M.K
template N(M: type MyMatrix): untyped = M.K
proc `[]`(m: MyMatrix; r, c: int): m.T =
m.data[r * m.K + c]
@@ -45,7 +45,7 @@ proc foo(x: MyMatrix, arr: array[15, x.T]) = discard
proc genericMatrixProc[R, C, TE, FF, FC, T](m: Matrix[R, C, TE, FF, FC, T]): T =
static:
echo "R=", R, " C=", C, " TE=", TE, " FF=", FF, " FC=", FC, " T=", T.name
m[0, 0]
proc implicitMatrixProc(m: Matrix): m.T =
@@ -57,7 +57,7 @@ proc implicitMatrixProc(m: Matrix): m.T =
#" FF=", m.FromFoo,
#" FC=", m.FromConst,
" T=", m.T.name
m[0, 0]
proc myMatrixProc(x: MyMatrix): MyMatrix.T = genericMatrixProc(x)