Changeset 92f5279
- Timestamp:
- Jun 25, 2019, 2:51:50 PM (5 years ago)
- Branches:
- ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
- Children:
- b604426
- Parents:
- bcb311b
- Location:
- src/AST
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
src/AST/Decl.hpp
rbcb311b r92f5279 201 201 TypeDecl * clone() const override { return new TypeDecl{ *this }; } 202 202 MUTATE_FRIEND 203 friend class ParameterizedType; // to allow deep clones 203 204 }; 204 205 -
src/AST/Type.hpp
rbcb311b r92f5279 268 268 public: 269 269 using ForallList = std::vector<ptr<TypeDecl>>; 270 270 271 271 ForallList forall; 272 272 … … 277 277 ParameterizedType( CV::Qualifiers q, std::vector<ptr<Attribute>> && as = {} ) 278 278 : Type(q, std::move(as)), forall() {} 279 280 ParameterizedType( const ParameterizedType & o ) : Type( o ), forall() { 281 // one-level deep clone to avoid weak-reference errors 282 forall.reserve( o.forall.size() ); 283 for ( const TypeDecl * d : o.forall ) { forall.emplace_back( d->clone() ); } 284 } 285 286 ParameterizedType( ParameterizedType && ) = default; 287 288 // no need to change destructor, and operator= deleted in Node 279 289 280 290 private:
Note: See TracChangeset
for help on using the changeset viewer.