Exemple #1
0
void
Function::set_construct_destruct(int ftype, bool no_implicit_type_conversion)
{
    m_ftype = ftype;
    Class *pc = class_context();
//if (!is_plain() && pc) fail("must be within class definition");
    if (is_destructor()) {
        if(signature()->size() > 0) fail("destructor cannot be passed parameters");
        pc->destructor(this);
    } else if (is_constructor()) pc->add_constructor(this,no_implicit_type_conversion);
}
Exemple #2
0
Function::Function(Signature *sig, FunctionEntry *pfe)
 : m_sig(sig),m_context(NULL),m_slot_id(0),m_fun_entry(pfe),
   m_default_args(NULL),m_stdarg(false),m_builtin(false),
   m_line_nos(NULL),m_templ_info(NULL),m_import_scheme(NULL)
{
 m_fun_block = FBlock::create(pfe->reference(),class_context());
 m_fun_block->function = this;
 m_line = Input::lineno();
 Module* pm = Module::current();
 m_mod = pm ? pm->id() : -1;
}
Exemple #3
0
bool Function::is_static()
{
    return class_context() != NULL && !is_method();
}