diff options
| author | Janik Rabe <info@janikrabe.com> | 2020-06-16 16:14:16 +0300 |
|---|---|---|
| committer | Janik Rabe <info@janikrabe.com> | 2020-07-15 22:27:48 +0300 |
| commit | d2fe7a7c761d625051a875e320b6e50fe7e33c41 (patch) | |
| tree | c1c81c4bfc32fb9991f2a1e9192213dcf933d1f2 | |
| parent | f315c35a77e40bd11ce81fedc0556be0f410bbf4 (diff) | |
| download | rust-d2fe7a7c761d625051a875e320b6e50fe7e33c41.tar.gz rust-d2fe7a7c761d625051a875e320b6e50fe7e33c41.zip | |
Clarify effect of orphan rule changes on From/Into
Updated documentation for `std::convert` and `std::convert::From` to reflect changes to orphan rule in Rust 1.41. It should no longer be necessary to implement Into directly, unless targeting an older version.
| -rw-r--r-- | src/libcore/convert/mod.rs | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/libcore/convert/mod.rs b/src/libcore/convert/mod.rs index eef9ee7cb00..2b85234f0cd 100644 --- a/src/libcore/convert/mod.rs +++ b/src/libcore/convert/mod.rs @@ -18,8 +18,9 @@ //! [`TryFrom<T>`][`TryFrom`] rather than [`Into<U>`][`Into`] or [`TryInto<U>`][`TryInto`], //! as [`From`] and [`TryFrom`] provide greater flexibility and offer //! equivalent [`Into`] or [`TryInto`] implementations for free, thanks to a -//! blanket implementation in the standard library. Only implement [`Into`] or [`TryInto`] -//! when a conversion to a type outside the current crate is required. +//! blanket implementation in the standard library. When targeting a version prior to Rust 1.41, it +//! may be necessary to implement [`Into`] or [`TryInto`] directly when converting to a type +//! outside the current crate. //! //! # Generic Implementations //! @@ -298,8 +299,10 @@ pub trait Into<T>: Sized { /// because implementing `From` automatically provides one with an implementation of [`Into`] /// thanks to the blanket implementation in the standard library. /// -/// Only implement [`Into`] if a conversion to a type outside the current crate is required. -/// `From` cannot do these type of conversions because of Rust's orphaning rules. +/// Only implement [`Into`] when targeting a version prior to Rust 1.41 and converting to a type +/// outside the current crate. +/// `From` was not able to do these types of conversions in earlier versions because of Rust's +/// orphaning rules. /// See [`Into`] for more details. /// /// Prefer using [`Into`] over using `From` when specifying trait bounds on a generic function. |
