Changeset 8e18b8e for src/ResolvExpr/ConversionCost.cc
- Timestamp:
- May 31, 2018, 4:24:49 PM (6 years ago)
- Branches:
- new-env, with_gc
- Children:
- 0182bfa, 1d7b0a8
- Parents:
- 75308bcc
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/ResolvExpr/ConversionCost.cc
r75308bcc r8e18b8e 43 43 Cost conversionCost( Type *src, Type *dest, const SymTab::Indexer &indexer, const TypeEnvironment &env ) { 44 44 if ( TypeInstType *destAsTypeInst = dynamic_cast< TypeInstType* >( dest ) ) { 45 EqvClass eqvClass;46 NamedTypeDecl *namedType;47 45 PRINT( std::cerr << "type inst " << destAsTypeInst->name; ) 48 if ( env.lookup( destAsTypeInst->name, eqvClass) ) {49 if ( eqvClass .type ) {50 return conversionCost( src, eqvClass .type, indexer, env );46 if ( const EqvClass* eqvClass = env.lookup( destAsTypeInst->name ) ) { 47 if ( eqvClass->type ) { 48 return conversionCost( src, eqvClass->type, indexer, env ); 51 49 } else { 52 50 return Cost::infinity; 53 51 } 54 } else if ( ( namedType = indexer.lookupType( destAsTypeInst->name )) ) {52 } else if ( NamedTypeDecl *namedType = indexer.lookupType( destAsTypeInst->name ) ) { 55 53 PRINT( std::cerr << " found" << std::endl; ) 56 54 TypeDecl *type = dynamic_cast< TypeDecl* >( namedType ); … … 362 360 363 361 void ConversionCost::postvisit( TypeInstType *inst ) { 364 EqvClass eqvClass; 365 NamedTypeDecl *namedType; 366 if ( env.lookup( inst->name, eqvClass ) ) { 367 cost = costFunc( eqvClass.type, dest, indexer, env ); 362 if ( const EqvClass *eqvClass = env.lookup( inst->name ) ) { 363 cost = costFunc( eqvClass->type, dest, indexer, env ); 368 364 } else if ( TypeInstType *destAsInst = dynamic_cast< TypeInstType* >( dest ) ) { 369 365 if ( inst->name == destAsInst->name ) { 370 366 cost = Cost::zero; 371 367 } 372 } else if ( ( namedType = indexer.lookupType( inst->name )) ) {368 } else if ( NamedTypeDecl *namedType = indexer.lookupType( inst->name ) ) { 373 369 TypeDecl *type = dynamic_cast< TypeDecl* >( namedType ); 374 370 // all typedefs should be gone by this point
Note: See TracChangeset
for help on using the changeset viewer.