Changes in src/InitTweak/GenInit.h [11df881:0bd3faf]
- File:
-
- 1 edited
-
src/InitTweak/GenInit.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
src/InitTweak/GenInit.h
r11df881 r0bd3faf 22 22 #include "Common/CodeLocation.h" 23 23 #include "GenPoly/ScopedSet.h" // for ScopedSet 24 #include "SynTree/SynTree.h" // for Visitor Nodes25 24 26 25 namespace InitTweak { 27 26 /// Adds return value temporaries and wraps Initializers in ConstructorInit nodes 28 void genInit( std::list< Declaration * > & translationUnit );29 27 void genInit( ast::TranslationUnit & translationUnit ); 30 28 31 29 /// Converts return statements into copy constructor calls on the hidden return variable. 32 30 /// This pass must happen before auto-gen. 33 void fixReturnStatements( std::list< Declaration * > & translationUnit );34 31 void fixReturnStatements( ast::TranslationUnit & translationUnit ); 35 32 36 33 /// generates a single ctor/dtor statement using objDecl as the 'this' parameter and arg as the optional argument 37 ImplicitCtorDtorStmt * genCtorDtor( const std::string & fname, ObjectDecl * objDecl, Expression * arg = nullptr );38 34 ast::ptr<ast::Stmt> genCtorDtor (const CodeLocation & loc, const std::string & fname, const ast::ObjectDecl * objDecl, const ast::Expr * arg = nullptr); 39 35 40 36 /// creates an appropriate ConstructorInit node which contains a constructor, destructor, and C-initializer 41 ConstructorInit * genCtorInit( ObjectDecl * objDecl );42 37 ast::ConstructorInit * genCtorInit( const CodeLocation & loc, const ast::ObjectDecl * objDecl ); 43 38 44 class ManagedTypes { 45 public: 46 bool isManaged( ObjectDecl * objDecl ) const ; // determine if object is managed 47 bool isManaged( Type * type ) const; // determine if type is managed 48 49 void handleDWT( DeclarationWithType * dwt ); // add type to managed if ctor/dtor 50 void handleStruct( StructDecl * aggregateDecl ); // add type to managed if child is managed 51 52 void beginScope(); 53 void endScope(); 54 private: 55 GenPoly::ScopedSet< std::string > managedTypes; 56 }; 57 58 class ManagedTypes_new { 39 class ManagedTypes final { 59 40 public: 60 41 bool isManaged( const ast::ObjectDecl * objDecl ) const ; // determine if object is managed
Note:
See TracChangeset
for help on using the changeset viewer.