Skip to content

Commit 73e9259

Browse files
Remove breakage example
1 parent a963d8d commit 73e9259

File tree

1 file changed

+2
-26
lines changed
  • library/core/src/convert

1 file changed

+2
-26
lines changed

library/core/src/convert/mod.rs

+2-26
Original file line numberDiff line numberDiff line change
@@ -645,31 +645,7 @@ impl AsMut<str> for str {
645645
/// }
646646
/// ```
647647
///
648-
/// # Future compatibility
649-
///
650-
/// This enum has the same role as [the `!` “never” type][never],
651-
/// which is unstable in this version of Rust.
652-
/// When `!` is stabilized, we plan to make `Infallible` a type alias to it:
653-
///
654-
/// ```ignore (illustrates future std change)
655-
/// pub type Infallible = !;
656-
/// ```
657-
///
658-
/// … and eventually deprecate `Infallible`.
659-
///
660-
/// However there is one case where `!` syntax can be used
661-
/// before `!` is stabilized as a full-fledged type: in the position of a function’s return type.
662-
/// Specifically, it is possible implementations for two different function pointer types:
663-
///
664-
/// ```
665-
/// trait MyTrait {}
666-
/// impl MyTrait for fn() -> ! {}
667-
/// impl MyTrait for fn() -> std::convert::Infallible {}
668-
/// ```
669-
///
670-
/// With `Infallible` being an enum, this code is valid.
671-
/// However when `Infallible` becomes an alias for the never type,
672-
/// the two `impl`s will start to overlap
673-
/// and therefore will be disallowed by the language’s trait coherence rules.
648+
/// This has the same role as [the `!` “never” type][never], and is in fact an
649+
/// alias to it. Generally speaking, you should prefer the never type.
674650
#[stable(feature = "convert_infallible", since = "1.34.0")]
675651
pub type Infallible = !;

0 commit comments

Comments
 (0)