typetraits module and tests
This commit is contained in:
parent
a64f03230a
commit
97ab16d46b
2 changed files with 39 additions and 0 deletions
15
lib/pure/typetraits.nim
Normal file
15
lib/pure/typetraits.nim
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Nimrod's Runtime Library
|
||||||
|
# (c) Copyright 2012 Nimrod Contributors
|
||||||
|
#
|
||||||
|
# See the file "copying.txt", included in this
|
||||||
|
# distribution, for details about the copyright.
|
||||||
|
#
|
||||||
|
|
||||||
|
## This module defines compile-time reflection procs for
|
||||||
|
## working with types
|
||||||
|
|
||||||
|
proc name*(t: typedesc): string {.magic: "TypeTrait".}
|
||||||
|
## Returns the name of the given type
|
||||||
|
|
||||||
24
tests/run/ttypetraits.nim
Normal file
24
tests/run/ttypetraits.nim
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
discard """
|
||||||
|
msg: "int\nstring\nTBar[int]"
|
||||||
|
output: "int\nstring\nTBar[int]"
|
||||||
|
"""
|
||||||
|
|
||||||
|
import typetraits
|
||||||
|
|
||||||
|
proc foo(x) =
|
||||||
|
static:
|
||||||
|
var t = type(x)
|
||||||
|
echo t.name
|
||||||
|
|
||||||
|
echo x.type.name
|
||||||
|
|
||||||
|
type
|
||||||
|
TBar[U] = object
|
||||||
|
x: U
|
||||||
|
|
||||||
|
var bar: TBar[int]
|
||||||
|
|
||||||
|
foo 10
|
||||||
|
foo "test"
|
||||||
|
foo bar
|
||||||
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue