diff options
author | John Hodge <tpg@mutabah.net> | 2018-12-28 08:37:09 +0800 |
---|---|---|
committer | John Hodge <tpg@mutabah.net> | 2018-12-28 08:37:09 +0800 |
commit | 38575976d5835cb8cc9e7ae335969873d01e7d65 (patch) | |
tree | 769a861d29ee3470a42fb7cb829944c9255e031d /src/parse/interpolated_fragment.cpp | |
parent | a0bdedaaed4393236877c45bb56692fe05732a56 (diff) | |
download | mrust-38575976d5835cb8cc9e7ae335969873d01e7d65.tar.gz |
macro_rules - Support for the :vis fragment
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; } |