summaryrefslogtreecommitdiff
path: root/src/ast/path.cpp
diff options
context:
space:
mode:
authorJohn Hodge <tpg@mutabah.net>2016-03-30 20:29:42 +0800
committerJohn Hodge <tpg@mutabah.net>2016-03-30 20:29:42 +0800
commit0397724cfdbff39773ecc825dc25917b860ee982 (patch)
tree7a8bbd5475c6a743bbba1b113c2c7c33163c3bfa /src/ast/path.cpp
parent8f77e93357eeb45a31b14af91cd749a379da5179 (diff)
downloadmrust-0397724cfdbff39773ecc825dc25917b860ee982.tar.gz
AST - Path binding clone
Diffstat (limited to 'src/ast/path.cpp')
-rw-r--r--src/ast/path.cpp18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/ast/path.cpp b/src/ast/path.cpp
index 60dee881..5b1ba2f8 100644
--- a/src/ast/path.cpp
+++ b/src/ast/path.cpp
@@ -33,7 +33,23 @@ namespace AST {
}
PathBinding PathBinding::clone() const
{
- assert(!"TODO: PathBinding::clone()");
+ TU_MATCH(::AST::PathBinding, (*this), (e),
+ (Unbound , return PathBinding::make_Unbound({}); ),
+ (Module , return PathBinding::make_Module(e); ),
+ (Trait , return PathBinding::make_Trait(e); ),
+ (Struct , return PathBinding::make_Struct(e); ),
+ (Enum , return PathBinding::make_Enum(e); ),
+ (Static , return PathBinding::make_Static(e); ),
+ (Function, return PathBinding::make_Function(e); ),
+ (TypeAlias, return PathBinding::make_TypeAlias(e); ),
+ (EnumVar , return PathBinding::make_EnumVar(e); ),
+ (StructMethod, return PathBinding::make_StructMethod(e); ),
+ (TraitMethod, return PathBinding::make_TraitMethod(e); ),
+
+ (TypeParameter, return PathBinding::make_TypeParameter(e); ),
+ (Variable, return PathBinding::make_Variable(e); )
+ )
+ throw "BUG: Fell off the end of PathBinding::clone";
}
// --- AST::PathNode