Changes in src/GenPoly/SpecializeNew.cpp [d85141f:8f31be6]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/GenPoly/SpecializeNew.cpp
rd85141f r8f31be6 81 81 } 82 82 83 // The number of elements in a list, if all tuples had been flattened.84 size_t flatT ypeListSize( const std::vector<ast::ptr<ast::Type>> & types) {85 size_t sum = 0;86 for ( const ast::ptr<ast::Type> & type : types ) {87 if ( const ast::TupleType * tuple = type.as<ast::TupleType>()) {88 sum += flatT ypeListSize( tuple->types);89 } else {90 sum += 1;91 }92 }93 return sum;83 // The number of elements in a type if it is a flattened tuple. 84 size_t flatTupleSize( const ast::Type * type ) { 85 if ( auto tuple = dynamic_cast<const ast::TupleType *>( type ) ) { 86 size_t sum = 0; 87 for ( auto t : *tuple ) { 88 sum += flatTupleSize( t ); 89 } 90 return sum; 91 } else { 92 return 1; 93 } 94 94 } 95 95 96 96 // Find the total number of components in a parameter list. 97 97 size_t functionParameterSize( const ast::FunctionType * type ) { 98 return flatTypeListSize( type->params ); 98 size_t sum = 0; 99 for ( auto param : type->params ) { 100 sum += flatTupleSize( param ); 101 } 102 return sum; 99 103 } 100 104
Note: See TracChangeset
for help on using the changeset viewer.