Changes in src/GenPoly/SpecializeNew.cpp [c6b4432:8f31be6]
- File:
-
- 1 edited
-
src/GenPoly/SpecializeNew.cpp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/GenPoly/SpecializeNew.cpp
rc6b4432 r8f31be6 23 23 #include "GenPoly/GenPoly.h" // for getFunctionType 24 24 #include "ResolvExpr/FindOpenVars.h" // for findOpenVars 25 #include "ResolvExpr/TypeEnvironment.h" // for FirstOpen, FirstClosed 25 26 26 27 namespace GenPoly { … … 80 81 } 81 82 82 // The number of elements in a list, if all tuples had been flattened.83 size_t flatT ypeListSize( const std::vector<ast::ptr<ast::Type>> & types) {84 size_t sum = 0;85 for ( const ast::ptr<ast::Type> & type : types ) {86 if ( const ast::TupleType * tuple = type.as<ast::TupleType>()) {87 sum += flatT ypeListSize( tuple->types);88 } else {89 sum += 1;90 }91 }92 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 } 93 94 } 94 95 95 96 // Find the total number of components in a parameter list. 96 97 size_t functionParameterSize( const ast::FunctionType * type ) { 97 return flatTypeListSize( type->params ); 98 size_t sum = 0; 99 for ( auto param : type->params ) { 100 sum += flatTupleSize( param ); 101 } 102 return sum; 98 103 } 99 104
Note:
See TracChangeset
for help on using the changeset viewer.