From 38575976d5835cb8cc9e7ae335969873d01e7d65 Mon Sep 17 00:00:00 2001 From: John Hodge Date: Fri, 28 Dec 2018 08:37:09 +0800 Subject: macro_rules - Support for the :vis fragment --- src/parse/interpolated_fragment.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src/parse/interpolated_fragment.cpp') 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*>(m_ptr); break; + case InterpolatedFragment::VIS: + delete reinterpret_cast(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*>(x.m_ptr); os << "item[" << named_item.data.tag_str() << "(" << named_item.name << ")]"; } break; + case InterpolatedFragment::VIS: + os << "vis[" << *reinterpret_cast(x.m_ptr) << "]"; + break; } return os; } -- cgit v1.2.3