std/effecttraits
Source Edit
This module provides access to the inferred .raises effects for Nim's macro system. Since: Version 1.4.
One can test for the existence of this standard module via defined(nimHasEffectTraitsModule)
.
Imports
macros
Procs
-
proc getForbidsList(fn: NimNode): NimNode {....raises: [], tags: [], forbids: [].}
-
Extracts the
.forbids
list of the func/proc/etc fn
. fn
has to be a resolved symbol of kind nnkSym
. This implies that the macro that calls this proc should accept typed
arguments and not untyped
arguments. Source Edit
-
proc getRaisesList(fn: NimNode): NimNode {....raises: [], tags: [], forbids: [].}
-
Extracts the
.raises
list of the func/proc/etc fn
. fn
has to be a resolved symbol of kind nnkSym
. This implies that the macro that calls this proc should accept typed
arguments and not untyped
arguments. Source Edit
-
proc hasNoSideEffects(fn: NimNode): bool {....raises: [], tags: [], forbids: [].}
-
Return true if the func/proc/etc
fn
has noSideEffect
. fn
has to be a resolved symbol of kind nnkSym
. This implies that the macro that calls this proc should accept typed
arguments and not untyped
arguments. Source Edit
-
proc isGcSafe(fn: NimNode): bool {....raises: [], tags: [], forbids: [].}
-
Return true if the func/proc/etc
fn
is gcsafe
. fn
has to be a resolved symbol of kind nnkSym
. This implies that the macro that calls this proc should accept typed
arguments and not untyped
arguments. Source Edit