Only track (trivially) freeze types
This commit is contained in:
parent
b5063ab0e5
commit
1765587846
2 changed files with 6 additions and 2 deletions
|
@ -849,7 +849,7 @@ impl<'tcx> Ty<'tcx> {
|
|||
///
|
||||
/// Returning true means the type is known to be `Freeze`. Returning
|
||||
/// `false` means nothing -- could be `Freeze`, might not be.
|
||||
fn is_trivially_freeze(self) -> bool {
|
||||
pub fn is_trivially_freeze(self) -> bool {
|
||||
match self.kind() {
|
||||
ty::Int(_)
|
||||
| ty::Uint(_)
|
||||
|
|
|
@ -674,7 +674,11 @@ impl Map {
|
|||
return Err(());
|
||||
}
|
||||
|
||||
// FIXME: Check that the place is `Freeze`.
|
||||
if !ty.is_trivially_freeze() {
|
||||
// Due to the way we deal with shared references, only `Freeze` types may be tracked.
|
||||
// We are a little bit to restrictive here by only allowing trivially `Freeze` types.
|
||||
return Err(());
|
||||
}
|
||||
|
||||
let place = self.make_place(local, projection)?;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue