* fix #12864 static params were mutating arg types during sigmatch * fix test * fix StaticParam * also fixes #12713; added test case
This commit is contained in:
parent
c269964860
commit
10eabec6d4
6 changed files with 77 additions and 6 deletions
|
|
@ -171,3 +171,27 @@ echo inSize([
|
|||
[1, 2, 3],
|
||||
[4, 5, 6]
|
||||
])
|
||||
|
||||
block: # #12864
|
||||
template fun() =
|
||||
type Object = object
|
||||
proc fun(f: Object): int = 1
|
||||
proc fun(f: static[int]): int = 2
|
||||
doAssert fun(Object()) == 1
|
||||
|
||||
var a: Object
|
||||
doAssert fun(a) == 1
|
||||
|
||||
proc fun2(f: Object): int = 1
|
||||
proc fun2(f: static[Object]): int = 2
|
||||
doAssert fun2(Object()) == 2
|
||||
doAssert fun2(a) == 1
|
||||
const a2 = Object()
|
||||
doAssert fun2(a2) == 2
|
||||
|
||||
fun()
|
||||
static: fun()
|
||||
|
||||
when true: #12864 original snippet
|
||||
import times
|
||||
discard times.format(initDateTime(30, mMar, 2017, 0, 0, 0, 0, utc()), TimeFormat())
|
||||
|
|
|
|||
|
|
@ -145,6 +145,7 @@ block genericParams:
|
|||
doAssert genericParams(Bar3).get(0) is StaticParam
|
||||
doAssert genericParams(Bar3).get(0).value == 3
|
||||
doAssert genericParams(Bar[3, float]).get(0).value == 3
|
||||
static: doAssert genericParams(Bar[3, float]).get(0).value == 3
|
||||
|
||||
type
|
||||
VectorElementType = SomeNumber | bool
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue