diff options
| author | Collin J. Sutton <collin.sutton@gmail.com> | 2017-01-08 12:15:39 -0800 |
|---|---|---|
| committer | Collin J. Sutton <collin.sutton@gmail.com> | 2017-01-08 12:15:39 -0800 |
| commit | af221a221fe85bd4b0acaf3203d9f0977ea97f2e (patch) | |
| tree | 3cf2784cb877d6e0d68a33d51ad2999d15ce0b15 /src/libcore | |
| parent | 302602bcb3c608979bb9122960fbe037d92666e9 (diff) | |
| download | rust-af221a221fe85bd4b0acaf3203d9f0977ea97f2e.tar.gz rust-af221a221fe85bd4b0acaf3203d9f0977ea97f2e.zip | |
Updates to src/libcore/ops.rs for RFC#1228 (Placement Left Arrow)
Also fixed a minor typo in docs for `core::ops::Place`.
Diffstat (limited to 'src/libcore')
| -rw-r--r-- | src/libcore/ops.rs | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/libcore/ops.rs b/src/libcore/ops.rs index 40d941a8b27..939fac0503c 100644 --- a/src/libcore/ops.rs +++ b/src/libcore/ops.rs @@ -2747,7 +2747,7 @@ impl<T: ?Sized+Unsize<U>, U: ?Sized> CoerceUnsized<*const U> for *mut T {} #[unstable(feature = "coerce_unsized", issue = "27732")] impl<T: ?Sized+Unsize<U>, U: ?Sized> CoerceUnsized<*const U> for *const T {} -/// Both `in (PLACE) EXPR` and `box EXPR` desugar into expressions +/// Both `PLACE <- EXPR` and `box EXPR` desugar into expressions /// that allocate an intermediate "place" that holds uninitialized /// state. The desugaring evaluates EXPR, and writes the result at /// the address returned by the `pointer` method of this trait. @@ -2762,7 +2762,7 @@ impl<T: ?Sized+Unsize<U>, U: ?Sized> CoerceUnsized<*const U> for *const T {} /// converting the agent to an instance of the owning pointer, via the /// appropriate `finalize` method (see the `InPlace`. /// -/// If evaluating EXPR fails, then the destructor for the +/// If evaluating EXPR fails, then it is up to the destructor for the /// implementation of Place to clean up any intermediate state /// (e.g. deallocate box storage, pop a stack, etc). #[unstable(feature = "placement_new_protocol", issue = "27779")] @@ -2773,9 +2773,9 @@ pub trait Place<Data: ?Sized> { fn pointer(&mut self) -> *mut Data; } -/// Interface to implementations of `in (PLACE) EXPR`. +/// Interface to implementations of `PLACE <- EXPR`. /// -/// `in (PLACE) EXPR` effectively desugars into: +/// `PLACE <- EXPR` effectively desugars into: /// /// ```rust,ignore /// let p = PLACE; @@ -2788,7 +2788,7 @@ pub trait Place<Data: ?Sized> { /// } /// ``` /// -/// The type of `in (PLACE) EXPR` is derived from the type of `PLACE`; +/// The type of `PLACE <- EXPR` is derived from the type of `PLACE`; /// if the type of `PLACE` is `P`, then the final type of the whole /// expression is `P::Place::Owner` (see the `InPlace` and `Boxed` /// traits). @@ -2806,12 +2806,12 @@ pub trait Placer<Data: ?Sized> { fn make_place(self) -> Self::Place; } -/// Specialization of `Place` trait supporting `in (PLACE) EXPR`. +/// Specialization of `Place` trait supporting `PLACE <- EXPR`. #[unstable(feature = "placement_new_protocol", issue = "27779")] pub trait InPlace<Data: ?Sized>: Place<Data> { - /// `Owner` is the type of the end value of `in (PLACE) EXPR` + /// `Owner` is the type of the end value of `PLACE <- EXPR` /// - /// Note that when `in (PLACE) EXPR` is solely used for + /// Note that when `PLACE <- EXPR` is solely used for /// side-effecting an existing data-structure, /// e.g. `Vec::emplace_back`, then `Owner` need not carry any /// information at all (e.g. it can be the unit type `()` in that |
