- | Rvalue::Ref(_, BorrowKind::Shallow, ref place) => {
- self.check_immutable_borrow_like(location, place)
- }
-
- Rvalue::AddressOf(Mutability::Not, ref place) => {
- self.check_immutable_borrow_like(location, place)
+ | Rvalue::Ref(_, BorrowKind::Shallow, ref place)
+ | Rvalue::AddressOf(Mutability::Not, ref place) => {
+ let borrowed_place_has_mut_interior = HasMutInterior::in_place(
+ &self.item,
+ &mut |local| self.qualifs.has_mut_interior(local, location),
+ place.as_ref(),
+ );
+
+ if borrowed_place_has_mut_interior {
+ self.check_op(ops::CellBorrow);
+ }