37 lines
720 B
Nim
37 lines
720 B
Nim
discard """
|
|
output: "(x: a)"
|
|
"""
|
|
|
|
type
|
|
Bar[T] = object
|
|
x: T
|
|
|
|
proc infer(T: typeDesc): Bar[T] = Bar[T](x: 'a')
|
|
|
|
let foo = infer(char)
|
|
echo foo
|
|
|
|
when true:
|
|
# bug #1783
|
|
|
|
type
|
|
uoffset_t* = uint32
|
|
FlatBufferBuilder* = object
|
|
|
|
uarray* {.unchecked.} [T] = array [0..0, T]
|
|
Array* [T] = object
|
|
o*: uoffset_t
|
|
len*: int
|
|
data*: ptr uarray[T]
|
|
|
|
proc ca* (fbb: ptr FlatBufferBuilder, T: typedesc, len: int): Array[T] {.noinit.} =
|
|
result.len = len
|
|
|
|
var fbb: ptr FlatBufferBuilder
|
|
let boolarray = ca(fbb, bool, 2)
|
|
let boolarray2 = fbb.ca(bool, 2)
|
|
|
|
# bug #1664
|
|
type Point[T] = tuple[x, y: T]
|
|
proc origin(T: typedesc): Point[T] = discard
|
|
discard origin(int)
|