- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/ResolvExpr/TypeEnvironment.cc
r055b562 r9ad2f9f 386 386 } 387 387 388 bool TypeEnvironment::bindVarToVar( TypeInstType *var1, TypeInstType *var2, 389 TypeDecl::Data && data, AssertionSet &need, AssertionSet &have, 390 const OpenVarSet &openVars, WidenMode widenMode, const SymTab::Indexer &indexer ) { 388 bool TypeEnvironment::bindVarToVar( TypeInstType *var1, TypeInstType *var2, const TypeDecl::Data & data, AssertionSet &need, AssertionSet &have, const OpenVarSet &openVars, WidenMode widenMode, const SymTab::Indexer &indexer ) { 391 389 392 390 auto class1 = internal_lookup( var1->get_name() ); … … 430 428 class1->set_type( common ); 431 429 } 432 class1->data.isComplete |= data.isComplete;433 430 env.erase( class2 ); 434 431 } else return false; … … 438 435 class1->vars.insert( class2->vars.begin(), class2->vars.end() ); 439 436 class1->allowWidening = widen1; 440 class1->data.isComplete |= data.isComplete;441 437 env.erase( class2 ); 442 438 } else { 443 439 class2->vars.insert( class1->vars.begin(), class1->vars.end() ); 444 440 class2->allowWidening = widen2; 445 class2->data.isComplete |= data.isComplete;446 441 env.erase( class1 ); 447 442 } // if … … 450 445 class1->vars.insert( var2->get_name() ); 451 446 class1->allowWidening = widen1; 452 class1->data.isComplete |= data.isComplete;453 447 } else if ( class2 != env.end() ) { 454 448 // var1 unbound, add to class2 455 449 class2->vars.insert( var1->get_name() ); 456 450 class2->allowWidening = widen2; 457 class2->data.isComplete |= data.isComplete;458 451 } else { 459 452 // neither var bound, create new class
Note: See TracChangeset
for help on using the changeset viewer.