unify explicit generic param semchecking in calls (#22618)

fixes #9040
This commit is contained in:
metagn
2023-09-01 16:37:16 +03:00
committed by GitHub
parent 0c6e13806d
commit 6738f44af3
3 changed files with 26 additions and 7 deletions

View File

@@ -42,4 +42,23 @@ block: #4688
block: #4164
proc printStr[T](s: static[string]): T = discard
discard printStr[int]("hello static")
discard printStr[int]("hello static")
import macros
block: # issue #9040, statics with template, macro, symchoice explicit generics
block: # macro
macro fun[N: static int](): untyped =
newLit 1
const a = fun[2]()
doAssert a == 1
block: # template
template fun[N: static int](): untyped =
1
const a = fun[2]()
doAssert a == 1
block: # symchoice
proc newSeq[x: static int](): int = 1
template foo: int =
newSeq[2]()
doAssert foo() == 1