diff options
Diffstat (limited to 'src/parse/interpolated_fragment.cpp')
-rw-r--r-- | src/parse/interpolated_fragment.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/parse/interpolated_fragment.cpp b/src/parse/interpolated_fragment.cpp index d8a8bc43..634309a5 100644 --- a/src/parse/interpolated_fragment.cpp +++ b/src/parse/interpolated_fragment.cpp @@ -31,6 +31,9 @@ InterpolatedFragment::~InterpolatedFragment() case InterpolatedFragment::ITEM: delete reinterpret_cast<AST::Named<AST::Item>*>(m_ptr); break; + case InterpolatedFragment::VIS: + delete reinterpret_cast<AST::Visibility*>(m_ptr); + break; } } } @@ -82,6 +85,11 @@ InterpolatedFragment::InterpolatedFragment(TypeRef v): m_ptr( new TypeRef(mv$(v)) ) { } +InterpolatedFragment::InterpolatedFragment(AST::Visibility v): + m_type( InterpolatedFragment::VIS ), + m_ptr( new AST::Visibility(mv$(v)) ) +{ +} ::std::ostream& operator<<(::std::ostream& os, InterpolatedFragment const& x) { @@ -117,6 +125,9 @@ InterpolatedFragment::InterpolatedFragment(TypeRef v): const auto& named_item = *reinterpret_cast<const AST::Named<AST::Item>*>(x.m_ptr); os << "item[" << named_item.data.tag_str() << "(" << named_item.name << ")]"; } break; + case InterpolatedFragment::VIS: + os << "vis[" << *reinterpret_cast<const AST::Visibility*>(x.m_ptr) << "]"; + break; } return os; } |