summaryrefslogtreecommitdiff
path: root/src/mir/from_hir.cpp
diff options
context:
space:
mode:
authorJohn Hodge <tpg@ucc.asn.au>2019-05-04 17:36:07 +0800
committerJohn Hodge <tpg@ucc.asn.au>2019-05-04 17:36:07 +0800
commit8a74857d5a6323a46757f12078b46718464a006d (patch)
tree59995482609e4ebf33a4de6a1316377b2181d92f /src/mir/from_hir.cpp
parent771c9385a5d7213cb12c1d7b969553b3402c498b (diff)
downloadmrust-8a74857d5a6323a46757f12078b46718464a006d.tar.gz
Match Ergonomics - Auto-deref in `ref` patterns to get `&T`
Diffstat (limited to 'src/mir/from_hir.cpp')
-rw-r--r--src/mir/from_hir.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/mir/from_hir.cpp b/src/mir/from_hir.cpp
index 912b8c78..8d51bf55 100644
--- a/src/mir/from_hir.cpp
+++ b/src/mir/from_hir.cpp
@@ -174,6 +174,11 @@ namespace {
destructure_from_ex(sp, pat, lval.clone(), 3);
}
+ for(size_t i = 0; i < pat.m_binding.m_implicit_deref_count; i ++)
+ {
+ lval = ::MIR::LValue::make_Deref({ box$(lval) });
+ }
+
switch( pat.m_binding.m_type )
{
case ::HIR::PatternBinding::Type::Move: