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

  1. 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

  1. 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

  1. 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

  1. 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

  1. 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