View Source Matcha.Context.Erlang (Matcha v0.1.7)
Erlang functions and operators that any match specs can use in their bodies.
omissions
Omissions
This list aligns closely with what you would expect to be able to use in guards. However, erlang does not allow some guard-safe functions in match specs:
These functions are not allowed to be generated from Elixir source code by Matcha, because of compiler limitations. However, they can be used if constructing match specs by hand:
Additionally, these functions are documented as working in match specs, but do not seem to actually be allowed in all contexts:
Link to this section Summary
Functions
All match specs can call :erlang.*/2
.
All match specs can call :erlang.+/1
.
All match specs can call :erlang.+/2
.
All match specs can call :erlang.-/1
.
All match specs can call :erlang.-/2
.
All match specs can call :erlang.//2
.
All match specs can call :erlang./=/2
.
All match specs can call :erlang.</2
.
All match specs can call :erlang.=/=/2
.
All match specs can call :erlang.=:=/2
.
All match specs can call :erlang.=</2
.
All match specs can call :erlang.==/2
.
All match specs can call :erlang.>/2
.
All match specs can call :erlang.>=/2
.
All match specs can call :erlang.abs/1
.
All match specs can call :erlang.and/2
.
All match specs can call :erlang.andalso/2
.
All match specs can call :erlang.band/2
.
All match specs can call :erlang.bit_size/1
.
All match specs can call :erlang.bnot/1
.
All match specs can call :erlang.bor/2
.
All match specs can call :erlang.bsl/2
.
All match specs can call :erlang.bsr/2
.
All match specs can call :erlang.bxor/2
.
All match specs can call :erlang.div/2
.
All match specs can call :erlang.element/2
.
All match specs can call :erlang.hd/1
.
All match specs can call :erlang.is_atom/1
.
All match specs can call :erlang.is_binary/1
.
All match specs can call :erlang.is_float/1
.
All match specs can call :erlang.is_function/1
.
All match specs can call :erlang.is_integer/1
.
All match specs can call :erlang.is_list/1
.
All match specs can call :erlang.is_map/1
.
All match specs can call :erlang.is_map_key/2
.
All match specs can call :erlang.is_number/1
.
All match specs can call :erlang.is_pid/1
.
All match specs can call :erlang.is_port/1
.
All match specs can call :erlang.is_record/3
.
All match specs can call :erlang.is_reference/1
.
All match specs can call :erlang.is_tuple/1
.
All match specs can call :erlang.length/1
.
All match specs can call :erlang.map_get/2
.
All match specs can call :erlang.map_size/1
.
All match specs can call :erlang.node/0
.
All match specs can call :erlang.node/1
.
All match specs can call :erlang.not/1
.
All match specs can call :erlang.or/2
.
All match specs can call :erlang.orelse/2
.
All match specs can call :erlang.rem/2
.
All match specs can call :erlang.round/1
.
All match specs can call :erlang.self/0
.
All match specs can call :erlang.size/1
.
All match specs can call :erlang.tl/1
.
All match specs can call :erlang.trunc/1
.
All match specs can call :erlang.xor/2
.
Link to this section Functions
All match specs can call :erlang.*/2
.
All match specs can call :erlang.+/1
.
All match specs can call :erlang.+/2
.
All match specs can call :erlang.-/1
.
All match specs can call :erlang.-/2
.
All match specs can call :erlang.//2
.
All match specs can call :erlang./=/2
.
All match specs can call :erlang.</2
.
All match specs can call :erlang.=/=/2
.
All match specs can call :erlang.=:=/2
.
All match specs can call :erlang.=</2
.
All match specs can call :erlang.==/2
.
All match specs can call :erlang.>/2
.
All match specs can call :erlang.>=/2
.
All match specs can call :erlang.abs/1
.
All match specs can call :erlang.and/2
.
All match specs can call :erlang.andalso/2
.
All match specs can call :erlang.band/2
.
All match specs can call :erlang.bit_size/1
.
All match specs can call :erlang.bnot/1
.
All match specs can call :erlang.bor/2
.
All match specs can call :erlang.bsl/2
.
All match specs can call :erlang.bsr/2
.
All match specs can call :erlang.bxor/2
.
All match specs can call :erlang.div/2
.
All match specs can call :erlang.element/2
.
All match specs can call :erlang.hd/1
.
All match specs can call :erlang.is_atom/1
.
All match specs can call :erlang.is_binary/1
.
All match specs can call :erlang.is_float/1
.
All match specs can call :erlang.is_function/1
.
All match specs can call :erlang.is_integer/1
.
All match specs can call :erlang.is_list/1
.
All match specs can call :erlang.is_map/1
.
All match specs can call :erlang.is_map_key/2
.
All match specs can call :erlang.is_number/1
.
All match specs can call :erlang.is_pid/1
.
All match specs can call :erlang.is_port/1
.
All match specs can call :erlang.is_record/3
.
All match specs can call :erlang.is_reference/1
.
All match specs can call :erlang.is_tuple/1
.
All match specs can call :erlang.length/1
.
All match specs can call :erlang.map_get/2
.
All match specs can call :erlang.map_size/1
.
All match specs can call :erlang.node/0
.
All match specs can call :erlang.node/1
.
All match specs can call :erlang.not/1
.
All match specs can call :erlang.or/2
.
All match specs can call :erlang.orelse/2
.
All match specs can call :erlang.rem/2
.
All match specs can call :erlang.round/1
.
All match specs can call :erlang.self/0
.
All match specs can call :erlang.size/1
.
All match specs can call :erlang.tl/1
.
All match specs can call :erlang.trunc/1
.
All match specs can call :erlang.xor/2
.