Don't check for conflicting borrows of ReadForMatch
es
This commit is contained in:
parent
a6fad3f620
commit
46e247bcec
1 changed files with 12 additions and 3 deletions
|
@ -499,11 +499,20 @@ impl<'cx, 'gcx, 'tcx> DataflowResultsConsumer<'cx, 'tcx> for MirBorrowckCtxt<'cx
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
StatementKind::FakeRead(_, ref place) => {
|
StatementKind::FakeRead(_, ref place) => {
|
||||||
self.access_place(
|
// Read for match doesn't access any memory and is used to
|
||||||
|
// assert that a place is safe and live. So we don't have to
|
||||||
|
// do any checks here.
|
||||||
|
//
|
||||||
|
// FIXME: Remove check that the place is initialized. This is
|
||||||
|
// needed for now because matches don't have never patterns yet.
|
||||||
|
// So this is the only place we prevent
|
||||||
|
// let x: !;
|
||||||
|
// match x {};
|
||||||
|
// from compiling.
|
||||||
|
self.check_if_path_or_subpath_is_moved(
|
||||||
ContextKind::FakeRead.new(location),
|
ContextKind::FakeRead.new(location),
|
||||||
|
InitializationRequiringAction::Use,
|
||||||
(place, span),
|
(place, span),
|
||||||
(Deep, Read(ReadKind::Borrow(BorrowKind::Shared))),
|
|
||||||
LocalMutationIsAllowed::No,
|
|
||||||
flow_state,
|
flow_state,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue