semtypinst: don't wrap type nodes from expressions in static[T] (#18860)

This commit is contained in:
alaviss
2021-09-17 04:51:26 +00:00
committed by GitHub
parent f8e185fec0
commit 6cd219c3a3
2 changed files with 18 additions and 1 deletions

View File

@@ -548,7 +548,7 @@ proc replaceTypeVarsTAux(cl: var TReplTypeVars, t: PType): PType =
result = n.typ.skipTypes({tyTypeDesc})
# result = n.typ.base
else:
if n.typ.kind != tyStatic:
if n.typ.kind != tyStatic and n.kind != nkType:
# XXX: In the future, semConstExpr should
# return tyStatic values to let anyone make
# use of this knowledge. The patching here

17
tests/generics/t18859.nim Normal file
View File

@@ -0,0 +1,17 @@
import macros
macro symFromDesc(T: typedesc): untyped =
let typ = getType(T)
typ[1]
template produceType(T: typedesc): untyped =
type
XT = object
x: symFromDesc(T)
XT
type
X[T] = produceType(T)
var x: X[int]