hobbes
a language, embedded compiler, and runtime for efficient dynamic expression evaluation, data storage and analysis
Public Types | Public Member Functions | Public Attributes | Private Attributes | List of all members
hobbes::TCInstanceFn Class Reference

#include <class.H>

Inheritance diagram for hobbes::TCInstanceFn:
Inheritance graph
Collaboration diagram for hobbes::TCInstanceFn:
Collaboration graph

Public Types

typedef std::pair< Constraints, MonoTypesIFnDef
 

Public Member Functions

 TCInstanceFn (const std::string &tcname, const Constraints &reqs, const MonoTypes &itys, const MemberMapping &mmap, const LexicalAnnotation &)
 
size_t arity () const
 
bool satisfiable (const TEnvPtr &, const MonoTypes &, Definitions *)
 
void explainSatisfiability (const TEnvPtr &, const MonoTypes &, Definitions *, Constraints *, Constraints *)
 
bool apply (const TEnvPtr &tenv, const MonoTypes &tys, const TClass *c, MonoTypeUnifier *, Definitions *rdefs, TCInstancePtr *out) const
 
MonoTypes instantiatedArgs (MonoTypeUnifier *s, const MonoTypes &tys) const
 
MemberMapping members (const MonoTypeSubst &) const
 
const Constraintsconstraints () const
 
void show (std::ostream &) const
 
IFnDef freshDef (MonoTypeSubst *s) const
 
- Public Member Functions inherited from hobbes::LexicallyAnnotated
 LexicallyAnnotated (const LexicallyAnnotated &)
 
 LexicallyAnnotated (const LexicalAnnotation &)
 
 LexicallyAnnotated (const LexRange &)
 
 LexicallyAnnotated (const Pos &, const Pos &)
 
const LexicalAnnotationla () const
 

Public Attributes

MonoTypes itys
 
size_t order
 

Private Attributes

std::string tcname
 
Constraints reqs
 
MemberMapping mmap
 

Additional Inherited Members

- Static Public Member Functions inherited from hobbes::LexicallyAnnotated
static void pushFileContext (const std::string &)
 
static void pushLiteralContext (const std::string &)
 
static void popContext ()
 
static LexicalAnnotation make (const Pos &, const Pos &)
 

Member Typedef Documentation

◆ IFnDef

Constructor & Destructor Documentation

◆ TCInstanceFn()

hobbes::TCInstanceFn::TCInstanceFn ( const std::string &  tcname,
const Constraints reqs,
const MonoTypes itys,
const MemberMapping mmap,
const LexicalAnnotation la 
)

Member Function Documentation

◆ apply()

bool hobbes::TCInstanceFn::apply ( const TEnvPtr tenv,
const MonoTypes tys,
const TClass c,
MonoTypeUnifier callsubst,
Definitions rdefs,
TCInstancePtr out 
) const

◆ arity()

size_t hobbes::TCInstanceFn::arity ( ) const

◆ constraints()

const Constraints & hobbes::TCInstanceFn::constraints ( ) const

◆ explainSatisfiability()

void hobbes::TCInstanceFn::explainSatisfiability ( const TEnvPtr tenv,
const MonoTypes tys,
Definitions rdefs,
Constraints scs,
Constraints fcs 
)

◆ freshDef()

TCInstanceFn::IFnDef hobbes::TCInstanceFn::freshDef ( MonoTypeSubst s) const

◆ instantiatedArgs()

MonoTypes hobbes::TCInstanceFn::instantiatedArgs ( MonoTypeUnifier s,
const MonoTypes tys 
) const

◆ members()

MemberMapping hobbes::TCInstanceFn::members ( const MonoTypeSubst s) const

◆ satisfiable()

bool hobbes::TCInstanceFn::satisfiable ( const TEnvPtr tenv,
const MonoTypes tys,
Definitions rdefs 
)

◆ show()

void hobbes::TCInstanceFn::show ( std::ostream &  out) const

Member Data Documentation

◆ itys

MonoTypes hobbes::TCInstanceFn::itys

◆ mmap

MemberMapping hobbes::TCInstanceFn::mmap
private

◆ order

size_t hobbes::TCInstanceFn::order

◆ reqs

Constraints hobbes::TCInstanceFn::reqs
private

◆ tcname

std::string hobbes::TCInstanceFn::tcname
private

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