strict effects (#18777)
* fixes #17369 * megatest is green for --cpu:arm64 * docgen output includes more tags/raises * implemented 'effectsOf' * algorithm.nim: uses new effectsOf annotation * closes #18376 * closes #17475 * closes #13905 * allow effectsOf: [a, b] * added a test case * parameters that are not ours cannot be declared as .effectsOf * documentation * manual: added the 'sort' example * bootstrap with the new better options
This commit is contained in:
parent
72fa5833ad
commit
e0ef859130
35 changed files with 482 additions and 203 deletions
|
|
@ -8,13 +8,18 @@ import os
|
|||
when defined(windows):
|
||||
from strutils import replace
|
||||
|
||||
when defined(nimHasEffectsOf):
|
||||
{.experimental: "strictEffects".}
|
||||
else:
|
||||
{.pragma: effectsOf.}
|
||||
|
||||
type
|
||||
PathEntry* = object
|
||||
kind*: PathComponent
|
||||
path*: string
|
||||
|
||||
iterator walkDirRecFilter*(dir: string, follow: proc(entry: PathEntry): bool = nil,
|
||||
relative = false, checkDir = true): PathEntry {.tags: [ReadDirEffect].} =
|
||||
relative = false, checkDir = true): PathEntry {.tags: [ReadDirEffect], effectsOf: follow.} =
|
||||
## Improved `os.walkDirRec`.
|
||||
#[
|
||||
note: a yieldFilter isn't needed because caller can filter at call site, without
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue