Changes in src/ResolvExpr/CastCost.cc [108f3cdb:150ec33]
- File:
-
- 1 edited
-
src/ResolvExpr/CastCost.cc (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/ResolvExpr/CastCost.cc
r108f3cdb r150ec33 24 24 #include "typeops.h" // for typesCompatibleIgnoreQualifiers 25 25 26 #if 0 27 #define PRINT(x) x 28 #else 29 #define PRINT(x) 30 #endif 26 31 27 32 namespace ResolvExpr { … … 46 51 } else if ( ( namedType = indexer.lookupType( destAsTypeInst->get_name() ) ) ) { 47 52 // all typedefs should be gone by this point 48 TypeDecl *type = s afe_dynamic_cast< TypeDecl* >( namedType );53 TypeDecl *type = strict_dynamic_cast< TypeDecl* >( namedType ); 49 54 if ( type->get_base() ) { 50 55 return castCost( src, type->get_base(), indexer, env ) + Cost::safe; … … 52 57 } // if 53 58 } // if 59 60 PRINT( 61 std::cerr << "castCost ::: src is "; 62 src->print( std::cerr ); 63 std::cerr << std::endl << "dest is "; 64 dest->print( std::cerr ); 65 std::cerr << std::endl << "env is" << std::endl; 66 env.print( std::cerr, 8 ); 67 ) 68 54 69 if ( typesCompatibleIgnoreQualifiers( src, dest, indexer, env ) ) { 70 PRINT( std::cerr << "compatible!" << std::endl; ) 55 71 return Cost::zero; 56 72 } else if ( dynamic_cast< VoidType* >( dest ) ) { 57 73 return Cost::safe; 58 74 } else if ( ReferenceType * refType = dynamic_cast< ReferenceType * > ( dest ) ) { 75 PRINT( std::cerr << "conversionCost: dest is reference" << std::endl; ) 59 76 return convertToReferenceCost( src, refType, indexer, env, [](Type * t1, Type * t2, const TypeEnvironment & env, const SymTab::Indexer & indexer) { 60 77 return ptrsCastable( t1, t2, env, indexer );
Note:
See TracChangeset
for help on using the changeset viewer.