diff --git a/compiler/semcall.nim b/compiler/semcall.nim index 4557ab4c69..29d19875d4 100644 --- a/compiler/semcall.nim +++ b/compiler/semcall.nim @@ -981,7 +981,7 @@ proc setGenericParams(c: PContext, n, expectedParams: PNode) = if e.typ == nil: n[i].typ = errorType(c) else: - n[i].typ = e.typ.skipTypes({tyTypeDesc}) + n[i].typ = e.typ proc explicitGenericInstantiation(c: PContext, n: PNode, s: PSym, doError: bool): PNode = assert n.kind == nkBracketExpr diff --git a/compiler/sigmatch.nim b/compiler/sigmatch.nim index d97148baef..bcd68f621d 100644 --- a/compiler/sigmatch.nim +++ b/compiler/sigmatch.nim @@ -160,8 +160,7 @@ proc matchGenericParam(m: var TCandidate, formal: PType, n: PNode) = arg = newTypeS(tyStatic, m.c, son = evaluated.typ) arg.n = evaluated elif formalBase.kind == tyTypeDesc: - if arg.kind != tyTypeDesc: - arg = makeTypeDesc(m.c, arg) + discard # if arg is not tyTypeDesc, typeRel will report the mismatch else: arg = arg.skipTypes({tyTypeDesc}) let tm = typeRel(m, formal, arg)