File tree Expand file tree Collapse file tree 6 files changed +1007
-801
lines changed Expand file tree Collapse file tree 6 files changed +1007
-801
lines changed Original file line number Diff line number Diff line change @@ -228,6 +228,18 @@ private:
228228 ASTKind kind_;
229229};
230230
231+ template <typename T>
232+ auto make_node(Arena* arena) -> T* {
233+ auto node = new (arena) T();
234+ return node;
235+ }
236+
237+ template <typename T>
238+ auto make_list_node(Arena* arena, T* element = nullptr) -> List<T*>* {
239+ auto list = new (arena) List<T*>(element);
240+ return list;
241+ }
242+
231243[[nodiscard]] inline auto firstSourceLocation(SourceLocation loc) -> SourceLocation { return loc; }
232244
233245template <typename T>
Original file line number Diff line number Diff line change @@ -108,6 +108,18 @@ class AST : public Managed {
108108 ASTKind kind_;
109109};
110110
111+ template <typename T>
112+ auto make_node (Arena* arena) -> T* {
113+ auto node = new (arena) T ();
114+ return node;
115+ }
116+
117+ template <typename T>
118+ auto make_list_node (Arena* arena, T* element = nullptr ) -> List<T*>* {
119+ auto list = new (arena) List<T*>(element);
120+ return list;
121+ }
122+
111123[[nodiscard]] inline auto firstSourceLocation (SourceLocation loc)
112124 -> SourceLocation {
113125 return loc;
You can’t perform that action at this time.
0 commit comments