diff options
-rw-r--r-- | compiler/semgnrc.nim | 2 | ||||
-rw-r--r-- | tests/nimdoc/trunnableexamples.nim | 10 |
2 files changed, 11 insertions, 1 deletions
diff --git a/compiler/semgnrc.nim b/compiler/semgnrc.nim index 23b6e9b9d..3366732ca 100644 --- a/compiler/semgnrc.nim +++ b/compiler/semgnrc.nim @@ -265,7 +265,7 @@ proc semGenericStmt(c: PContext, n: PNode, # We're not interested in the example code during this pass so let's # skip it if s.magic == mRunnableExamples: - inc first + first = result.safeLen # see trunnableexamples.fun3 of skGenericParam: result[0] = newSymNodeTypeDesc(s, fn.info) onUse(fn.info, s) diff --git a/tests/nimdoc/trunnableexamples.nim b/tests/nimdoc/trunnableexamples.nim index 73cfacd43..6232011cb 100644 --- a/tests/nimdoc/trunnableexamples.nim +++ b/tests/nimdoc/trunnableexamples.nim @@ -91,6 +91,16 @@ when true: # runnableExamples with rdoccmd proc fun2*() = runnableExamples "-d:foo": discard # checks that it also works inside procs + template fun3Impl(): untyped = + runnableExamples(rdoccmd="-d:foo"): + nonexistant + # bugfix: this shouldn't be semchecked when `runnableExamples` + # has more than 1 argument + discard + + proc fun3*[T]() = + fun3Impl() + when false: # future work # passing non-string-litterals (for reuse) const a = "-b:cpp" |