37 lines
659 B
Nim
37 lines
659 B
Nim
type
|
|
SomeObj = object of RootObj
|
|
|
|
Foo[T, U] = object
|
|
x: T
|
|
y: U
|
|
|
|
template someTemplate[T](): tuple[id: int32, obj: T] =
|
|
var result: tuple[id: int32, obj: T] = (0'i32, T())
|
|
result
|
|
|
|
let ret = someTemplate[SomeObj]()
|
|
|
|
# https://github.com/nim-lang/Nim/issues/7829
|
|
proc inner*[T](): int =
|
|
discard
|
|
|
|
template outer*[A](): untyped =
|
|
inner[A]()
|
|
|
|
template outer*[B](x: int): untyped =
|
|
inner[B]()
|
|
|
|
var i1 = outer[int]()
|
|
var i2 = outer[int](i1)
|
|
|
|
# https://github.com/nim-lang/Nim/issues/7883
|
|
template t1[T: int|int64](s: string): T =
|
|
var t: T
|
|
t
|
|
|
|
template t1[T: int|int64](x: int, s: string): T =
|
|
var t: T
|
|
t
|
|
|
|
var i3: int = t1[int]("xx")
|
|
|