Enum rustc_middle::ty::adjustment::AllowTwoPhase [−][src]
pub enum AllowTwoPhase {
Yes,
No,
}Expand description
At least for initial deployment, we want to limit two-phase borrows to only a few specific cases. Right now, those are mostly “things that desugar” into method calls:
- using
x.some_method()syntax, where some_method takes&mut self, - using
Foo::some_method(&mut x, ...)syntax, - binary assignment operators (
+=,-=,*=, etc.). Anything else should be rejected until generalized two-phase borrow support is implemented. Right now, dataflow can’t handle the general case where there is more than one use of a mutable borrow, and we don’t want to accept too much new code via two-phase borrows, so we try to limit where we create two-phase capable mutable borrows. See #49434 for tracking.
Variants
Trait Implementations
impl Clone for AllowTwoPhase[src]
impl Clone for AllowTwoPhase[src]fn clone(&self) -> AllowTwoPhase[src]
fn clone(&self) -> AllowTwoPhase[src]Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)1.0.0[src]
fn clone_from(&mut self, source: &Self)1.0.0[src]Performs copy-assignment from source. Read more
impl Debug for AllowTwoPhase[src]
impl Debug for AllowTwoPhase[src]impl<'tcx, __D: TyDecoder<'tcx>> Decodable<__D> for AllowTwoPhase[src]
impl<'tcx, __D: TyDecoder<'tcx>> Decodable<__D> for AllowTwoPhase[src]impl<'tcx, __E: TyEncoder<'tcx>> Encodable<__E> for AllowTwoPhase[src]
impl<'tcx, __E: TyEncoder<'tcx>> Encodable<__E> for AllowTwoPhase[src]impl<'__ctx> HashStable<StableHashingContext<'__ctx>> for AllowTwoPhase[src]
impl<'__ctx> HashStable<StableHashingContext<'__ctx>> for AllowTwoPhase[src]fn hash_stable(
&self,
__hcx: &mut StableHashingContext<'__ctx>,
__hasher: &mut StableHasher
)[src]
&self,
__hcx: &mut StableHashingContext<'__ctx>,
__hasher: &mut StableHasher
)
impl PartialEq<AllowTwoPhase> for AllowTwoPhase[src]
impl PartialEq<AllowTwoPhase> for AllowTwoPhase[src]impl Copy for AllowTwoPhase[src]
impl StructuralPartialEq for AllowTwoPhase[src]
Auto Trait Implementations
impl RefUnwindSafe for AllowTwoPhase
impl Send for AllowTwoPhase
impl Sync for AllowTwoPhase
impl Unpin for AllowTwoPhase
impl UnwindSafe for AllowTwoPhase
Blanket Implementations
impl<'tcx, T> ArenaAllocatable<'tcx, ()> for T where
T: Copy, [src]
impl<'tcx, T> ArenaAllocatable<'tcx, ()> for T where
T: Copy, [src]pub fn allocate_on(Self, &'a Arena<'tcx>) -> &'a mut T[src]
pub fn allocate_from_iter(
&'a Arena<'tcx>,
impl IntoIterator<Item = T>
) -> &'a mut [T]ⓘ[src]
&'a Arena<'tcx>,
impl IntoIterator<Item = T>
) -> &'a mut [T]ⓘ
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]pub fn borrow_mut(&mut self) -> &mut T[src]
pub fn borrow_mut(&mut self) -> &mut T[src]Mutably borrows from an owned value. Read more
impl<T> MaybeResult<T> for T[src]
impl<T> MaybeResult<T> for T[src]impl<T> ToOwned for T where
T: Clone, [src]
impl<T> ToOwned for T where
T: Clone, [src]type Owned = T
type Owned = TThe resulting type after obtaining ownership.
pub fn to_owned(&self) -> T[src]
pub fn to_owned(&self) -> T[src]Creates owned data from borrowed data, usually by cloning. Read more
pub fn clone_into(&self, target: &mut T)[src]
pub fn clone_into(&self, target: &mut T)[src]🔬 This is a nightly-only experimental API. (toowned_clone_into)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more
impl<T> WithConstness for T[src]
impl<T> WithConstness for T[src]fn with_constness(self, constness: Constness) -> ConstnessAnd<Self>[src]
fn with_const(self) -> ConstnessAnd<Self>[src]
fn without_const(self) -> ConstnessAnd<Self>[src]
impl<'a, T> Captures<'a> for T where
T: ?Sized, [src]
T: ?Sized,