1
Fork 0

Temporarily only adding UserAssertTy on binding patterns.

This commit is contained in:
David Wood 2018-03-21 19:47:08 +00:00
parent e1648bde17
commit fc5c4daa88
No known key found for this signature in database
GPG key ID: 01760B4F9F53F154

View file

@ -125,11 +125,17 @@ impl<'a, 'gcx, 'tcx> Builder<'a, 'gcx, 'tcx> {
})
}));
} else {
// FIXME: We currently only insert `UserAssertTy` statements for patterns
// that are bindings, this is as we do not want to deconstruct the type
// being assertion to match the pattern.
if let PatternKind::Binding { var, .. } = *pattern.kind {
if let Some(ty) = ty {
this.user_assert_ty(block, ty, var, span);
}
}
this.visit_bindings(&pattern, &mut |this, _, _, node, span, _| {
this.storage_live_binding(block, node, span);
if let Some(ty) = ty {
this.user_assert_ty(block, ty, node, span);
}
this.schedule_drop_for_binding(node, span);
})
}