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