diff options
Diffstat (limited to 'src/parse/interpolated_fragment.cpp')
-rw-r--r-- | src/parse/interpolated_fragment.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/parse/interpolated_fragment.cpp b/src/parse/interpolated_fragment.cpp index e907978b..f0d7c19c 100644 --- a/src/parse/interpolated_fragment.cpp +++ b/src/parse/interpolated_fragment.cpp @@ -3,6 +3,7 @@ #include <iostream> #include "interpolated_fragment.hpp" #include <ast/ast.hpp> +#include <ast/expr.hpp> // For definition of ExprNode InterpolatedFragment::~InterpolatedFragment() { @@ -22,6 +23,9 @@ InterpolatedFragment::~InterpolatedFragment() case InterpolatedFragment::META: delete reinterpret_cast<AST::MetaItem*>(m_ptr); break; + case InterpolatedFragment::ITEM: + delete reinterpret_cast<AST::Named<AST::Item>*>(m_ptr); + break; } } } @@ -48,6 +52,11 @@ InterpolatedFragment::InterpolatedFragment(AST::MetaItem v): m_ptr( new AST::MetaItem(mv$(v)) ) { } +InterpolatedFragment::InterpolatedFragment(::AST::Named<::AST::Item> v): + m_type( InterpolatedFragment::ITEM ), + m_ptr( new ::AST::Named<::AST::Item>( mv$(v) ) ) +{ +} InterpolatedFragment::InterpolatedFragment(TokenTree v): m_type( InterpolatedFragment::TT ), m_ptr( new TokenTree(mv$(v)) ) @@ -99,6 +108,9 @@ InterpolatedFragment::InterpolatedFragment(TypeRef v): case InterpolatedFragment::META: os << "meta[" << *reinterpret_cast<AST::MetaItem*>(x.m_ptr) << "]"; break; + case InterpolatedFragment::ITEM: + os << "item[?]"; + break; } return os; } |