Changeset 2a301ff for src/Validate/ReplaceTypedef.cpp
- Timestamp:
- Aug 31, 2023, 11:31:15 PM (2 years ago)
- Branches:
- master
- Children:
- 950c58e
- Parents:
- 92355883 (diff), 686912c (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Validate/ReplaceTypedef.cpp
r92355883 r2a301ff 20 20 #include "Common/ScopedMap.h" 21 21 #include "Common/UniqueName.h" 22 #include "Common/utility.h"23 22 #include "ResolvExpr/Unify.h" 24 23 … … 294 293 aggrDecl->name, ast::Storage::Classes(), type, aggrDecl->linkage ); 295 294 // Add the implicit typedef to the AST. 296 declsToAdd Before.push_back( ast::deepCopy( typeDecl.get() ) );295 declsToAddAfter.push_back( ast::deepCopy( typeDecl.get() ) ); 297 296 // Shore the name in the map of names. 298 297 typedefNames[ aggrDecl->name ] = … … 316 315 auto mut = ast::mutate( decl ); 317 316 318 std:: vector<ast::ptr<ast::Decl>> members;317 std::list<ast::ptr<ast::Decl>> members; 319 318 // Unroll accept_all for decl->members so that implicit typedefs for 320 319 // nested types are added to the aggregate body. 321 320 for ( ast::ptr<ast::Decl> const & member : mut->members ) { 321 assert( declsToAddBefore.empty() ); 322 322 assert( declsToAddAfter.empty() ); 323 323 ast::Decl const * newMember = nullptr; … … 328 328 } 329 329 if ( !declsToAddBefore.empty() ) { 330 for ( auto declToAdd : declsToAddBefore ) { 331 members.push_back( declToAdd ); 332 } 333 declsToAddBefore.clear(); 330 members.splice( members.end(), declsToAddBefore ); 334 331 } 335 332 members.push_back( newMember ); 336 } 333 if ( !declsToAddAfter.empty() ) { 334 members.splice( members.end(), declsToAddAfter ); 335 } 336 } 337 assert( declsToAddBefore.empty() ); 337 338 assert( declsToAddAfter.empty() ); 338 339 if ( !errors.isEmpty() ) { throw errors; }
Note:
See TracChangeset
for help on using the changeset viewer.