fixes #6843
This commit is contained in:
parent
824092be31
commit
aa6353e4fa
2 changed files with 30 additions and 1 deletions
|
|
@ -271,7 +271,7 @@ proc genAssignment(p: BProc, dest, src: TLoc, flags: TAssignmentFlags) =
|
|||
# little HACK to support the new 'var T' as return type:
|
||||
linefmt(p, cpsStmts, "$1 = $2;$n", rdLoc(dest), rdLoc(src))
|
||||
return
|
||||
let ty = skipTypes(dest.t, abstractRange + tyUserTypeClasses)
|
||||
let ty = skipTypes(dest.t, abstractRange + tyUserTypeClasses + {tyStatic})
|
||||
case ty.kind
|
||||
of tyRef:
|
||||
genRefAssign(p, dest, src, flags)
|
||||
|
|
|
|||
29
tests/statictypes/tstackmatrix.nim
Normal file
29
tests/statictypes/tstackmatrix.nim
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
discard """
|
||||
output: "(M: 3, N: 3, fp: ...)"
|
||||
"""
|
||||
|
||||
# bug #6843
|
||||
|
||||
type
|
||||
OrderType = enum colMajor, rowMajor
|
||||
Matrix[A] = object
|
||||
M, N: int
|
||||
fp: ptr A # float pointer
|
||||
DoubleArray64[M, N: static[int]] = array[M, array[N, float64]]
|
||||
|
||||
|
||||
proc stackMatrix[M, N: static[int]](a: var DoubleArray64[M, N], order = colMajor): Matrix[float64] =
|
||||
Matrix[float64](
|
||||
fp: addr a[0][0],
|
||||
M: (if order == colMajor: N else: M),
|
||||
N: (if order == colMajor: M else: N)
|
||||
)
|
||||
|
||||
var
|
||||
data = [
|
||||
[1'f64, 2, 3],
|
||||
[4'f64, 5, 6],
|
||||
[7'f64, 8, 9]
|
||||
]
|
||||
m = stackMatrix(data)
|
||||
echo m
|
||||
Loading…
Add table
Add a link
Reference in a new issue