summaryrefslogtreecommitdiff
path: root/src/trans
diff options
context:
space:
mode:
authorJohn Hodge <tpg@mutabah.net>2019-11-03 11:59:35 +0800
committerJohn Hodge <tpg@mutabah.net>2019-11-03 11:59:35 +0800
commit56c9b3f6f9c4e9e34477b19b5abf25193dbc3a41 (patch)
treed0b1983ab77eae175086f2587522bddccb47980e /src/trans
parent0a2ea1a773c54c3a4b02edfeb19123aa4224c735 (diff)
downloadmrust-56c9b3f6f9c4e9e34477b19b5abf25193dbc3a41.tar.gz
HIR Expand Closures - Move closure prefix to a common location
Diffstat (limited to 'src/trans')
-rw-r--r--src/trans/auto_impls.cpp3
-rw-r--r--src/trans/enumerate.cpp2
2 files changed, 2 insertions, 3 deletions
diff --git a/src/trans/auto_impls.cpp b/src/trans/auto_impls.cpp
index 71f95a26..67a9e7c1 100644
--- a/src/trans/auto_impls.cpp
+++ b/src/trans/auto_impls.cpp
@@ -109,8 +109,7 @@ void Trans_AutoImpl_Clone(State& state, ::HIR::TypeRef ty)
default:
TODO(sp, "auto Clone for " << ty << " - Unknown and not Copy");
TU_ARMA(Path, te) {
- // closures are identified by the name starting with 'closure#'
- if( TU_TEST1(te.path.m_data, Generic, .m_path.m_components.back().compare(0, 8, "closure#") == 0) ) {
+ if( te.is_closure() ) {
const auto& gp = te.path.m_data.as_Generic();
const auto& str = state.resolve.m_crate.get_struct_by_path(sp, gp.m_path);
Trans_Params p;
diff --git a/src/trans/enumerate.cpp b/src/trans/enumerate.cpp
index d8426022..34d18781 100644
--- a/src/trans/enumerate.cpp
+++ b/src/trans/enumerate.cpp
@@ -1447,7 +1447,7 @@ void Trans_Enumerate_FillFrom_PathMono(EnumState& state, ::HIR::Path path_mono)
else if( const auto* te = inner_ty.m_data.opt_Array() ) {
enum_impl(*te->inner);
}
- else if( TU_TEST2(inner_ty.m_data, Path, .path.m_data, Generic, .m_path.m_components.back().compare(0, 8, "closure#") == 0) ) {
+ else if( TU_TEST1(inner_ty.m_data, Path, .is_closure()) ) {
const auto& gp = inner_ty.m_data.as_Path().path.m_data.as_Generic();
const auto& str = state.crate.get_struct_by_path(sp, gp.m_path);
Trans_Params p;