From dc9d3c49b3680f30f2d44ebb93692155ec3628e1 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 26 Sep 2022 22:50:46 +0800 Subject: [PATCH] fix #19334 genericParams from typetraits gives internal error when given proc arg --- compiler/semtypes.nim | 2 +- tests/generics/t19334.nim | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 tests/generics/t19334.nim diff --git a/compiler/semtypes.nim b/compiler/semtypes.nim index 7d077ab5a6246..3062c49e4e554 100644 --- a/compiler/semtypes.nim +++ b/compiler/semtypes.nim @@ -1961,7 +1961,7 @@ proc semTypeNode(c: PContext, n: PNode, prev: PType): PType = let s = getGenSym(c, n.sym) if s.typ != nil and (s.kind == skType or s.typ.kind == tyTypeDesc): var t = - if s.kind == skType: + if s.kind == skType or s.kind == skParam: s.typ else: internalAssert c.config, s.typ.base.kind != tyNone and prev == nil diff --git a/tests/generics/t19334.nim b/tests/generics/t19334.nim new file mode 100644 index 0000000000000..bc42a783d2b61 --- /dev/null +++ b/tests/generics/t19334.nim @@ -0,0 +1,5 @@ +import typetraits + +proc contained_type(s: typedesc): string = $genericParams(s) + +doAssert contained_type(seq[int]) == "(int,)"