From: Pietro Albini Date: Sun, 18 Nov 2018 22:24:57 +0000 (+0100) Subject: Rollup merge of #56012 - RalfJung:unsafe-cell, r=nikomatsakis X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=2a68c0075a1cf769ebc6f28667cd29fd11b852c1;p=rust.git Rollup merge of #56012 - RalfJung:unsafe-cell, r=nikomatsakis avoid shared ref in UnsafeCell::get Avoid taking a shared reference in `UnsafeCell::get`. This *should* be taking a raw reference (see https://github.com/rust-lang/rfcs/pull/2582), but that operation is not currently available, so I propose we exploit `repr(transparent)` instead and cast the pointer around. This is required to make `UnsafeCell::get` pass the [stacked borrows implementation](https://www.ralfj.de/blog/2018/11/16/stacked-borrows-implementation.html) in miri (currently, `UnsafeCell::get` is on a whitelist, but that is of course not very satisfying). It shouldn't affect normal execution/codegen. Would be great if we could get this landed and shrink miri's whitelist! Cc @nikomatsakis --- 2a68c0075a1cf769ebc6f28667cd29fd11b852c1