~eda-qa/leaflang/ir_value

« back to all changes in this revision

Viewing changes to src/lang/type_manager.cpp

  • Committer: edA-qa mort-ora-y
  • Date: 2014-11-08 10:57:34 UTC
  • mfrom: (80.1.14 identify_spec_type)
  • Revision ID: eda-qa@disemia.com-20141108105734-3w9riyl35gx9s701
merge spec type 

Show diffs side-by-side

added added

removed removed

Lines of Context:
7
7
type_manager::type_manager( shared_ptr<scope> root ) :
8
8
        root( root ) {
9
9
        
10
 
        auto cur = root->if_get_fun_type( "__integer_range" );
 
10
        auto cur = root->if_get_symbol( "__integer_range" );
11
11
        if( !cur ) {
12
12
                auto rt = make_shared<intr_type_tuple>();
13
13
                rt->distinct = true;
17
17
                root->add_fun_type( rt );
18
18
                integer_range = rt;
19
19
        } else {
20
 
                STATE_CHECK( cur->is<intr_type_tuple>() );
21
 
                integer_range = std::dynamic_pointer_cast<intr_type_tuple const>(cur);
 
20
                STATE_CHECK( cur->what == scope_symbol::w_fun_type &&
 
21
                        cur->fun_type->is<intr_type_tuple>() );
 
22
                integer_range = std::dynamic_pointer_cast<intr_type_tuple const>(cur->fun_type);
22
23
        }
23
24
}
24
25