Changes in src/AST/Stmt.hpp [6cebfef:37cdd97]
- File:
-
- 1 edited
-
src/AST/Stmt.hpp (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/AST/Stmt.hpp
r6cebfef r37cdd97 27 27 28 28 // Must be included in *all* AST classes; should be #undef'd at the end of the file 29 #define MUTATE_FRIEND \ 30 template<typename node_t> friend node_t * mutate(const node_t * node); \ 31 template<typename node_t> friend node_t * shallowCopy(const node_t * node); 29 #define MUTATE_FRIEND template<typename node_t> friend node_t * mutate(const node_t * node); 32 30 33 31 namespace ast { … … 414 412 class ImplicitCtorDtorStmt final : public Stmt { 415 413 public: 416 ptr<Stmt> callStmt;414 readonly<Stmt> callStmt; 417 415 418 416 ImplicitCtorDtorStmt( const CodeLocation & loc, const Stmt * callStmt, … … 423 421 private: 424 422 ImplicitCtorDtorStmt * clone() const override { return new ImplicitCtorDtorStmt{ *this }; } 425 MUTATE_FRIEND426 };427 428 /// Mutex Statement429 class MutexStmt final : public Stmt {430 public:431 ptr<Stmt> stmt;432 std::vector<ptr<Expr>> mutexObjs;433 434 MutexStmt( const CodeLocation & loc, const Stmt * stmt,435 std::vector<ptr<Expr>> && mutexes, std::vector<Label> && labels = {} )436 : Stmt(loc, std::move(labels)), stmt(stmt), mutexObjs(std::move(mutexes)) {}437 438 const Stmt * accept( Visitor & v ) const override { return v.visit( this ); }439 private:440 MutexStmt * clone() const override { return new MutexStmt{ *this }; }441 423 MUTATE_FRIEND 442 424 };
Note:
See TracChangeset
for help on using the changeset viewer.