From 7dcf6ff50b03dfd54968383ad5a4258f040eec1b Mon Sep 17 00:00:00 2001 From: Zahary Karadjov Date: Sat, 15 Mar 2014 19:43:50 +0200 Subject: [PATCH] fix #997 --- compiler/sigmatch.nim | 13 +++++++------ tests/metatype/tstaticparams.nim | 9 ++++++++- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/compiler/sigmatch.nim b/compiler/sigmatch.nim index 049c9520b5..433455365b 100644 --- a/compiler/sigmatch.nim +++ b/compiler/sigmatch.nim @@ -1046,12 +1046,13 @@ proc paramTypesMatchAux(m: var TCandidate, f, argType: PType, # put(m.bindings, f, argType) return argSemantized - var evaluated = c.semTryConstExpr(c, arg) - if evaluated != nil: - arg.typ = newTypeS(tyStatic, c) - arg.typ.sons = @[evaluated.typ] - arg.typ.n = evaluated - argType = arg.typ + if argType.kind != tyStatic: + var evaluated = c.semTryConstExpr(c, arg) + if evaluated != nil: + arg.typ = newTypeS(tyStatic, c) + arg.typ.sons = @[evaluated.typ] + arg.typ.n = evaluated + argType = arg.typ var a = if c.inTypeClass > 0: argType.skipTypes({tyTypeDesc, tyFieldAccessor}) diff --git a/tests/metatype/tstaticparams.nim b/tests/metatype/tstaticparams.nim index fa162f4e88..d14de7d650 100644 --- a/tests/metatype/tstaticparams.nim +++ b/tests/metatype/tstaticparams.nim @@ -1,6 +1,6 @@ discard """ file: "tstaticparams.nim" - output: "abracadabra\ntest\n3\n15\4" + output: "abracadabra\ntest\n3\n15\n4\n2" """ type @@ -49,3 +49,10 @@ proc getRows(mtx: Matrix): int = result = mtx.M echo getRows(m) + +# issue 997 +type TTest[T: static[int], U: static[int]] = array[0..T*U, int] +type TTestSub[N: static[int]] = TTest[1, N] + +var x: TTestSub[2] +echo x.high