Lightweight, non-owning view onto a closure literal (env_type, fn, env); see isa_clos_lit. More...
#include <mim/plug/clos/clos.h>
Public Member Functions | |
Getters | |
| const Sigma * | type () const |
| const Def * | env () const |
| const Def * | env_type () const |
| const Def * | fnc () const |
| const Pi * | fnc_type () const |
| Lam * | fnc_as_lam () const |
| const Def * | env_var () const |
| const Def * | ret_var () const |
Predicates | |
| operator bool () const | |
| operator const Tuple * () const | |
| const Tuple * | operator-> () const |
| bool | is_returning () const |
| bool | is_basicblock () const |
Friends | |
| ClosLit | isa_clos_lit (const Def *def, bool fn_isa_lam=true) |
| Tries to match a closure literal. | |
| const Def * mim::plug::clos::ClosLit::env | ( | ) | const |
Definition at line 35 of file clos.cpp.
References mim::plug::clos::clos_unpack().
Referenced by env_type().
|
inline |
Definition at line 21 of file clos.h.
References env(), and mim::Def::type().
| const Def * mim::plug::clos::ClosLit::env_var | ( | ) | const |
Definition at line 45 of file clos.cpp.
References mim::plug::clos::env_param(), and fnc_as_lam().
| const Def * mim::plug::clos::ClosLit::fnc | ( | ) | const |
Definition at line 37 of file clos.cpp.
References mim::plug::clos::clos_unpack().
Referenced by fnc_as_lam(), fnc_type(), and isa_clos_lit.
| Lam * mim::plug::clos::ClosLit::fnc_as_lam | ( | ) | const |
|
inline |
Definition at line 24 of file clos.h.
References fnc(), and mim::Def::type().
Referenced by is_basicblock(), and is_returning().
|
inline |
Definition at line 38 of file clos.h.
References fnc_type(), and mim::Pi::isa_basicblock().
|
inline |
Definition at line 37 of file clos.h.
References fnc_type(), and mim::Pi::isa_returning().
|
inlineexplicit |
|
inline |
|
inline |
|
inline |
Definition at line 28 of file clos.h.
References fnc_as_lam(), and mim::Lam::ret_var().
|
inline |
Definition at line 18 of file clos.h.
References mim::Def::type().
|
friend |
Tries to match a closure literal.
If fn_isa_lam, additionally requires the code part to be a Lam.
Definition at line 50 of file clos.cpp.
References mim::plug::clos::clos_unpack(), fnc(), mim::Axm::isa(), mim::plug::clos::isa_clos_type(), and mim::Def::type().