Use slice patterns to match projection base

This commit is contained in:
Santiago Pastorino 2019-08-24 20:53:20 -04:00
parent b04e6c7344
commit e73d189e4e
No known key found for this signature in database
GPG key ID: 88C941CDA1D46432
12 changed files with 66 additions and 117 deletions

View file

@ -720,12 +720,9 @@ macro_rules! make_mir_visitor {
projection: & $($mutability)? [PlaceElem<'tcx>],
context: PlaceContext,
location: Location) {
if !projection.is_empty() {
let proj_len = projection.len();
let proj_base = & $($mutability)? projection[..proj_len - 1];
if let [proj_base @ .., elem] = projection {
self.visit_projection(base, proj_base, context, location);
let elem = & $($mutability)? projection[proj_len - 1];
match elem {
ProjectionElem::Field(_field, ty) => {
self.visit_ty(ty, TyContext::Location(location));