Changeset fc1a3e2 for src/Validate/HoistStruct.cpp
- Timestamp:
- Apr 19, 2024, 2:36:52 PM (7 months ago)
- Branches:
- master
- Children:
- ba97ebf
- Parents:
- b9b6efb
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Validate/HoistStruct.cpp
rb9b6efb rfc1a3e2 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.