Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/AST/Stmt.hpp

    r6cebfef r37cdd97  
    2727
    2828// 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);
    3230
    3331namespace ast {
     
    414412class ImplicitCtorDtorStmt final : public Stmt {
    415413public:
    416         ptr<Stmt> callStmt;
     414        readonly<Stmt> callStmt;
    417415
    418416        ImplicitCtorDtorStmt( const CodeLocation & loc, const Stmt * callStmt,
     
    423421private:
    424422        ImplicitCtorDtorStmt * clone() const override { return new ImplicitCtorDtorStmt{ *this }; }
    425         MUTATE_FRIEND
    426 };
    427 
    428 /// Mutex Statement
    429 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 }; }
    441423        MUTATE_FRIEND
    442424};
Note: See TracChangeset for help on using the changeset viewer.