Changes in src/AST/Init.hpp [60aaa51d:87701b6]
- File:
-
- 1 edited
-
src/AST/Init.hpp (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/AST/Init.hpp
r60aaa51d r87701b6 16 16 #pragma once 17 17 18 #include <deque>19 18 #include <utility> // for move 20 19 #include <vector> … … 23 22 #include "Node.hpp" // for ptr 24 23 #include "Visitor.hpp" 25 26 // Must be included in *all* AST classes; should be #undef'd at the end of the file27 #define MUTATE_FRIEND template<typename node_t> friend node_t * mutate(const node_t * node);28 24 29 25 namespace ast { … … 36 32 class Designation final : public ParseNode { 37 33 public: 38 std:: deque<ptr<Expr>> designators;34 std::vector<ptr<Expr>> designators; 39 35 40 Designation( const CodeLocation& loc, std:: deque<ptr<Expr>>&& ds = {} )36 Designation( const CodeLocation& loc, std::vector<ptr<Expr>>&& ds = {} ) 41 37 : ParseNode( loc ), designators( std::move(ds) ) {} 42 38 … … 44 40 private: 45 41 Designation* clone() const override { return new Designation{ *this }; } 46 MUTATE_FRIEND47 42 }; 48 43 … … 60 55 private: 61 56 Init * clone() const override = 0; 62 MUTATE_FRIEND63 57 }; 64 58 … … 75 69 private: 76 70 SingleInit * clone() const override { return new SingleInit{ *this }; } 77 MUTATE_FRIEND 71 72 /// Must be copied in ALL derived classes 73 template<typename node_t> 74 friend node_t * mutate(const node_t * node); 78 75 }; 79 76 … … 100 97 private: 101 98 ListInit * clone() const override { return new ListInit{ *this }; } 102 MUTATE_FRIEND 99 100 /// Must be copied in ALL derived classes 101 template<typename node_t> 102 friend node_t * mutate(const node_t * node); 103 103 }; 104 104 … … 120 120 private: 121 121 ConstructorInit * clone() const override { return new ConstructorInit{ *this }; } 122 MUTATE_FRIEND 122 123 /// Must be copied in ALL derived classes 124 template<typename node_t> 125 friend node_t * mutate(const node_t * node); 123 126 }; 124 127 125 128 } 126 127 #undef MUTATE_FRIEND128 129 129 130 // Local Variables: //
Note:
See TracChangeset
for help on using the changeset viewer.