# std/effecttraits

Theme:

- Manual
- Standard library
- Index
- Compiler docs
- Fusion docs
- devel, stable

Search:
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, assertions

# 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 getTagsList(fn: NimNode): NimNode {....raises: [], tags: [], forbids: [].}

  Extracts the `.tags` 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