mirror of
https://github.com/rust-lang/rust.git
synced 2025-02-16 17:03:35 +00:00
enable rust_2018_idioms
for doctests
Signed-off-by: ozkanonur <work@onurozkan.dev>
This commit is contained in:
parent
8b8110e146
commit
4e7c14fe9f
@ -1474,6 +1474,8 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
|
|||||||
/// Given a function definition like:
|
/// Given a function definition like:
|
||||||
///
|
///
|
||||||
/// ```rust
|
/// ```rust
|
||||||
|
/// use std::fmt::Debug;
|
||||||
|
///
|
||||||
/// fn test<'a, T: Debug>(x: &'a T) -> impl Debug + 'a {
|
/// fn test<'a, T: Debug>(x: &'a T) -> impl Debug + 'a {
|
||||||
/// x
|
/// x
|
||||||
/// }
|
/// }
|
||||||
@ -1481,13 +1483,13 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
|
|||||||
///
|
///
|
||||||
/// we will create a TAIT definition in the HIR like
|
/// we will create a TAIT definition in the HIR like
|
||||||
///
|
///
|
||||||
/// ```
|
/// ```rust,ignore (pseudo-Rust)
|
||||||
/// type TestReturn<'a, T, 'x> = impl Debug + 'x
|
/// type TestReturn<'a, T, 'x> = impl Debug + 'x
|
||||||
/// ```
|
/// ```
|
||||||
///
|
///
|
||||||
/// and return a type like `TestReturn<'static, T, 'a>`, so that the function looks like:
|
/// and return a type like `TestReturn<'static, T, 'a>`, so that the function looks like:
|
||||||
///
|
///
|
||||||
/// ```rust
|
/// ```rust,ignore (pseudo-Rust)
|
||||||
/// fn test<'a, T: Debug>(x: &'a T) -> TestReturn<'static, T, 'a>
|
/// fn test<'a, T: Debug>(x: &'a T) -> TestReturn<'static, T, 'a>
|
||||||
/// ```
|
/// ```
|
||||||
///
|
///
|
||||||
|
@ -1038,7 +1038,7 @@ impl<'a> MethodDef<'a> {
|
|||||||
/// `&self.x` because that might cause an unaligned ref. So for any trait
|
/// `&self.x` because that might cause an unaligned ref. So for any trait
|
||||||
/// method that takes a reference, we use a local block to force a copy.
|
/// method that takes a reference, we use a local block to force a copy.
|
||||||
/// This requires that the field impl `Copy`.
|
/// This requires that the field impl `Copy`.
|
||||||
/// ```
|
/// ```rust,ignore (example)
|
||||||
/// # struct A { x: u8, y: u8 }
|
/// # struct A { x: u8, y: u8 }
|
||||||
/// impl PartialEq for A {
|
/// impl PartialEq for A {
|
||||||
/// fn eq(&self, other: &A) -> bool {
|
/// fn eq(&self, other: &A) -> bool {
|
||||||
|
@ -167,7 +167,7 @@
|
|||||||
//! fn node_label(&self, n: &Nd) -> dot::LabelText<'_> {
|
//! fn node_label(&self, n: &Nd) -> dot::LabelText<'_> {
|
||||||
//! dot::LabelText::LabelStr(self.nodes[*n].into())
|
//! dot::LabelText::LabelStr(self.nodes[*n].into())
|
||||||
//! }
|
//! }
|
||||||
//! fn edge_label<'b>(&'b self, _: &Ed) -> dot::LabelText<'b> {
|
//! fn edge_label(&self, _: &Ed<'_>) -> dot::LabelText<'_> {
|
||||||
//! dot::LabelText::LabelStr("⊆".into())
|
//! dot::LabelText::LabelStr("⊆".into())
|
||||||
//! }
|
//! }
|
||||||
//! }
|
//! }
|
||||||
@ -177,8 +177,8 @@
|
|||||||
//! type Edge = Ed<'a>;
|
//! type Edge = Ed<'a>;
|
||||||
//! fn nodes(&self) -> dot::Nodes<'a,Nd> { (0..self.nodes.len()).collect() }
|
//! fn nodes(&self) -> dot::Nodes<'a,Nd> { (0..self.nodes.len()).collect() }
|
||||||
//! fn edges(&'a self) -> dot::Edges<'a,Ed<'a>> { self.edges.iter().collect() }
|
//! fn edges(&'a self) -> dot::Edges<'a,Ed<'a>> { self.edges.iter().collect() }
|
||||||
//! fn source(&self, e: &Ed) -> Nd { let & &(s,_) = e; s }
|
//! fn source(&self, e: &Ed<'_>) -> Nd { let & &(s,_) = e; s }
|
||||||
//! fn target(&self, e: &Ed) -> Nd { let & &(_,t) = e; t }
|
//! fn target(&self, e: &Ed<'_>) -> Nd { let & &(_,t) = e; t }
|
||||||
//! }
|
//! }
|
||||||
//!
|
//!
|
||||||
//! # pub fn main() { render_to(&mut Vec::new()) }
|
//! # pub fn main() { render_to(&mut Vec::new()) }
|
||||||
@ -226,11 +226,11 @@
|
|||||||
//! fn node_id(&'a self, n: &Nd<'a>) -> dot::Id<'a> {
|
//! fn node_id(&'a self, n: &Nd<'a>) -> dot::Id<'a> {
|
||||||
//! dot::Id::new(format!("N{}", n.0)).unwrap()
|
//! dot::Id::new(format!("N{}", n.0)).unwrap()
|
||||||
//! }
|
//! }
|
||||||
//! fn node_label<'b>(&'b self, n: &Nd<'b>) -> dot::LabelText<'b> {
|
//! fn node_label(&self, n: &Nd<'_>) -> dot::LabelText<'_> {
|
||||||
//! let &(i, _) = n;
|
//! let &(i, _) = n;
|
||||||
//! dot::LabelText::LabelStr(self.nodes[i].into())
|
//! dot::LabelText::LabelStr(self.nodes[i].into())
|
||||||
//! }
|
//! }
|
||||||
//! fn edge_label<'b>(&'b self, _: &Ed<'b>) -> dot::LabelText<'b> {
|
//! fn edge_label(&self, _: &Ed<'_>) -> dot::LabelText<'_> {
|
||||||
//! dot::LabelText::LabelStr("⊆".into())
|
//! dot::LabelText::LabelStr("⊆".into())
|
||||||
//! }
|
//! }
|
||||||
//! }
|
//! }
|
||||||
|
@ -60,19 +60,21 @@ pub(super) fn compare_impl_method<'tcx>(
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
/// This function is best explained by example. Consider a trait:
|
/// This function is best explained by example. Consider a trait with it's implementation:
|
||||||
///
|
///
|
||||||
/// trait Trait<'t, T> {
|
/// ```rust
|
||||||
/// // `trait_m`
|
/// trait Trait<'t, T> {
|
||||||
/// fn method<'a, M>(t: &'t T, m: &'a M) -> Self;
|
/// // `trait_m`
|
||||||
/// }
|
/// fn method<'a, M>(t: &'t T, m: &'a M) -> Self;
|
||||||
|
/// }
|
||||||
///
|
///
|
||||||
/// And an impl:
|
/// struct Foo;
|
||||||
///
|
///
|
||||||
/// impl<'i, 'j, U> Trait<'j, &'i U> for Foo {
|
/// impl<'i, 'j, U> Trait<'j, &'i U> for Foo {
|
||||||
/// // `impl_m`
|
/// // `impl_m`
|
||||||
/// fn method<'b, N>(t: &'j &'i U, m: &'b N) -> Foo;
|
/// fn method<'b, N>(t: &'j &'i U, m: &'b N) -> Foo { Foo }
|
||||||
/// }
|
/// }
|
||||||
|
/// ```
|
||||||
///
|
///
|
||||||
/// We wish to decide if those two method types are compatible.
|
/// We wish to decide if those two method types are compatible.
|
||||||
/// For this we have to show that, assuming the bounds of the impl hold, the
|
/// For this we have to show that, assuming the bounds of the impl hold, the
|
||||||
@ -82,7 +84,9 @@ pub(super) fn compare_impl_method<'tcx>(
|
|||||||
/// type parameters to impl type parameters. This is taken from the
|
/// type parameters to impl type parameters. This is taken from the
|
||||||
/// impl trait reference:
|
/// impl trait reference:
|
||||||
///
|
///
|
||||||
/// trait_to_impl_substs = {'t => 'j, T => &'i U, Self => Foo}
|
/// ```rust,ignore (pseudo-Rust)
|
||||||
|
/// trait_to_impl_substs = {'t => 'j, T => &'i U, Self => Foo}
|
||||||
|
/// ```
|
||||||
///
|
///
|
||||||
/// We create a mapping `dummy_substs` that maps from the impl type
|
/// We create a mapping `dummy_substs` that maps from the impl type
|
||||||
/// parameters to fresh types and regions. For type parameters,
|
/// parameters to fresh types and regions. For type parameters,
|
||||||
@ -91,13 +95,17 @@ pub(super) fn compare_impl_method<'tcx>(
|
|||||||
/// regions (Note: but only early-bound regions, i.e., those
|
/// regions (Note: but only early-bound regions, i.e., those
|
||||||
/// declared on the impl or used in type parameter bounds).
|
/// declared on the impl or used in type parameter bounds).
|
||||||
///
|
///
|
||||||
/// impl_to_placeholder_substs = {'i => 'i0, U => U0, N => N0 }
|
/// ```rust,ignore (pseudo-Rust)
|
||||||
|
/// impl_to_placeholder_substs = {'i => 'i0, U => U0, N => N0 }
|
||||||
|
/// ```
|
||||||
///
|
///
|
||||||
/// Now we can apply `placeholder_substs` to the type of the impl method
|
/// Now we can apply `placeholder_substs` to the type of the impl method
|
||||||
/// to yield a new function type in terms of our fresh, placeholder
|
/// to yield a new function type in terms of our fresh, placeholder
|
||||||
/// types:
|
/// types:
|
||||||
///
|
///
|
||||||
/// <'b> fn(t: &'i0 U0, m: &'b) -> Foo
|
/// ```rust,ignore (pseudo-Rust)
|
||||||
|
/// <'b> fn(t: &'i0 U0, m: &'b) -> Foo
|
||||||
|
/// ```
|
||||||
///
|
///
|
||||||
/// We now want to extract and substitute the type of the *trait*
|
/// We now want to extract and substitute the type of the *trait*
|
||||||
/// method and compare it. To do so, we must create a compound
|
/// method and compare it. To do so, we must create a compound
|
||||||
@ -106,11 +114,15 @@ pub(super) fn compare_impl_method<'tcx>(
|
|||||||
/// type parameters. We extend the mapping to also include
|
/// type parameters. We extend the mapping to also include
|
||||||
/// the method parameters.
|
/// the method parameters.
|
||||||
///
|
///
|
||||||
/// trait_to_placeholder_substs = { T => &'i0 U0, Self => Foo, M => N0 }
|
/// ```rust,ignore (pseudo-Rust)
|
||||||
|
/// trait_to_placeholder_substs = { T => &'i0 U0, Self => Foo, M => N0 }
|
||||||
|
/// ```
|
||||||
///
|
///
|
||||||
/// Applying this to the trait method type yields:
|
/// Applying this to the trait method type yields:
|
||||||
///
|
///
|
||||||
/// <'a> fn(t: &'i0 U0, m: &'a) -> Foo
|
/// ```rust,ignore (pseudo-Rust)
|
||||||
|
/// <'a> fn(t: &'i0 U0, m: &'a) -> Foo
|
||||||
|
/// ```
|
||||||
///
|
///
|
||||||
/// This type is also the same but the name of the bound region (`'a`
|
/// This type is also the same but the name of the bound region (`'a`
|
||||||
/// vs `'b`). However, the normal subtyping rules on fn types handle
|
/// vs `'b`). However, the normal subtyping rules on fn types handle
|
||||||
@ -1163,7 +1175,7 @@ fn compare_self_type<'tcx>(
|
|||||||
/// as the number of generics on the respective assoc item in the trait definition.
|
/// as the number of generics on the respective assoc item in the trait definition.
|
||||||
///
|
///
|
||||||
/// For example this code emits the errors in the following code:
|
/// For example this code emits the errors in the following code:
|
||||||
/// ```
|
/// ```rust,compile_fail
|
||||||
/// trait Trait {
|
/// trait Trait {
|
||||||
/// fn foo();
|
/// fn foo();
|
||||||
/// type Assoc<T>;
|
/// type Assoc<T>;
|
||||||
@ -1547,7 +1559,7 @@ fn compare_synthetic_generics<'tcx>(
|
|||||||
/// the same kind as the respective generic parameter in the trait def.
|
/// the same kind as the respective generic parameter in the trait def.
|
||||||
///
|
///
|
||||||
/// For example all 4 errors in the following code are emitted here:
|
/// For example all 4 errors in the following code are emitted here:
|
||||||
/// ```
|
/// ```rust,ignore (pseudo-Rust)
|
||||||
/// trait Foo {
|
/// trait Foo {
|
||||||
/// fn foo<const N: u8>();
|
/// fn foo<const N: u8>();
|
||||||
/// type bar<const N: u8>;
|
/// type bar<const N: u8>;
|
||||||
|
@ -1913,7 +1913,7 @@ fn is_late_bound_map(
|
|||||||
/// handles cycle detection as we go through the query system.
|
/// handles cycle detection as we go through the query system.
|
||||||
///
|
///
|
||||||
/// This is necessary in the first place for the following case:
|
/// This is necessary in the first place for the following case:
|
||||||
/// ```
|
/// ```rust,ignore (pseudo-Rust)
|
||||||
/// type Alias<'a, T> = <T as Trait<'a>>::Assoc;
|
/// type Alias<'a, T> = <T as Trait<'a>>::Assoc;
|
||||||
/// fn foo<'a>(_: Alias<'a, ()>) -> Alias<'a, ()> { ... }
|
/// fn foo<'a>(_: Alias<'a, ()>) -> Alias<'a, ()> { ... }
|
||||||
/// ```
|
/// ```
|
||||||
|
@ -31,7 +31,7 @@ pub enum TypeAnnotationNeeded {
|
|||||||
/// ```
|
/// ```
|
||||||
E0282,
|
E0282,
|
||||||
/// An implementation cannot be chosen unambiguously because of lack of information.
|
/// An implementation cannot be chosen unambiguously because of lack of information.
|
||||||
/// ```compile_fail,E0283
|
/// ```compile_fail,E0790
|
||||||
/// let _ = Default::default();
|
/// let _ = Default::default();
|
||||||
/// ```
|
/// ```
|
||||||
E0283,
|
E0283,
|
||||||
|
@ -21,7 +21,7 @@ impl<'a, 'tcx> NiceRegionError<'a, 'tcx> {
|
|||||||
///
|
///
|
||||||
/// Consider a case where we have
|
/// Consider a case where we have
|
||||||
///
|
///
|
||||||
/// ```compile_fail,E0623
|
/// ```compile_fail
|
||||||
/// fn foo(x: &mut Vec<&u8>, y: &u8) {
|
/// fn foo(x: &mut Vec<&u8>, y: &u8) {
|
||||||
/// x.push(y);
|
/// x.push(y);
|
||||||
/// }
|
/// }
|
||||||
|
@ -14,7 +14,7 @@ use rustc_middle::ty::{self, Region, TyCtxt};
|
|||||||
/// br - the bound region corresponding to the above region which is of type `BrAnon(_)`
|
/// br - the bound region corresponding to the above region which is of type `BrAnon(_)`
|
||||||
///
|
///
|
||||||
/// # Example
|
/// # Example
|
||||||
/// ```compile_fail,E0623
|
/// ```compile_fail
|
||||||
/// fn foo(x: &mut Vec<&u8>, y: &u8)
|
/// fn foo(x: &mut Vec<&u8>, y: &u8)
|
||||||
/// { x.push(y); }
|
/// { x.push(y); }
|
||||||
/// ```
|
/// ```
|
||||||
|
@ -13,9 +13,11 @@ use crate::infer::region_constraints::VerifyIfEq;
|
|||||||
|
|
||||||
/// Given a "verify-if-eq" type test like:
|
/// Given a "verify-if-eq" type test like:
|
||||||
///
|
///
|
||||||
/// exists<'a...> {
|
/// ```rust,ignore (pseudo-Rust)
|
||||||
/// verify_if_eq(some_type, bound_region)
|
/// exists<'a...> {
|
||||||
/// }
|
/// verify_if_eq(some_type, bound_region)
|
||||||
|
/// }
|
||||||
|
/// ```
|
||||||
///
|
///
|
||||||
/// and the type `test_ty` that the type test is being tested against,
|
/// and the type `test_ty` that the type test is being tested against,
|
||||||
/// returns:
|
/// returns:
|
||||||
|
@ -277,7 +277,7 @@ impl<'cx, 'tcx> VerifyBoundCx<'cx, 'tcx> {
|
|||||||
///
|
///
|
||||||
/// It will not, however, work for higher-ranked bounds like:
|
/// It will not, however, work for higher-ranked bounds like:
|
||||||
///
|
///
|
||||||
/// ```compile_fail,E0311
|
/// ```ignore(this does compile today, previously was marked as `compile_fail,E0311`)
|
||||||
/// trait Foo<'a, 'b>
|
/// trait Foo<'a, 'b>
|
||||||
/// where for<'x> <Self as Foo<'x, 'b>>::Bar: 'x
|
/// where for<'x> <Self as Foo<'x, 'b>>::Bar: 'x
|
||||||
/// {
|
/// {
|
||||||
|
@ -217,7 +217,7 @@ pub enum VerifyBound<'tcx> {
|
|||||||
/// and supplies a bound if it ended up being relevant. It's used in situations
|
/// and supplies a bound if it ended up being relevant. It's used in situations
|
||||||
/// like this:
|
/// like this:
|
||||||
///
|
///
|
||||||
/// ```rust
|
/// ```rust,ignore (pseudo-Rust)
|
||||||
/// fn foo<'a, 'b, T: SomeTrait<'a>>
|
/// fn foo<'a, 'b, T: SomeTrait<'a>>
|
||||||
/// where
|
/// where
|
||||||
/// <T as SomeTrait<'a>>::Item: 'b
|
/// <T as SomeTrait<'a>>::Item: 'b
|
||||||
@ -232,7 +232,7 @@ pub enum VerifyBound<'tcx> {
|
|||||||
/// In the [`VerifyBound`], this struct is enclosed in `Binder` to account
|
/// In the [`VerifyBound`], this struct is enclosed in `Binder` to account
|
||||||
/// for cases like
|
/// for cases like
|
||||||
///
|
///
|
||||||
/// ```rust
|
/// ```rust,ignore (pseudo-Rust)
|
||||||
/// where for<'a> <T as SomeTrait<'a>::Item: 'a
|
/// where for<'a> <T as SomeTrait<'a>::Item: 'a
|
||||||
/// ```
|
/// ```
|
||||||
///
|
///
|
||||||
|
@ -333,6 +333,7 @@ declare_lint! {
|
|||||||
///
|
///
|
||||||
/// ```rust,compile_fail
|
/// ```rust,compile_fail
|
||||||
/// #![deny(unused_extern_crates)]
|
/// #![deny(unused_extern_crates)]
|
||||||
|
/// #![deny(warnings)]
|
||||||
/// extern crate proc_macro;
|
/// extern crate proc_macro;
|
||||||
/// ```
|
/// ```
|
||||||
///
|
///
|
||||||
@ -1667,6 +1668,7 @@ declare_lint! {
|
|||||||
///
|
///
|
||||||
/// ```rust,compile_fail
|
/// ```rust,compile_fail
|
||||||
/// #![deny(elided_lifetimes_in_paths)]
|
/// #![deny(elided_lifetimes_in_paths)]
|
||||||
|
/// #![deny(warnings)]
|
||||||
/// struct Foo<'a> {
|
/// struct Foo<'a> {
|
||||||
/// x: &'a u32
|
/// x: &'a u32
|
||||||
/// }
|
/// }
|
||||||
@ -2158,6 +2160,7 @@ declare_lint! {
|
|||||||
/// ```rust,compile_fail
|
/// ```rust,compile_fail
|
||||||
/// # #![allow(unused)]
|
/// # #![allow(unused)]
|
||||||
/// #![deny(explicit_outlives_requirements)]
|
/// #![deny(explicit_outlives_requirements)]
|
||||||
|
/// #![deny(warnings)]
|
||||||
///
|
///
|
||||||
/// struct SharedRef<'a, T>
|
/// struct SharedRef<'a, T>
|
||||||
/// where
|
/// where
|
||||||
|
@ -115,7 +115,7 @@ where
|
|||||||
/// ```
|
/// ```
|
||||||
/// use std::borrow::Cow;
|
/// use std::borrow::Cow;
|
||||||
///
|
///
|
||||||
/// fn abs_all(input: &mut Cow<[i32]>) {
|
/// fn abs_all(input: &mut Cow<'_, [i32]>) {
|
||||||
/// for i in 0..input.len() {
|
/// for i in 0..input.len() {
|
||||||
/// let v = input[i];
|
/// let v = input[i];
|
||||||
/// if v < 0 {
|
/// if v < 0 {
|
||||||
@ -145,7 +145,7 @@ where
|
|||||||
/// ```
|
/// ```
|
||||||
/// use std::borrow::Cow;
|
/// use std::borrow::Cow;
|
||||||
///
|
///
|
||||||
/// struct Items<'a, X: 'a> where [X]: ToOwned<Owned = Vec<X>> {
|
/// struct Items<'a, X> where [X]: ToOwned<Owned = Vec<X>> {
|
||||||
/// values: Cow<'a, [X]>,
|
/// values: Cow<'a, [X]>,
|
||||||
/// }
|
/// }
|
||||||
///
|
///
|
||||||
@ -267,7 +267,7 @@ impl<B: ?Sized + ToOwned> Cow<'_, B> {
|
|||||||
///
|
///
|
||||||
/// assert_eq!(
|
/// assert_eq!(
|
||||||
/// cow,
|
/// cow,
|
||||||
/// Cow::Owned(String::from("FOO")) as Cow<str>
|
/// Cow::Owned(String::from("FOO")) as Cow<'_, str>
|
||||||
/// );
|
/// );
|
||||||
/// ```
|
/// ```
|
||||||
#[stable(feature = "rust1", since = "1.0.0")]
|
#[stable(feature = "rust1", since = "1.0.0")]
|
||||||
@ -311,7 +311,7 @@ impl<B: ?Sized + ToOwned> Cow<'_, B> {
|
|||||||
/// use std::borrow::Cow;
|
/// use std::borrow::Cow;
|
||||||
///
|
///
|
||||||
/// let s = "Hello world!";
|
/// let s = "Hello world!";
|
||||||
/// let cow: Cow<str> = Cow::Owned(String::from(s));
|
/// let cow: Cow<'_, str> = Cow::Owned(String::from(s));
|
||||||
///
|
///
|
||||||
/// assert_eq!(
|
/// assert_eq!(
|
||||||
/// cow.into_owned(),
|
/// cow.into_owned(),
|
||||||
|
@ -363,7 +363,7 @@
|
|||||||
//! # use std::fmt;
|
//! # use std::fmt;
|
||||||
//! # struct Foo; // our custom type
|
//! # struct Foo; // our custom type
|
||||||
//! # impl fmt::Display for Foo {
|
//! # impl fmt::Display for Foo {
|
||||||
//! fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
//! fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||||
//! # write!(f, "testing, testing")
|
//! # write!(f, "testing, testing")
|
||||||
//! # } }
|
//! # } }
|
||||||
//! ```
|
//! ```
|
||||||
@ -399,7 +399,7 @@
|
|||||||
//! }
|
//! }
|
||||||
//!
|
//!
|
||||||
//! impl fmt::Display for Vector2D {
|
//! impl fmt::Display for Vector2D {
|
||||||
//! fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
//! fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||||
//! // The `f` value implements the `Write` trait, which is what the
|
//! // The `f` value implements the `Write` trait, which is what the
|
||||||
//! // write! macro is expecting. Note that this formatting ignores the
|
//! // write! macro is expecting. Note that this formatting ignores the
|
||||||
//! // various flags provided to format strings.
|
//! // various flags provided to format strings.
|
||||||
@ -410,7 +410,7 @@
|
|||||||
//! // Different traits allow different forms of output of a type. The meaning
|
//! // Different traits allow different forms of output of a type. The meaning
|
||||||
//! // of this format is to print the magnitude of a vector.
|
//! // of this format is to print the magnitude of a vector.
|
||||||
//! impl fmt::Binary for Vector2D {
|
//! impl fmt::Binary for Vector2D {
|
||||||
//! fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
//! fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||||
//! let magnitude = (self.x * self.x + self.y * self.y) as f64;
|
//! let magnitude = (self.x * self.x + self.y * self.y) as f64;
|
||||||
//! let magnitude = magnitude.sqrt();
|
//! let magnitude = magnitude.sqrt();
|
||||||
//!
|
//!
|
||||||
@ -517,7 +517,7 @@
|
|||||||
//! let mut some_writer = io::stdout();
|
//! let mut some_writer = io::stdout();
|
||||||
//! write!(&mut some_writer, "{}", format_args!("print with a {}", "macro"));
|
//! write!(&mut some_writer, "{}", format_args!("print with a {}", "macro"));
|
||||||
//!
|
//!
|
||||||
//! fn my_fmt_fn(args: fmt::Arguments) {
|
//! fn my_fmt_fn(args: fmt::Arguments<'_>) {
|
||||||
//! write!(&mut io::stdout(), "{args}");
|
//! write!(&mut io::stdout(), "{args}");
|
||||||
//! }
|
//! }
|
||||||
//! my_fmt_fn(format_args!(", or a {} too", "function"));
|
//! my_fmt_fn(format_args!(", or a {} too", "function"));
|
||||||
|
@ -2039,7 +2039,7 @@ where
|
|||||||
/// ```rust
|
/// ```rust
|
||||||
/// # use std::rc::Rc;
|
/// # use std::rc::Rc;
|
||||||
/// # use std::borrow::Cow;
|
/// # use std::borrow::Cow;
|
||||||
/// let cow: Cow<str> = Cow::Borrowed("eggplant");
|
/// let cow: Cow<'_, str> = Cow::Borrowed("eggplant");
|
||||||
/// let shared: Rc<str> = Rc::from(cow);
|
/// let shared: Rc<str> = Rc::from(cow);
|
||||||
/// assert_eq!("eggplant", &shared[..]);
|
/// assert_eq!("eggplant", &shared[..]);
|
||||||
/// ```
|
/// ```
|
||||||
|
@ -2732,7 +2732,7 @@ impl<'a> From<Cow<'a, str>> for String {
|
|||||||
/// ```
|
/// ```
|
||||||
/// # use std::borrow::Cow;
|
/// # use std::borrow::Cow;
|
||||||
/// // If the string is not owned...
|
/// // If the string is not owned...
|
||||||
/// let cow: Cow<str> = Cow::Borrowed("eggplant");
|
/// let cow: Cow<'_, str> = Cow::Borrowed("eggplant");
|
||||||
/// // It will allocate on the heap and copy the string.
|
/// // It will allocate on the heap and copy the string.
|
||||||
/// let owned: String = String::from(cow);
|
/// let owned: String = String::from(cow);
|
||||||
/// assert_eq!(&owned[..], "eggplant");
|
/// assert_eq!(&owned[..], "eggplant");
|
||||||
|
@ -2768,7 +2768,7 @@ where
|
|||||||
/// ```rust
|
/// ```rust
|
||||||
/// # use std::sync::Arc;
|
/// # use std::sync::Arc;
|
||||||
/// # use std::borrow::Cow;
|
/// # use std::borrow::Cow;
|
||||||
/// let cow: Cow<str> = Cow::Borrowed("eggplant");
|
/// let cow: Cow<'_, str> = Cow::Borrowed("eggplant");
|
||||||
/// let shared: Arc<str> = Arc::from(cow);
|
/// let shared: Arc<str> = Arc::from(cow);
|
||||||
/// assert_eq!("eggplant", &shared[..]);
|
/// assert_eq!("eggplant", &shared[..]);
|
||||||
/// ```
|
/// ```
|
||||||
|
@ -16,7 +16,7 @@ use super::Vec;
|
|||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
/// let mut v = vec![0, 1, 2];
|
/// let mut v = vec![0, 1, 2];
|
||||||
/// let iter: std::vec::Drain<_> = v.drain(..);
|
/// let iter: std::vec::Drain<'_, _> = v.drain(..);
|
||||||
/// ```
|
/// ```
|
||||||
#[stable(feature = "drain", since = "1.6.0")]
|
#[stable(feature = "drain", since = "1.6.0")]
|
||||||
pub struct Drain<
|
pub struct Drain<
|
||||||
|
@ -16,7 +16,7 @@ use super::Vec;
|
|||||||
/// #![feature(drain_filter)]
|
/// #![feature(drain_filter)]
|
||||||
///
|
///
|
||||||
/// let mut v = vec![0, 1, 2];
|
/// let mut v = vec![0, 1, 2];
|
||||||
/// let iter: std::vec::DrainFilter<_, _> = v.drain_filter(|x| *x % 2 == 0);
|
/// let iter: std::vec::DrainFilter<'_, _, _> = v.drain_filter(|x| *x % 2 == 0);
|
||||||
/// ```
|
/// ```
|
||||||
#[unstable(feature = "drain_filter", reason = "recently added", issue = "43244")]
|
#[unstable(feature = "drain_filter", reason = "recently added", issue = "43244")]
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
|
@ -3142,8 +3142,8 @@ where
|
|||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
/// # use std::borrow::Cow;
|
/// # use std::borrow::Cow;
|
||||||
/// let o: Cow<[i32]> = Cow::Owned(vec![1, 2, 3]);
|
/// let o: Cow<'_, [i32]> = Cow::Owned(vec![1, 2, 3]);
|
||||||
/// let b: Cow<[i32]> = Cow::Borrowed(&[1, 2, 3]);
|
/// let b: Cow<'_, [i32]> = Cow::Borrowed(&[1, 2, 3]);
|
||||||
/// assert_eq!(Vec::from(o), Vec::from(b));
|
/// assert_eq!(Vec::from(o), Vec::from(b));
|
||||||
/// ```
|
/// ```
|
||||||
fn from(s: Cow<'a, [T]>) -> Vec<T> {
|
fn from(s: Cow<'a, [T]>) -> Vec<T> {
|
||||||
|
@ -14,7 +14,7 @@ use super::{Drain, Vec};
|
|||||||
/// ```
|
/// ```
|
||||||
/// let mut v = vec![0, 1, 2];
|
/// let mut v = vec![0, 1, 2];
|
||||||
/// let new = [7, 8];
|
/// let new = [7, 8];
|
||||||
/// let iter: std::vec::Splice<_> = v.splice(1.., new);
|
/// let iter: std::vec::Splice<'_, _> = v.splice(1.., new);
|
||||||
/// ```
|
/// ```
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
#[stable(feature = "vec_splice", since = "1.21.0")]
|
#[stable(feature = "vec_splice", since = "1.21.0")]
|
||||||
|
@ -115,7 +115,7 @@
|
|||||||
//! let shared_map: Rc<RefCell<_>> = Rc::new(RefCell::new(HashMap::new()));
|
//! let shared_map: Rc<RefCell<_>> = Rc::new(RefCell::new(HashMap::new()));
|
||||||
//! // Create a new block to limit the scope of the dynamic borrow
|
//! // Create a new block to limit the scope of the dynamic borrow
|
||||||
//! {
|
//! {
|
||||||
//! let mut map: RefMut<_> = shared_map.borrow_mut();
|
//! let mut map: RefMut<'_, _> = shared_map.borrow_mut();
|
||||||
//! map.insert("africa", 92388);
|
//! map.insert("africa", 92388);
|
||||||
//! map.insert("kyoto", 11837);
|
//! map.insert("kyoto", 11837);
|
||||||
//! map.insert("piccadilly", 11826);
|
//! map.insert("piccadilly", 11826);
|
||||||
@ -1435,8 +1435,8 @@ impl<'b, T: ?Sized> Ref<'b, T> {
|
|||||||
/// use std::cell::{RefCell, Ref};
|
/// use std::cell::{RefCell, Ref};
|
||||||
///
|
///
|
||||||
/// let c = RefCell::new((5, 'b'));
|
/// let c = RefCell::new((5, 'b'));
|
||||||
/// let b1: Ref<(u32, char)> = c.borrow();
|
/// let b1: Ref<'_, (u32, char)> = c.borrow();
|
||||||
/// let b2: Ref<u32> = Ref::map(b1, |t| &t.0);
|
/// let b2: Ref<'_, u32> = Ref::map(b1, |t| &t.0);
|
||||||
/// assert_eq!(*b2, 5)
|
/// assert_eq!(*b2, 5)
|
||||||
/// ```
|
/// ```
|
||||||
#[stable(feature = "cell_map", since = "1.8.0")]
|
#[stable(feature = "cell_map", since = "1.8.0")]
|
||||||
@ -1464,8 +1464,8 @@ impl<'b, T: ?Sized> Ref<'b, T> {
|
|||||||
/// use std::cell::{RefCell, Ref};
|
/// use std::cell::{RefCell, Ref};
|
||||||
///
|
///
|
||||||
/// let c = RefCell::new(vec![1, 2, 3]);
|
/// let c = RefCell::new(vec![1, 2, 3]);
|
||||||
/// let b1: Ref<Vec<u32>> = c.borrow();
|
/// let b1: Ref<'_, Vec<u32>> = c.borrow();
|
||||||
/// let b2: Result<Ref<u32>, _> = Ref::filter_map(b1, |v| v.get(1));
|
/// let b2: Result<Ref<'_, u32>, _> = Ref::filter_map(b1, |v| v.get(1));
|
||||||
/// assert_eq!(*b2.unwrap(), 2);
|
/// assert_eq!(*b2.unwrap(), 2);
|
||||||
/// ```
|
/// ```
|
||||||
#[stable(feature = "cell_filter_map", since = "1.63.0")]
|
#[stable(feature = "cell_filter_map", since = "1.63.0")]
|
||||||
@ -1577,8 +1577,8 @@ impl<'b, T: ?Sized> RefMut<'b, T> {
|
|||||||
///
|
///
|
||||||
/// let c = RefCell::new((5, 'b'));
|
/// let c = RefCell::new((5, 'b'));
|
||||||
/// {
|
/// {
|
||||||
/// let b1: RefMut<(u32, char)> = c.borrow_mut();
|
/// let b1: RefMut<'_, (u32, char)> = c.borrow_mut();
|
||||||
/// let mut b2: RefMut<u32> = RefMut::map(b1, |t| &mut t.0);
|
/// let mut b2: RefMut<'_, u32> = RefMut::map(b1, |t| &mut t.0);
|
||||||
/// assert_eq!(*b2, 5);
|
/// assert_eq!(*b2, 5);
|
||||||
/// *b2 = 42;
|
/// *b2 = 42;
|
||||||
/// }
|
/// }
|
||||||
@ -1612,8 +1612,8 @@ impl<'b, T: ?Sized> RefMut<'b, T> {
|
|||||||
/// let c = RefCell::new(vec![1, 2, 3]);
|
/// let c = RefCell::new(vec![1, 2, 3]);
|
||||||
///
|
///
|
||||||
/// {
|
/// {
|
||||||
/// let b1: RefMut<Vec<u32>> = c.borrow_mut();
|
/// let b1: RefMut<'_, Vec<u32>> = c.borrow_mut();
|
||||||
/// let mut b2: Result<RefMut<u32>, _> = RefMut::filter_map(b1, |v| v.get_mut(1));
|
/// let mut b2: Result<RefMut<'_, u32>, _> = RefMut::filter_map(b1, |v| v.get_mut(1));
|
||||||
///
|
///
|
||||||
/// if let Ok(mut b2) = b2 {
|
/// if let Ok(mut b2) = b2 {
|
||||||
/// *b2 += 2;
|
/// *b2 += 2;
|
||||||
|
@ -60,7 +60,7 @@ impl fmt::Write for PadAdapter<'_, '_> {
|
|||||||
/// }
|
/// }
|
||||||
///
|
///
|
||||||
/// impl fmt::Debug for Foo {
|
/// impl fmt::Debug for Foo {
|
||||||
/// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
|
/// fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||||
/// fmt.debug_struct("Foo")
|
/// fmt.debug_struct("Foo")
|
||||||
/// .field("bar", &self.bar)
|
/// .field("bar", &self.bar)
|
||||||
/// .field("baz", &self.baz)
|
/// .field("baz", &self.baz)
|
||||||
@ -249,7 +249,7 @@ impl<'a, 'b: 'a> DebugStruct<'a, 'b> {
|
|||||||
/// struct Foo(i32, String);
|
/// struct Foo(i32, String);
|
||||||
///
|
///
|
||||||
/// impl fmt::Debug for Foo {
|
/// impl fmt::Debug for Foo {
|
||||||
/// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
|
/// fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||||
/// fmt.debug_tuple("Foo")
|
/// fmt.debug_tuple("Foo")
|
||||||
/// .field(&self.0)
|
/// .field(&self.0)
|
||||||
/// .field(&self.1)
|
/// .field(&self.1)
|
||||||
@ -418,7 +418,7 @@ impl<'a, 'b: 'a> DebugInner<'a, 'b> {
|
|||||||
/// struct Foo(Vec<i32>);
|
/// struct Foo(Vec<i32>);
|
||||||
///
|
///
|
||||||
/// impl fmt::Debug for Foo {
|
/// impl fmt::Debug for Foo {
|
||||||
/// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
|
/// fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||||
/// fmt.debug_set().entries(self.0.iter()).finish()
|
/// fmt.debug_set().entries(self.0.iter()).finish()
|
||||||
/// }
|
/// }
|
||||||
/// }
|
/// }
|
||||||
@ -548,7 +548,7 @@ impl<'a, 'b: 'a> DebugSet<'a, 'b> {
|
|||||||
/// struct Foo(Vec<i32>);
|
/// struct Foo(Vec<i32>);
|
||||||
///
|
///
|
||||||
/// impl fmt::Debug for Foo {
|
/// impl fmt::Debug for Foo {
|
||||||
/// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
|
/// fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||||
/// fmt.debug_list().entries(self.0.iter()).finish()
|
/// fmt.debug_list().entries(self.0.iter()).finish()
|
||||||
/// }
|
/// }
|
||||||
/// }
|
/// }
|
||||||
@ -678,7 +678,7 @@ impl<'a, 'b: 'a> DebugList<'a, 'b> {
|
|||||||
/// struct Foo(Vec<(String, i32)>);
|
/// struct Foo(Vec<(String, i32)>);
|
||||||
///
|
///
|
||||||
/// impl fmt::Debug for Foo {
|
/// impl fmt::Debug for Foo {
|
||||||
/// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
|
/// fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||||
/// fmt.debug_map().entries(self.0.iter().map(|&(ref k, ref v)| (k, v))).finish()
|
/// fmt.debug_map().entries(self.0.iter().map(|&(ref k, ref v)| (k, v))).finish()
|
||||||
/// }
|
/// }
|
||||||
/// }
|
/// }
|
||||||
|
@ -534,7 +534,7 @@ impl<'a> Arguments<'a> {
|
|||||||
///
|
///
|
||||||
/// fn write_str(_: &str) { /* ... */ }
|
/// fn write_str(_: &str) { /* ... */ }
|
||||||
///
|
///
|
||||||
/// fn write_fmt(args: &Arguments) {
|
/// fn write_fmt(args: &Arguments<'_>) {
|
||||||
/// if let Some(s) = args.as_str() {
|
/// if let Some(s) = args.as_str() {
|
||||||
/// write_str(s)
|
/// write_str(s)
|
||||||
/// } else {
|
/// } else {
|
||||||
@ -1381,7 +1381,7 @@ impl<'a> Formatter<'a> {
|
|||||||
/// }
|
/// }
|
||||||
///
|
///
|
||||||
/// impl fmt::Display for Foo {
|
/// impl fmt::Display for Foo {
|
||||||
/// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
|
/// fn fmt(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||||
/// // We need to remove "-" from the number output.
|
/// // We need to remove "-" from the number output.
|
||||||
/// let tmp = self.nb.abs().to_string();
|
/// let tmp = self.nb.abs().to_string();
|
||||||
///
|
///
|
||||||
@ -1481,7 +1481,7 @@ impl<'a> Formatter<'a> {
|
|||||||
/// struct Foo;
|
/// struct Foo;
|
||||||
///
|
///
|
||||||
/// impl fmt::Display for Foo {
|
/// impl fmt::Display for Foo {
|
||||||
/// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
|
/// fn fmt(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||||
/// formatter.pad("Foo")
|
/// formatter.pad("Foo")
|
||||||
/// }
|
/// }
|
||||||
/// }
|
/// }
|
||||||
@ -1663,7 +1663,7 @@ impl<'a> Formatter<'a> {
|
|||||||
/// struct Foo;
|
/// struct Foo;
|
||||||
///
|
///
|
||||||
/// impl fmt::Display for Foo {
|
/// impl fmt::Display for Foo {
|
||||||
/// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
|
/// fn fmt(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||||
/// formatter.write_str("Foo")
|
/// formatter.write_str("Foo")
|
||||||
/// // This is equivalent to:
|
/// // This is equivalent to:
|
||||||
/// // write!(formatter, "Foo")
|
/// // write!(formatter, "Foo")
|
||||||
@ -1688,7 +1688,7 @@ impl<'a> Formatter<'a> {
|
|||||||
/// struct Foo(i32);
|
/// struct Foo(i32);
|
||||||
///
|
///
|
||||||
/// impl fmt::Display for Foo {
|
/// impl fmt::Display for Foo {
|
||||||
/// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
|
/// fn fmt(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||||
/// formatter.write_fmt(format_args!("Foo {}", self.0))
|
/// formatter.write_fmt(format_args!("Foo {}", self.0))
|
||||||
/// }
|
/// }
|
||||||
/// }
|
/// }
|
||||||
@ -1723,7 +1723,7 @@ impl<'a> Formatter<'a> {
|
|||||||
/// struct Foo;
|
/// struct Foo;
|
||||||
///
|
///
|
||||||
/// impl fmt::Display for Foo {
|
/// impl fmt::Display for Foo {
|
||||||
/// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
|
/// fn fmt(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||||
/// let c = formatter.fill();
|
/// let c = formatter.fill();
|
||||||
/// if let Some(width) = formatter.width() {
|
/// if let Some(width) = formatter.width() {
|
||||||
/// for _ in 0..width {
|
/// for _ in 0..width {
|
||||||
@ -1751,14 +1751,12 @@ impl<'a> Formatter<'a> {
|
|||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
/// extern crate core;
|
|
||||||
///
|
|
||||||
/// use std::fmt::{self, Alignment};
|
/// use std::fmt::{self, Alignment};
|
||||||
///
|
///
|
||||||
/// struct Foo;
|
/// struct Foo;
|
||||||
///
|
///
|
||||||
/// impl fmt::Display for Foo {
|
/// impl fmt::Display for Foo {
|
||||||
/// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
|
/// fn fmt(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||||
/// let s = if let Some(s) = formatter.align() {
|
/// let s = if let Some(s) = formatter.align() {
|
||||||
/// match s {
|
/// match s {
|
||||||
/// Alignment::Left => "left",
|
/// Alignment::Left => "left",
|
||||||
@ -1798,7 +1796,7 @@ impl<'a> Formatter<'a> {
|
|||||||
/// struct Foo(i32);
|
/// struct Foo(i32);
|
||||||
///
|
///
|
||||||
/// impl fmt::Display for Foo {
|
/// impl fmt::Display for Foo {
|
||||||
/// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
|
/// fn fmt(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||||
/// if let Some(width) = formatter.width() {
|
/// if let Some(width) = formatter.width() {
|
||||||
/// // If we received a width, we use it
|
/// // If we received a width, we use it
|
||||||
/// write!(formatter, "{:width$}", format!("Foo({})", self.0), width = width)
|
/// write!(formatter, "{:width$}", format!("Foo({})", self.0), width = width)
|
||||||
@ -1829,7 +1827,7 @@ impl<'a> Formatter<'a> {
|
|||||||
/// struct Foo(f32);
|
/// struct Foo(f32);
|
||||||
///
|
///
|
||||||
/// impl fmt::Display for Foo {
|
/// impl fmt::Display for Foo {
|
||||||
/// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
|
/// fn fmt(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||||
/// if let Some(precision) = formatter.precision() {
|
/// if let Some(precision) = formatter.precision() {
|
||||||
/// // If we received a precision, we use it.
|
/// // If we received a precision, we use it.
|
||||||
/// write!(formatter, "Foo({1:.*})", precision, self.0)
|
/// write!(formatter, "Foo({1:.*})", precision, self.0)
|
||||||
@ -1859,7 +1857,7 @@ impl<'a> Formatter<'a> {
|
|||||||
/// struct Foo(i32);
|
/// struct Foo(i32);
|
||||||
///
|
///
|
||||||
/// impl fmt::Display for Foo {
|
/// impl fmt::Display for Foo {
|
||||||
/// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
|
/// fn fmt(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||||
/// if formatter.sign_plus() {
|
/// if formatter.sign_plus() {
|
||||||
/// write!(formatter,
|
/// write!(formatter,
|
||||||
/// "Foo({}{})",
|
/// "Foo({}{})",
|
||||||
@ -1891,7 +1889,7 @@ impl<'a> Formatter<'a> {
|
|||||||
/// struct Foo(i32);
|
/// struct Foo(i32);
|
||||||
///
|
///
|
||||||
/// impl fmt::Display for Foo {
|
/// impl fmt::Display for Foo {
|
||||||
/// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
|
/// fn fmt(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||||
/// if formatter.sign_minus() {
|
/// if formatter.sign_minus() {
|
||||||
/// // You want a minus sign? Have one!
|
/// // You want a minus sign? Have one!
|
||||||
/// write!(formatter, "-Foo({})", self.0)
|
/// write!(formatter, "-Foo({})", self.0)
|
||||||
@ -1920,7 +1918,7 @@ impl<'a> Formatter<'a> {
|
|||||||
/// struct Foo(i32);
|
/// struct Foo(i32);
|
||||||
///
|
///
|
||||||
/// impl fmt::Display for Foo {
|
/// impl fmt::Display for Foo {
|
||||||
/// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
|
/// fn fmt(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||||
/// if formatter.alternate() {
|
/// if formatter.alternate() {
|
||||||
/// write!(formatter, "Foo({})", self.0)
|
/// write!(formatter, "Foo({})", self.0)
|
||||||
/// } else {
|
/// } else {
|
||||||
@ -1948,7 +1946,7 @@ impl<'a> Formatter<'a> {
|
|||||||
/// struct Foo(i32);
|
/// struct Foo(i32);
|
||||||
///
|
///
|
||||||
/// impl fmt::Display for Foo {
|
/// impl fmt::Display for Foo {
|
||||||
/// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
|
/// fn fmt(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||||
/// assert!(formatter.sign_aware_zero_pad());
|
/// assert!(formatter.sign_aware_zero_pad());
|
||||||
/// assert_eq!(formatter.width(), Some(4));
|
/// assert_eq!(formatter.width(), Some(4));
|
||||||
/// // We ignore the formatter's options.
|
/// // We ignore the formatter's options.
|
||||||
@ -1992,7 +1990,7 @@ impl<'a> Formatter<'a> {
|
|||||||
/// }
|
/// }
|
||||||
///
|
///
|
||||||
/// impl fmt::Debug for Foo {
|
/// impl fmt::Debug for Foo {
|
||||||
/// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
|
/// fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||||
/// fmt.debug_struct("Foo")
|
/// fmt.debug_struct("Foo")
|
||||||
/// .field("bar", &self.bar)
|
/// .field("bar", &self.bar)
|
||||||
/// .field("baz", &self.baz)
|
/// .field("baz", &self.baz)
|
||||||
@ -2150,7 +2148,7 @@ impl<'a> Formatter<'a> {
|
|||||||
/// struct Foo<T>(i32, String, PhantomData<T>);
|
/// struct Foo<T>(i32, String, PhantomData<T>);
|
||||||
///
|
///
|
||||||
/// impl<T> fmt::Debug for Foo<T> {
|
/// impl<T> fmt::Debug for Foo<T> {
|
||||||
/// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
|
/// fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||||
/// fmt.debug_tuple("Foo")
|
/// fmt.debug_tuple("Foo")
|
||||||
/// .field(&self.0)
|
/// .field(&self.0)
|
||||||
/// .field(&self.1)
|
/// .field(&self.1)
|
||||||
@ -2282,7 +2280,7 @@ impl<'a> Formatter<'a> {
|
|||||||
/// struct Foo(Vec<i32>);
|
/// struct Foo(Vec<i32>);
|
||||||
///
|
///
|
||||||
/// impl fmt::Debug for Foo {
|
/// impl fmt::Debug for Foo {
|
||||||
/// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
|
/// fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||||
/// fmt.debug_list().entries(self.0.iter()).finish()
|
/// fmt.debug_list().entries(self.0.iter()).finish()
|
||||||
/// }
|
/// }
|
||||||
/// }
|
/// }
|
||||||
@ -2305,7 +2303,7 @@ impl<'a> Formatter<'a> {
|
|||||||
/// struct Foo(Vec<i32>);
|
/// struct Foo(Vec<i32>);
|
||||||
///
|
///
|
||||||
/// impl fmt::Debug for Foo {
|
/// impl fmt::Debug for Foo {
|
||||||
/// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
|
/// fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||||
/// fmt.debug_set().entries(self.0.iter()).finish()
|
/// fmt.debug_set().entries(self.0.iter()).finish()
|
||||||
/// }
|
/// }
|
||||||
/// }
|
/// }
|
||||||
@ -2321,14 +2319,14 @@ impl<'a> Formatter<'a> {
|
|||||||
/// ```rust
|
/// ```rust
|
||||||
/// use std::fmt;
|
/// use std::fmt;
|
||||||
///
|
///
|
||||||
/// struct Arm<'a, L: 'a, R: 'a>(&'a (L, R));
|
/// struct Arm<'a, L, R>(&'a (L, R));
|
||||||
/// struct Table<'a, K: 'a, V: 'a>(&'a [(K, V)], V);
|
/// struct Table<'a, K, V>(&'a [(K, V)], V);
|
||||||
///
|
///
|
||||||
/// impl<'a, L, R> fmt::Debug for Arm<'a, L, R>
|
/// impl<'a, L, R> fmt::Debug for Arm<'a, L, R>
|
||||||
/// where
|
/// where
|
||||||
/// L: 'a + fmt::Debug, R: 'a + fmt::Debug
|
/// L: 'a + fmt::Debug, R: 'a + fmt::Debug
|
||||||
/// {
|
/// {
|
||||||
/// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
|
/// fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||||
/// L::fmt(&(self.0).0, fmt)?;
|
/// L::fmt(&(self.0).0, fmt)?;
|
||||||
/// fmt.write_str(" => ")?;
|
/// fmt.write_str(" => ")?;
|
||||||
/// R::fmt(&(self.0).1, fmt)
|
/// R::fmt(&(self.0).1, fmt)
|
||||||
@ -2339,7 +2337,7 @@ impl<'a> Formatter<'a> {
|
|||||||
/// where
|
/// where
|
||||||
/// K: 'a + fmt::Debug, V: 'a + fmt::Debug
|
/// K: 'a + fmt::Debug, V: 'a + fmt::Debug
|
||||||
/// {
|
/// {
|
||||||
/// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
|
/// fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||||
/// fmt.debug_set()
|
/// fmt.debug_set()
|
||||||
/// .entries(self.0.iter().map(Arm))
|
/// .entries(self.0.iter().map(Arm))
|
||||||
/// .entry(&Arm(&(format_args!("_"), &self.1)))
|
/// .entry(&Arm(&(format_args!("_"), &self.1)))
|
||||||
@ -2363,7 +2361,7 @@ impl<'a> Formatter<'a> {
|
|||||||
/// struct Foo(Vec<(String, i32)>);
|
/// struct Foo(Vec<(String, i32)>);
|
||||||
///
|
///
|
||||||
/// impl fmt::Debug for Foo {
|
/// impl fmt::Debug for Foo {
|
||||||
/// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
|
/// fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||||
/// fmt.debug_map().entries(self.0.iter().map(|&(ref k, ref v)| (k, v))).finish()
|
/// fmt.debug_map().entries(self.0.iter().map(|&(ref k, ref v)| (k, v))).finish()
|
||||||
/// }
|
/// }
|
||||||
/// }
|
/// }
|
||||||
|
@ -15,7 +15,6 @@
|
|||||||
//! ```rust
|
//! ```rust
|
||||||
//! #![feature(core_intrinsics, custom_mir)]
|
//! #![feature(core_intrinsics, custom_mir)]
|
||||||
//!
|
//!
|
||||||
//! extern crate core;
|
|
||||||
//! use core::intrinsics::mir::*;
|
//! use core::intrinsics::mir::*;
|
||||||
//!
|
//!
|
||||||
//! #[custom_mir(dialect = "built")]
|
//! #[custom_mir(dialect = "built")]
|
||||||
@ -65,7 +64,6 @@
|
|||||||
//! ```rust
|
//! ```rust
|
||||||
//! #![feature(core_intrinsics, custom_mir)]
|
//! #![feature(core_intrinsics, custom_mir)]
|
||||||
//!
|
//!
|
||||||
//! extern crate core;
|
|
||||||
//! use core::intrinsics::mir::*;
|
//! use core::intrinsics::mir::*;
|
||||||
//!
|
//!
|
||||||
//! #[custom_mir(dialect = "built")]
|
//! #[custom_mir(dialect = "built")]
|
||||||
@ -317,7 +315,6 @@ define!(
|
|||||||
/// ```rust
|
/// ```rust
|
||||||
/// #![feature(custom_mir, core_intrinsics)]
|
/// #![feature(custom_mir, core_intrinsics)]
|
||||||
///
|
///
|
||||||
/// extern crate core;
|
|
||||||
/// use core::intrinsics::mir::*;
|
/// use core::intrinsics::mir::*;
|
||||||
///
|
///
|
||||||
/// #[custom_mir(dialect = "built")]
|
/// #[custom_mir(dialect = "built")]
|
||||||
|
@ -15,7 +15,7 @@ use crate::ops::Try;
|
|||||||
///
|
///
|
||||||
/// let a1 = [1, 2, 3];
|
/// let a1 = [1, 2, 3];
|
||||||
/// let a2 = [4, 5, 6];
|
/// let a2 = [4, 5, 6];
|
||||||
/// let iter: Chain<Iter<_>, Iter<_>> = a1.iter().chain(a2.iter());
|
/// let iter: Chain<Iter<'_, _>, Iter<'_, _>> = a1.iter().chain(a2.iter());
|
||||||
/// ```
|
/// ```
|
||||||
#[derive(Clone, Debug)]
|
#[derive(Clone, Debug)]
|
||||||
#[must_use = "iterators are lazy and do nothing unless consumed"]
|
#[must_use = "iterators are lazy and do nothing unless consumed"]
|
||||||
|
@ -498,7 +498,6 @@ macro_rules! r#try {
|
|||||||
/// In a `no_std` setup you are responsible for the implementation details of the components.
|
/// In a `no_std` setup you are responsible for the implementation details of the components.
|
||||||
///
|
///
|
||||||
/// ```no_run
|
/// ```no_run
|
||||||
/// # extern crate core;
|
|
||||||
/// use core::fmt::Write;
|
/// use core::fmt::Write;
|
||||||
///
|
///
|
||||||
/// struct Example;
|
/// struct Example;
|
||||||
|
@ -591,7 +591,7 @@ impl<T: ?Sized> !Sync for *mut T {}
|
|||||||
/// use std::marker::PhantomData;
|
/// use std::marker::PhantomData;
|
||||||
///
|
///
|
||||||
/// # #[allow(dead_code)]
|
/// # #[allow(dead_code)]
|
||||||
/// struct Slice<'a, T: 'a> {
|
/// struct Slice<'a, T> {
|
||||||
/// start: *const T,
|
/// start: *const T,
|
||||||
/// end: *const T,
|
/// end: *const T,
|
||||||
/// phantom: PhantomData<&'a T>,
|
/// phantom: PhantomData<&'a T>,
|
||||||
@ -607,7 +607,7 @@ impl<T: ?Sized> !Sync for *mut T {}
|
|||||||
/// ```
|
/// ```
|
||||||
/// # #![allow(dead_code)]
|
/// # #![allow(dead_code)]
|
||||||
/// # use std::marker::PhantomData;
|
/// # use std::marker::PhantomData;
|
||||||
/// # struct Slice<'a, T: 'a> {
|
/// # struct Slice<'a, T> {
|
||||||
/// # start: *const T,
|
/// # start: *const T,
|
||||||
/// # end: *const T,
|
/// # end: *const T,
|
||||||
/// # phantom: PhantomData<&'a T>,
|
/// # phantom: PhantomData<&'a T>,
|
||||||
|
@ -517,7 +517,7 @@ div_impl_float! { f32 f64 }
|
|||||||
/// use std::ops::Rem;
|
/// use std::ops::Rem;
|
||||||
///
|
///
|
||||||
/// #[derive(PartialEq, Debug)]
|
/// #[derive(PartialEq, Debug)]
|
||||||
/// struct SplitSlice<'a, T: 'a> {
|
/// struct SplitSlice<'a, T> {
|
||||||
/// slice: &'a [T],
|
/// slice: &'a [T],
|
||||||
/// }
|
/// }
|
||||||
///
|
///
|
||||||
|
@ -555,6 +555,7 @@ impl Copy for () {
|
|||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
/// # #![feature(rustc_private)]
|
/// # #![feature(rustc_private)]
|
||||||
|
/// #[allow(unused_extern_crates)]
|
||||||
/// extern crate libc;
|
/// extern crate libc;
|
||||||
///
|
///
|
||||||
/// use std::mem;
|
/// use std::mem;
|
||||||
|
@ -2287,7 +2287,7 @@ mod use_keyword {}
|
|||||||
/// # #![allow(dead_code)]
|
/// # #![allow(dead_code)]
|
||||||
/// pub enum Cow<'a, B>
|
/// pub enum Cow<'a, B>
|
||||||
/// where
|
/// where
|
||||||
/// B: 'a + ToOwned + ?Sized,
|
/// B: ToOwned + ?Sized,
|
||||||
/// {
|
/// {
|
||||||
/// Borrowed(&'a B),
|
/// Borrowed(&'a B),
|
||||||
/// Owned(<B as ToOwned>::Owned),
|
/// Owned(<B as ToOwned>::Owned),
|
||||||
|
@ -368,7 +368,7 @@ pub trait OpenOptionsExt {
|
|||||||
///
|
///
|
||||||
/// ```no_run
|
/// ```no_run
|
||||||
/// # #![feature(rustc_private)]
|
/// # #![feature(rustc_private)]
|
||||||
/// extern crate libc;
|
/// use libc;
|
||||||
/// use std::fs::OpenOptions;
|
/// use std::fs::OpenOptions;
|
||||||
/// use std::os::unix::fs::OpenOptionsExt;
|
/// use std::os::unix::fs::OpenOptionsExt;
|
||||||
///
|
///
|
||||||
|
@ -117,7 +117,7 @@ use crate::sys::path::{is_sep_byte, is_verbatim_sep, parse_prefix, MAIN_SEP_STR}
|
|||||||
/// use std::path::Prefix::*;
|
/// use std::path::Prefix::*;
|
||||||
/// use std::ffi::OsStr;
|
/// use std::ffi::OsStr;
|
||||||
///
|
///
|
||||||
/// fn get_path_prefix(s: &str) -> Prefix {
|
/// fn get_path_prefix(s: &str) -> Prefix<'_> {
|
||||||
/// let path = Path::new(s);
|
/// let path = Path::new(s);
|
||||||
/// match path.components().next().unwrap() {
|
/// match path.components().next().unwrap() {
|
||||||
/// Component::Prefix(prefix_component) => prefix_component.kind(),
|
/// Component::Prefix(prefix_component) => prefix_component.kind(),
|
||||||
|
@ -555,6 +555,7 @@ impl Copy for () {
|
|||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
/// # #![feature(rustc_private)]
|
/// # #![feature(rustc_private)]
|
||||||
|
/// #[allow(unused_extern_crates)]
|
||||||
/// extern crate libc;
|
/// extern crate libc;
|
||||||
///
|
///
|
||||||
/// use std::mem;
|
/// use std::mem;
|
||||||
|
@ -1835,7 +1835,7 @@ impl ExitCode {
|
|||||||
/// # use std::fmt;
|
/// # use std::fmt;
|
||||||
/// # enum UhOhError { GenericProblem, Specific, WithCode { exit_code: ExitCode, _x: () } }
|
/// # enum UhOhError { GenericProblem, Specific, WithCode { exit_code: ExitCode, _x: () } }
|
||||||
/// # impl fmt::Display for UhOhError {
|
/// # impl fmt::Display for UhOhError {
|
||||||
/// # fn fmt(&self, _: &mut fmt::Formatter) -> fmt::Result { unimplemented!() }
|
/// # fn fmt(&self, _: &mut fmt::Formatter<'_>) -> fmt::Result { unimplemented!() }
|
||||||
/// # }
|
/// # }
|
||||||
/// // there's no way to gracefully recover from an UhOhError, so we just
|
/// // there's no way to gracefully recover from an UhOhError, so we just
|
||||||
/// // print a message and exit
|
/// // print a message and exit
|
||||||
|
@ -2146,6 +2146,10 @@ impl<'a> Builder<'a> {
|
|||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests;
|
mod tests;
|
||||||
|
|
||||||
|
/// Represents flag values in `String` form with whitespace delimiter to pass it to the compiler later.
|
||||||
|
///
|
||||||
|
/// `-Z crate-attr` flags will be applied recursively on the target code using the `rustc_parse::parser::Parser`.
|
||||||
|
/// See `rustc_builtin_macros::cmdline_attrs::inject` for more information.
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
struct Rustflags(String, TargetSelection);
|
struct Rustflags(String, TargetSelection);
|
||||||
|
|
||||||
|
@ -412,6 +412,8 @@ pub fn std_cargo(builder: &Builder<'_>, target: TargetSelection, stage: u32, car
|
|||||||
format!("-Zcrate-attr=doc(html_root_url=\"{}/\")", builder.doc_rust_lang_org_channel(),);
|
format!("-Zcrate-attr=doc(html_root_url=\"{}/\")", builder.doc_rust_lang_org_channel(),);
|
||||||
cargo.rustflag(&html_root);
|
cargo.rustflag(&html_root);
|
||||||
cargo.rustdocflag(&html_root);
|
cargo.rustdocflag(&html_root);
|
||||||
|
|
||||||
|
cargo.rustdocflag("-Zcrate-attr=warn(rust_2018_idioms)");
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
|
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
|
||||||
@ -810,6 +812,9 @@ pub fn rustc_cargo(builder: &Builder<'_>, cargo: &mut Cargo, target: TargetSelec
|
|||||||
.arg(builder.rustc_features(builder.kind))
|
.arg(builder.rustc_features(builder.kind))
|
||||||
.arg("--manifest-path")
|
.arg("--manifest-path")
|
||||||
.arg(builder.src.join("compiler/rustc/Cargo.toml"));
|
.arg(builder.src.join("compiler/rustc/Cargo.toml"));
|
||||||
|
|
||||||
|
cargo.rustdocflag("-Zcrate-attr=warn(rust_2018_idioms)");
|
||||||
|
|
||||||
rustc_cargo_env(builder, cargo, target, stage);
|
rustc_cargo_env(builder, cargo, target, stage);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user