Merge branch 'patch/fix-3496-generic-tmpl-args' of https://github.com/nanoant/Nim into nanoant-patch/fix-3496-generic-tmpl-args

This commit is contained in:
Andreas Rumpf 2016-05-29 23:58:25 +02:00
commit e52044660d
3 changed files with 88 additions and 5 deletions

View file

@ -0,0 +1,31 @@
discard """
output: '''1
1
1
1
999
999
999
2'''
"""
# test if we can pass explicit generic arguments to generic templates
# based on bug report #3496
proc tproc[T](t: T = 999) = echo t
template ttmpl[T](t: T = 999) = echo t
tproc(1)
tproc[int](1)
ttmpl(1)
ttmpl[int](1) #<- crash case #1
tproc[int]()
discard tproc[int]
ttmpl[int]() #<- crash case #2
ttmpl[int] #<- crash case #3
# but still allow normal use of [] on non-generic templates
template tarr: expr = [1, 2, 3, 4]
echo tarr[1]