Changeset 7042c60 for src/Validate/HoistStruct.cpp
- Timestamp:
- Apr 25, 2024, 3:48:17 PM (3 months ago)
- Branches:
- master
- Children:
- eb7586e
- Parents:
- cf191ac (diff), 55c97e4 (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/HoistStruct.cpp
rcf191ac r7042c60 149 149 template<typename InstType> 150 150 InstType const * HoistStructCore::preCollectionInstType( InstType const * type ) { 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 151 if ( !type->base->parent ) return type; 152 if ( type->base->params.empty() ) return type; 153 154 InstType * mut = ast::mutate( type ); 155 ast::AggregateDecl const * parent = 156 commonParent( this->parent, mut->base->parent ); 157 assert( parent ); 158 159 std::vector<ast::ptr<ast::Expr>> args; 160 for ( const ast::ptr<ast::TypeDecl> & param : parent->params ) { 161 args.emplace_back( new ast::TypeExpr( param->location, 162 new ast::TypeInstType( param ) 163 ) ); 164 } 165 spliceBegin( mut->params, args ); 166 return mut; 167 167 } 168 168
Note: See TracChangeset
for help on using the changeset viewer.