diff options
author | John Hodge <tpg@ucc.asn.au> | 2019-05-04 17:36:07 +0800 |
---|---|---|
committer | John Hodge <tpg@ucc.asn.au> | 2019-05-04 17:36:07 +0800 |
commit | 8a74857d5a6323a46757f12078b46718464a006d (patch) | |
tree | 59995482609e4ebf33a4de6a1316377b2181d92f /src/mir/from_hir.cpp | |
parent | 771c9385a5d7213cb12c1d7b969553b3402c498b (diff) | |
download | mrust-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.cpp | 5 |
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: |