Changes in src/ResolvExpr/Unify.cc [8f31be6:f02f546]
- File:
-
- 1 edited
-
src/ResolvExpr/Unify.cc (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/ResolvExpr/Unify.cc
r8f31be6 rf02f546 1298 1298 auto var1 = dynamic_cast< const ast::TypeInstType * >( type1 ); 1299 1299 auto var2 = dynamic_cast< const ast::TypeInstType * >( type2 ); 1300 ast::OpenVarSet::const_iterator 1301 entry1 = var1 ? open.find( *var1 ) : open.end(), 1302 entry2 = var2 ? open.find( *var2 ) : open.end(); 1303 // bool isopen1 = entry1 != open.end(); 1304 // bool isopen2 = entry2 != open.end(); 1300 1305 bool isopen1 = var1 && env.lookup(*var1); 1301 1306 bool isopen2 = var2 && env.lookup(*var2); 1302 1307 1308 /* 1309 if ( isopen1 && isopen2 ) { 1310 if ( entry1->second.kind != entry2->second.kind ) return false; 1311 return env.bindVarToVar( 1312 var1, var2, ast::TypeData{ entry1->second, entry2->second }, need, have, 1313 open, widen ); 1314 } else if ( isopen1 ) { 1315 return env.bindVar( var1, type2, entry1->second, need, have, open, widen ); 1316 } else if ( isopen2 ) { 1317 return env.bindVar( var2, type1, entry2->second, need, have, open, widen, symtab ); 1318 } */ 1303 1319 if ( isopen1 && isopen2 ) { 1304 1320 if ( var1->base->kind != var2->base->kind ) return false; … … 1310 1326 } else if ( isopen2 ) { 1311 1327 return env.bindVar( var2, type1, ast::TypeData{var2->base}, need, have, open, widen ); 1312 } else {1328 }else { 1313 1329 return ast::Pass<Unify_new>::read( 1314 1330 type1, type2, env, need, have, open, widen ); 1315 1331 } 1332 1316 1333 } 1317 1334
Note:
See TracChangeset
for help on using the changeset viewer.