Changes in src/ResolvExpr/CommonType.cc [9d1e3f7:53452de]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/ResolvExpr/CommonType.cc
r9d1e3f7 r53452de 27 27 #include "typeops.h" // for isFtype 28 28 29 #define DEBUG 30 #ifdef DEBUG 31 #define PRINT(x) x 32 #else 33 #define PRINT(x) 34 #endif 29 // #define DEBUG 35 30 36 31 namespace ResolvExpr { … … 75 70 // need unify to bind type variables 76 71 if ( unify( t1, t2, env, have, need, newOpen, indexer, common ) ) { 77 PRINT( 78 std::cerr << "unify success: " << widenFirst << " " << widenSecond << std::endl; 79 ) 72 // std::cerr << "unify success: " << widenFirst << " " << widenSecond << std::endl; 80 73 if ( (widenFirst || t2->get_qualifiers() <= t1->get_qualifiers()) && (widenSecond || t1->get_qualifiers() <= t2->get_qualifiers()) ) { 81 PRINT( 82 std::cerr << "widen okay" << std::endl; 83 ) 74 // std::cerr << "widen okay" << std::endl; 84 75 common->get_qualifiers() |= t1->get_qualifiers(); 85 76 common->get_qualifiers() |= t2->get_qualifiers(); … … 87 78 } 88 79 } 89 PRINT( 90 std::cerr << "exact unify failed: " << t1 << " " << t2 << std::endl; 91 ) 80 // std::cerr << "exact unify failed: " << t1 << " " << t2 << std::endl; 92 81 return nullptr; 93 82 } … … 105 94 // special case where one type has a reference depth of 1 larger than the other 106 95 if ( diff > 0 || diff < 0 ) { 107 PRINT( 108 std::cerr << "reference depth diff: " << diff << std::endl; 109 ) 96 // std::cerr << "reference depth diff: " << diff << std::endl; 110 97 Type * result = nullptr; 111 98 ReferenceType * ref1 = dynamic_cast< ReferenceType * >( type1 ); … … 122 109 if ( result && ref1 ) { 123 110 // formal is reference, so result should be reference 124 PRINT( 125 std::cerr << "formal is reference; result should be reference" << std::endl; 126 ) 111 // std::cerr << "formal is reference; result should be reference" << std::endl; 127 112 result = new ReferenceType( ref1->get_qualifiers(), result ); 128 113 } 129 PRINT( 130 std::cerr << "common type of reference [" << type1 << "] and [" << type2 << "] is [" << result << "]" << std::endl; 131 ) 114 // std::cerr << "common type of reference [" << type1 << "] and [" << type2 << "] is [" << result << "]" << std::endl; 132 115 return result; 133 116 }
Note: See TracChangeset
for help on using the changeset viewer.