Changeset 2f42718 for src/SymTab/Mangler.cc
- Timestamp:
- Feb 22, 2019, 10:43:29 AM (5 years ago)
- Branches:
- no_list
- Parents:
- 43e0949
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/SymTab/Mangler.cc
r43e0949 r2f42718 79 79 80 80 public: 81 Mangler( bool mangleOverridable, bool typeMode, bool mangleGenericParams, 82 int nextVarNum, const ResolvExpr::TypeEnvironment* env, 81 Mangler( bool mangleOverridable, bool typeMode, bool mangleGenericParams, 82 int nextVarNum, const ResolvExpr::TypeEnvironment* env, 83 83 const VarMapType& varNums ); 84 84 … … 109 109 } 110 110 111 std::string mangleAssnKey( DeclarationWithType* decl, 111 std::string mangleAssnKey( DeclarationWithType* decl, 112 112 const ResolvExpr::TypeEnvironment& env ) { 113 113 PassVisitor<Mangler> mangler( env ); … … 118 118 namespace { 119 119 Mangler::Mangler( bool mangleOverridable, bool typeMode, bool mangleGenericParams ) 120 : nextVarNum( 0 ), env(nullptr), isTopLevel( true ), 121 mangleOverridable( mangleOverridable ), typeMode( typeMode ), 120 : nextVarNum( 0 ), env(nullptr), isTopLevel( true ), 121 mangleOverridable( mangleOverridable ), typeMode( typeMode ), 122 122 mangleGenericParams( mangleGenericParams ) {} 123 123 124 124 Mangler::Mangler( const ResolvExpr::TypeEnvironment& env ) 125 125 : nextVarNum( 0 ), env( &env ), isTopLevel( true ), mangleOverridable( false ), 126 126 typeMode( false ), mangleGenericParams( true ) {} 127 128 Mangler::Mangler( bool mangleOverridable, bool typeMode, bool mangleGenericParams, 129 int nextVarNum, const ResolvExpr::TypeEnvironment* env, 127 128 Mangler::Mangler( bool mangleOverridable, bool typeMode, bool mangleGenericParams, 129 int nextVarNum, const ResolvExpr::TypeEnvironment* env, 130 130 const VarMapType& varNums ) 131 : varNums( varNums ), nextVarNum( nextVarNum ), env( env ), isTopLevel( false ), 132 mangleOverridable( mangleOverridable ), typeMode( typeMode ), 131 : varNums( varNums ), nextVarNum( nextVarNum ), env( env ), isTopLevel( false ), 132 mangleOverridable( mangleOverridable ), typeMode( typeMode ), 133 133 mangleGenericParams( mangleGenericParams ) {} 134 134 … … 207 207 208 208 namespace { 209 inline std:: list< Type* > getTypes( const std::list< DeclarationWithType* > decls ) {210 std:: list< Type* > ret;209 inline std::vector< Type* > getTypes( const std::vector< DeclarationWithType* > decls ) { 210 std::vector< Type* > ret; 211 211 std::transform( decls.begin(), decls.end(), std::back_inserter( ret ), 212 212 std::mem_fun( &DeclarationWithType::get_type ) ); … … 223 223 GuardValue( inFunctionType ); 224 224 inFunctionType = true; 225 std:: list< Type* > returnTypes = getTypes( functionType->returnVals );225 std::vector< Type* > returnTypes = getTypes( functionType->returnVals ); 226 226 if (returnTypes.empty()) mangleName << Encoding::void_t; 227 227 else acceptAll( returnTypes, *visitor ); 228 228 mangleName << "_"; 229 std:: list< Type* > paramTypes = getTypes( functionType->parameters );229 std::vector< Type* > paramTypes = getTypes( functionType->parameters ); 230 230 acceptAll( paramTypes, *visitor ); 231 231 mangleName << "_"; … … 238 238 239 239 if ( mangleGenericParams ) { 240 std::list< Expression* > & params = refType->parameters;240 std::list< Expression* > & params = refType->parameters; 241 241 if ( ! params.empty() ) { 242 242 mangleName << "_"; 243 for ( std::list< Expression* >::const_iterator param = params.begin(); param != params.end(); ++param) {244 TypeExpr *paramType = dynamic_cast< TypeExpr* >( *param );245 assertf(paramType, "Aggregate parameters should be type expressions: %s", toCString( *param));243 for ( auto param : params ) { 244 TypeExpr *paramType = dynamic_cast< TypeExpr* >( param ); 245 assertf(paramType, "Aggregate parameters should be type expressions: %s", toCString(param)); 246 246 maybeAccept( paramType->type, *visitor ); 247 247 } … … 364 364 if ( varClass && varClass->type ) { 365 365 PassVisitor<Mangler> sub_mangler( 366 mangleOverridable, typeMode, mangleGenericParams, nextVarNum, 366 mangleOverridable, typeMode, mangleGenericParams, nextVarNum, 367 367 env, varNums ); 368 368 varClass->type->accept( sub_mangler ); … … 375 375 } 376 376 varNums[ (*i)->name ] = std::make_pair( varName, (int)(*i)->get_kind() ); 377 for ( std::list< DeclarationWithType* >::iterator assert = (*i)->assertions.begin(); assert != (*i)->assertions.end(); ++assert) {378 PassVisitor<Mangler> sub_mangler( 379 mangleOverridable, typeMode, mangleGenericParams, nextVarNum, env, 377 for ( auto assert : (*i)->assertions ) { 378 PassVisitor<Mangler> sub_mangler( 379 mangleOverridable, typeMode, mangleGenericParams, nextVarNum, env, 380 380 varNums ); 381 (*assert)->accept( sub_mangler );381 assert->accept( sub_mangler ); 382 382 assertionNames.push_back( sub_mangler.pass.get_mangleName() ); 383 383 acount++;
Note: See TracChangeset
for help on using the changeset viewer.