summaryrefslogtreecommitdiff
path: root/src/hir/from_ast_expr.cpp
diff options
context:
space:
mode:
authorJohn Hodge <tpg@mutabah.net>2016-05-20 16:47:34 +0800
committerJohn Hodge <tpg@mutabah.net>2016-05-20 16:47:34 +0800
commitd2fcab19c6d8441f1b0610cb2147a43292893764 (patch)
treeead58ba93db85883baddb93a531f7a71d26cfdf9 /src/hir/from_ast_expr.cpp
parent4ef6649aa789d8f57c62d0e848233967abde959d (diff)
downloadmrust-d2fcab19c6d8441f1b0610cb2147a43292893764.tar.gz
Resolve - Bind already-known locals (e.g. `self`)
Diffstat (limited to 'src/hir/from_ast_expr.cpp')
-rw-r--r--src/hir/from_ast_expr.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/hir/from_ast_expr.cpp b/src/hir/from_ast_expr.cpp
index e5088d71..690d31cb 100644
--- a/src/hir/from_ast_expr.cpp
+++ b/src/hir/from_ast_expr.cpp
@@ -380,6 +380,9 @@ struct LowerHIR_ExprNode_Visitor:
}
virtual void visit(::AST::ExprNode_NamedValue& v) override {
TU_IFLET(::AST::Path::Class, v.m_path.m_class, Local, e,
+ if( !v.m_path.binding().is_Variable() ) {
+ BUG(v.get_pos(), "Named value was a local, but wasn't bound - " << v.m_path);
+ }
auto slot = v.m_path.binding().as_Variable().slot;
m_rv.reset( new ::HIR::ExprNode_Variable( e.name, slot ) );
)