diff options
Diffstat (limited to 'src/ast/ast.cpp')
-rw-r--r-- | src/ast/ast.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/ast/ast.cpp b/src/ast/ast.cpp index 420ac250..6e93a0d9 100644 --- a/src/ast/ast.cpp +++ b/src/ast/ast.cpp @@ -191,6 +191,14 @@ Struct Struct::clone() const throw "";
}
+Union Union::clone() const
+{
+ decltype(m_variants) new_vars;
+ for(const auto& f : m_variants)
+ new_vars.push_back( f.clone() );
+ return Union(m_params.clone(), mv$(new_vars));
+}
+
::std::ostream& operator<<(::std::ostream& os, const ImplDef& impl)
{
return os << "impl<" << impl.m_params << "> " << impl.m_trait.ent << " for " << impl.m_type << "";
@@ -343,6 +351,9 @@ Item Item::clone() const (Enum,
return AST::Item(e.clone());
),
+ (Union,
+ return AST::Item(e.clone());
+ ),
(Trait,
return AST::Item(e.clone());
),
|