diff options
author | Timothee Cour <timothee.cour2@gmail.com> | 2021-02-08 04:45:06 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-08 13:45:06 +0100 |
commit | 910720b0d44721b1c467b23227ec77467b80c633 (patch) | |
tree | 73d6b147421240a57ac7cc42245bde9ae9561db2 | |
parent | 0cf3ba159c97d3aa00bcb408e99cd4bdef33d64f (diff) | |
download | Nim-910720b0d44721b1c467b23227ec77467b80c633.tar.gz |
document typeof (#16965)
-rw-r--r-- | lib/system.nim | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/lib/system.nim b/lib/system.nim index 888217493..508978521 100644 --- a/lib/system.nim +++ b/lib/system.nim @@ -251,8 +251,23 @@ when defined(nimHasTypeof): magic: "TypeOf", noSideEffect, compileTime.} = ## Builtin `typeof` operation for accessing the type of an expression. ## Since version 0.20.0. - discard - + runnableExamples: + proc myFoo(): float = 0.0 + iterator myFoo(): string = yield "abc" + iterator myFoo2(): string = yield "abc" + iterator myFoo3(): string {.closure.} = yield "abc" + doAssert type(myFoo()) is string + doAssert typeof(myFoo()) is string + doAssert typeof(myFoo(), typeOfIter) is string + doAssert typeof(myFoo3) is "iterator" + + doAssert typeof(myFoo(), typeOfProc) is float + doAssert typeof(0.0, typeOfProc) is float + doAssert typeof(myFoo3, typeOfProc) is "iterator" + doAssert not compiles(typeof(myFoo2(), typeOfProc)) + # this would give: Error: attempting to call routine: 'myFoo2' + # since `typeOfProc` expects a typed expression and `myFoo2()` can + # only be used in a `for` context. const ThisIsSystem = true |