diff --git a/src/attributes.rst b/src/attributes.rst index bc91fec8..80ef645b 100644 --- a/src/attributes.rst +++ b/src/attributes.rst @@ -223,6 +223,9 @@ The following :t:`[built-in attribute]s` are :dt:`[diagnostics attribute]s`: * :dp:`fls_29y8icoou1gx` :t:`Attribute` ``warn``. +* :dp:`fls_NrTL2FruARAv` + :t:`Attribute` ``expect``. + :dp:`fls_3fxhz0olhbcy` The following :t:`[built-in attribute]s` are :dt:`[documentation attribute]s`: diff --git a/src/changelog.rst b/src/changelog.rst index 6327b484..5e92d7db 100644 --- a/src/changelog.rst +++ b/src/changelog.rst @@ -18,6 +18,47 @@ with the change that has been applied due to it. just the language changes that had an impact to the FLS. See the `release notes`_ for a full list of changes. +Language changes in Rust 1.81.0 +------------------------------- + +* `Abort on uncaught panics in `extern "C"` functions. `_ + + * No change: unwinding is not specified in the FLS + +* `Fix ambiguous cases of multiple `&` in elided self lifetimes. `_ + + * Changed paragraph: :p:`fls_crb6m6b3cdwh` + + * New paragraph: :p:`fls_d4u3y82hdadc` + +* `Stabilize `#[expect]` for lints (RFC 2383), `_ like `#[allow]` with a warning if the lint is _not_ fulfilled. + + * New paragraph: :p:`fls_NrTL2FruARAv` + +* `Change method resolution to constrain hidden types instead of rejecting method candidates. `_ + + * No change: the concrete type inference resolution is not part of the FLS + +* `Bump `elided_lifetimes_in_associated_constant` to deny. `_ + + * No change: lints are not part of the FLS + +* `\`offset_from\`: always allow pointers to point to the same address. `_ + + * No change: this previous restriction is not specified in the FLS + +* `Allow constraining opaque types during subtyping in the trait system. `_ + + * No change: the concrete type inference resolution is not part of the FLS + +* `Allow constraining opaque types during various unsizing casts. `_ + + * No change: the concrete type inference resolution is not part of the FLS + +* `Deny keyword lifetimes pre-expansion. `_ + + * No change: the FLS already specifies this restriction in :s:`Lifetime` + Language changes in Rust 1.80.0 ------------------------------- diff --git a/src/types-and-traits.rst b/src/types-and-traits.rst index d4ce29f2..fa939276 100644 --- a/src/types-and-traits.rst +++ b/src/types-and-traits.rst @@ -3200,6 +3200,10 @@ An :dt:`input lifetime` is one of the following :t:`[lifetime]s`: :std:`core::ops::Fn`, :std:`core::ops::FnMut`, and :std:`core::ops::FnOnce` :t:`[trait]s`. +:dp:`fls_d4u3y82hdadc` +A :dt:`self input lifetime` is an :t:`input lifetime` of a :t:`self parameter` +that is a :t:`lifetime` of a :t:`reference type` whose referent is :c:`Self`. + * :dp:`fls_ks8wlufmhz6d` Any :t:`lifetime` related to an :t:`implementing type` and an :t:`implemented trait` of an :t:`implementation`. @@ -3231,10 +3235,10 @@ An :dt:`output lifetime` is one of the following :t:`[lifetime]s`: :t:`lifetime` is assigned to all :t:`elided` :t:`[output lifetime]s`. #. :dp:`fls_crb6m6b3cdwh` - If a :t:`function` has a :t:`self parameter` of the form ``&self``, - ``&mut self``, or ``self: T`` where ``T`` is a :t:`type` with a - :t:`lifetime`, then the :t:`lifetime` of the :t:`self parameter` is assigned - to all :t:`elided` :t:`[output lifetime]s`. + If a :t:`function` has a :t:`self parameter` with exactly 1 + :t:`self input lifetime`, then the :t:`lifetime` of the + :t:`self input lifetime` is assigned to all :t:`elided` + :t:`[output lifetime]s`. #. :dp:`fls_ac9tdlfwp5et` Otherwise this is a static error.