Macro.Env record

A record that holds compile time environment information.

The current environment can be accessed at any time as __ENV__. Inside macros, the caller environment can be accessed as __CALLER__. It contains the following fields:

Source

Fields (and defaults)

Summary

in_guard?(record)

Returns whether the compilation environment is currently inside a guard

in_match?(record)

Returns whether the compilation environment is currently inside a match clause

location(record)

Returns a keyword list containing the file and line information as keys

stacktrace(record)

Returns the environment stacktrace

Types

name_arity :: {atom, non_neg_integer}

file :: binary

line :: non_neg_integer

aliases :: [{module, module}]

macro_aliases :: [{module, {integer, module}}]

context :: :match | :guard | nil

requires :: [module]

functions :: [{module, [name_arity]}]

macros :: [{module, [name_arity]}]

context_modules :: [module]

vars :: [{atom, atom | non_neg_integer}]

export_vars :: vars | nil

local :: module | nil

options :: [module: module, file: file, line: line, function: name_arity, context: context, requires: requires, aliases: aliases, functions: functions, macros: macros, macro_aliases: aliases, context_modules: context_modules, vars: vars, export_vars: export_vars, lexical_tracker: lexical_tracker, local: local] | [{String.t, term}]

Functions

in_guard?(record)

Returns whether the compilation environment is currently inside a guard.

Source
in_match?(record)

Returns whether the compilation environment is currently inside a match clause.

Source
location(record)

Returns a keyword list containing the file and line information as keys.

Source
stacktrace(record)

Returns the environment stacktrace.

Source