MimIR
MimIR is my Intermediate Representation
Loading...
Searching...
No Matches
mim::plug::clos::ClosLit Class Reference

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 Sigmatype () const
const Defenv () const
const Defenv_type () const
const Deffnc () const
const Pifnc_type () const
Lamfnc_as_lam () const
const Defenv_var () const
const Defret_var () const
Predicates
 operator bool () const
 operator const Tuple * () const
const Tupleoperator-> () 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.

Detailed Description

Lightweight, non-owning view onto a closure literal (env_type, fn, env); see isa_clos_lit.

Definition at line 14 of file clos.h.

Member Function Documentation

◆ env()

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().

◆ env_type()

const Def * mim::plug::clos::ClosLit::env_type ( ) const
inline

Definition at line 21 of file clos.h.

References env(), and mim::Def::type().

◆ env_var()

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().

◆ fnc()

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.

◆ fnc_as_lam()

Lam * mim::plug::clos::ClosLit::fnc_as_lam ( ) const

Definition at line 39 of file clos.cpp.

References fnc(), and mim::Axm::isa().

Referenced by env_var(), and ret_var().

◆ fnc_type()

const Pi * mim::plug::clos::ClosLit::fnc_type ( ) const
inline

Definition at line 24 of file clos.h.

References fnc(), and mim::Def::type().

Referenced by is_basicblock(), and is_returning().

◆ is_basicblock()

bool mim::plug::clos::ClosLit::is_basicblock ( ) const
inline

Definition at line 38 of file clos.h.

References fnc_type(), and mim::Pi::isa_basicblock().

◆ is_returning()

bool mim::plug::clos::ClosLit::is_returning ( ) const
inline

Definition at line 37 of file clos.h.

References fnc_type(), and mim::Pi::isa_returning().

◆ operator bool()

mim::plug::clos::ClosLit::operator bool ( ) const
inlineexplicit

Definition at line 33 of file clos.h.

◆ operator const Tuple *()

mim::plug::clos::ClosLit::operator const Tuple * ( ) const
inline

Definition at line 34 of file clos.h.

◆ operator->()

const Tuple * mim::plug::clos::ClosLit::operator-> ( ) const
inline

Definition at line 35 of file clos.h.

◆ ret_var()

const Def * mim::plug::clos::ClosLit::ret_var ( ) const
inline

Definition at line 28 of file clos.h.

References fnc_as_lam(), and mim::Lam::ret_var().

◆ type()

const Sigma * mim::plug::clos::ClosLit::type ( ) const
inline

Definition at line 18 of file clos.h.

References mim::Def::type().

◆ isa_clos_lit

ClosLit isa_clos_lit ( const Def * def,
bool fn_isa_lam = true )
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().


The documentation for this class was generated from the following files: