diff options
author | Mark Flamer <mflamer@vectorworks.net> | 2013-09-02 18:20:00 -0700 |
---|---|---|
committer | Mark Flamer <mflamer@vectorworks.net> | 2013-09-02 18:20:00 -0700 |
commit | 73aba23a49c3fd6b14cc7b2688224d8ac68a1acf (patch) | |
tree | 47dc84b8f5d02ee1a32b887f943982975add79bd | |
parent | 6a04757e6d14b5b59004ef03539dba4453352fe5 (diff) | |
download | Nim-73aba23a49c3fd6b14cc7b2688224d8ac68a1acf.tar.gz |
Add arity typetrait
-rw-r--r-- | compiler/evals.nim | 4 | ||||
-rw-r--r-- | lib/pure/typetraits.nim | 2 |
2 files changed, 6 insertions, 0 deletions
diff --git a/compiler/evals.nim b/compiler/evals.nim index be6f625ec..f8336fce7 100644 --- a/compiler/evals.nim +++ b/compiler/evals.nim @@ -914,6 +914,10 @@ proc evalTypeTrait*(trait, operand: PNode, context: PSym): PNode = result = newStrNode(nkStrLit, typ.typeToString(preferName)) result.typ = newType(tyString, context) result.info = trait.info + of "arity": + result = newIntNode(nkIntLit, typ.n.len-1) + result.typ = newType(tyInt, context) + result.info = trait.info else: internalAssert false diff --git a/lib/pure/typetraits.nim b/lib/pure/typetraits.nim index 45b79dcb6..e7bd363cf 100644 --- a/lib/pure/typetraits.nim +++ b/lib/pure/typetraits.nim @@ -13,3 +13,5 @@ proc name*(t: typedesc): string {.magic: "TypeTrait".} ## Returns the name of the given type +proc arity*(t: typedesc): int {.magic: "TypeTrait".} + ## Returns the arity of the given type \ No newline at end of file |