summaryrefslogtreecommitdiff
path: root/src/ast/path.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ast/path.hpp')
-rw-r--r--src/ast/path.hpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/ast/path.hpp b/src/ast/path.hpp
index 447ff0a0..4701b03a 100644
--- a/src/ast/path.hpp
+++ b/src/ast/path.hpp
@@ -80,6 +80,7 @@ private:
RELATIVE,
ABSOLUTE,
LOCAL,
+ UFCS,
};
/// The crate defining the root of this path (used for path resolution)
@@ -89,7 +90,9 @@ private:
/// - Absolute is "relative" to the crate root
/// - Relative doesn't have a set crate (and can't be resolved)
/// - Local is a special case to handle possible use of local varaibles
+ /// - UFCS is relative to a type
Class m_class;
+ ::std::vector<TypeRef> m_ufcs;
::std::vector<PathNode> m_nodes;
BindingType m_binding_type = UNBOUND;
@@ -114,6 +117,8 @@ public:
Path(TagAbsolute):
m_class(ABSOLUTE)
{}
+ struct TagUfcs {};
+ Path(TagUfcs, TypeRef type, TypeRef trait);
struct TagLocal {};
Path(TagLocal, ::std::string name):
m_class(LOCAL),