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) => {
|
||||
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),
|
||||
InitializationRequiringAction::Use,
|
||||
(place, span),
|
||||
(Deep, Read(ReadKind::Borrow(BorrowKind::Shared))),
|
||||
LocalMutationIsAllowed::No,
|
||||
flow_state,
|
||||
);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue