diff options
author | John Hodge <tpg@ucc.asn.au> | 2019-02-09 22:32:40 +0800 |
---|---|---|
committer | John Hodge <tpg@ucc.asn.au> | 2019-02-09 22:32:40 +0800 |
commit | 054faa303107d5940463465d729cc0d1e2ec8473 (patch) | |
tree | 8d2c6948c3487ec4619ef51d1927ad0dc23adf60 /src/hir_expand/annotate_value_usage.cpp | |
parent | f907e918d75bff4d0c5030fb5c626194c5f2dc89 (diff) | |
download | mrust-054faa303107d5940463465d729cc0d1e2ec8473.tar.gz |
Typecheck - Various fixes for librustc
Diffstat (limited to 'src/hir_expand/annotate_value_usage.cpp')
-rw-r--r-- | src/hir_expand/annotate_value_usage.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/hir_expand/annotate_value_usage.cpp b/src/hir_expand/annotate_value_usage.cpp index 1754bdac..e763586c 100644 --- a/src/hir_expand/annotate_value_usage.cpp +++ b/src/hir_expand/annotate_value_usage.cpp @@ -520,6 +520,12 @@ namespace { ), (Struct, const auto& str = *pe.binding; + if( pe.is_wildcard() ) + return ::HIR::ValueUsage::Borrow; + if( pe.sub_patterns.empty() && (TU_TEST1(str.m_data, Tuple, .empty()) || str.m_data.is_Unit()) ) { + return ::HIR::ValueUsage::Borrow; + } + ASSERT_BUG(sp, str.m_data.is_Named(), "Struct pattern on non-brace struct"); const auto& flds = str.m_data.as_Named(); auto monomorph_cb = monomorphise_type_get_cb(sp, nullptr, &pe.path.m_params, nullptr); |