From 421b07e6897de7d982e7ef1213294592bcd2f68f Mon Sep 17 00:00:00 2001 From: Tshepang Mbambo Date: Thu, 25 Sep 2025 14:35:20 +0200 Subject: [PATCH 01/14] document Rust 1.89 changes --- src/attributes.rst | 135 +++++++++++++++++++++++++++ src/changelog.rst | 100 ++++++++++++++++++++ src/generics.rst | 13 +++ src/ownership-and-deconstruction.rst | 3 + src/types-and-traits.rst | 2 +- 5 files changed, 252 insertions(+), 1 deletion(-) diff --git a/src/attributes.rst b/src/attributes.rst index 424eb817..c233a6aa 100644 --- a/src/attributes.rst +++ b/src/attributes.rst @@ -483,22 +483,49 @@ Attribute ``target_feature`` | $$aes$$ | $$avx$$ | $$avx2$$ + | $$avx512bf16$$ + | $$avx512bitalg$$ + | $$avx512bw$$ + | $$avx512cd$$ + | $$avx512dq$$ + | $$avx512f$$ + | $$avx512fp16$$ + | $$avx512ifma$$ + | $$avx512vbmi$$ + | $$avx512vbmi2$$ + | $$avx512vl$$ + | $$avx512vnni$$ + | $$avx512vp2intersect$$ + | $$avx512vpopcntdq$$ + | $$avxifma$$ + | $$avxneconvert$$ + | $$avxvnni$$ + | $$avxvnniint16$$ + | $$avxvnniint8$$ | $$bmi1$$ | $$bmi2$$ | $$fma$$ | $$fxsr$$ + | $$gfni$$ + | $$kl$$ | $$lzcnt$$ | $$pclmulqdq$$ | $$popcnt$$ | $$rdrand$$ | $$rdseed$$ | $$sha$$ + | $$sha512$$ + | $$sm3$$ + | $$sm4$$ | $$sse$$ | $$sse2$$ | $$sse3$$ | $$sse4.1$$ | $$sse4.2$$ | $$ssse3$$ + | $$vaes$$ + | $$vpclmulqdq$$ + | $$widekl$$ | $$xsave$$ | $$xsavec$$ | $$xsaveopt$$ @@ -540,6 +567,82 @@ The target architecture features are as follows: - avx2 - avx - Advanced Vector Extensions 2 + * - :dp:`fls_8HPcvIaahaB9` + - avx512bf16 + - avx512bw + - Advanced Vector Extensions 512-bit - Bfloat16 Extensions + * - :dp:`fls_lxcfj6XCKyMh` + - vx512bitalg + - avx512bw + - Advanced Vector Extensions 512-bit - Bit Algorithms + * - :dp:`fls_fh7i1Pcmqjdm` + - avx512bw + - avx512f + - Advanced Vector Extensions 512-bit - Byte and Word Instructions + * - :dp:`fls_M9ne2sqhRB5L` + - avx512cd + - avx512f + - Advanced Vector Extensions 512-bit - Conflict Detection Instructions + * - :dp:`fls_xWcGvl83bVWC` + - avx512dq + - avx512f + - Advanced Vector Extensions 512-bit - Doubleword and Quadword Instructions + * - :dp:`fls_5CVTkOoLHAvW` + - avx512f + - avx2, fma, f16c + - Advanced Vector Extensions 512-bit - Foundation + * - :dp:`fls_hThb8qn820wJ` + - avx512fp16 + - avx512bw + - Advanced Vector Extensions 512-bit - Float16 Extensions + * - :dp:`fls_1T0VYMtG3loD` + - avx512ifma + - avx512f + - Advanced Vector Extensions 512-bit - Integer Fused Multiply Add + * - :dp:`fls_AlBD9ckWKecQ` + - avx512vbmi + - avx512bw + - Advanced Vector Extensions 512-bit - Vector Byte Manipulation Instructions + * - :dp:`fls_72cwAExPDMQ8` + - avx512vbmi2 + - avx512bw + - Advanced Vector Extensions 512-bit - Vector Byte Manipulation Instructions 2 + * - :dp:`fls_pSSIwmUAnUly` + - avx512vl + - avx512f + - Advanced Vector Extensions 512-bit - Vector Length Extensions + * - :dp:`fls_YOW8lcBQ5lNI` + - avx512vnni + - avx512f + - Advanced Vector Extensions 512-bit - Vector Neural Network Instructions + * - :dp:`fls_8PrvVL6dkr31` + - avx512vp2intersect + - avx512f + - Advanced Vector Extensions 512-bit - Vector Pair Intersection to a Pair of Mask Registers + * - :dp:`fls_hKvaSExdlKgd` + - avx512vpopcntdq + - avx512f + - Advanced Vector Extensions 512-bit - Vector Population Count Instruction + * - :dp:`fls_r5KEicrmEGJt` + - avxifma + - avx2 + - Advanced Vector Extensions - Integer Fused Multiply Add + * - :dp:`fls_Qnx9nNiJeIAX` + - avxneconvert + - avx2 + - Advanced Vector Extensions - No-Exception Floating-Point conversion Instructions + * - :dp:`fls_ZrcPWy4pxlTX` + - avxvnni + - avx2 + - Advanced Vector Extensions - Vector Neural Network Instructions + * - :dp:`fls_YW7otDxAliSj` + - avxvnniint16 + - avx2 + - Advanced Vector Extensions - Vector Neural Network Instructions with 16-bit Integers + * - :dp:`fls_G4aOoX8a7i7r` + - avxvnniint8 + - avx2 + - Advanced Vector Extensions - Vector Neural Network Instructions with 8-bit Integers * - :dp:`fls_eglaup5zyfsk` - bmi1 - @@ -556,6 +659,14 @@ The target architecture features are as follows: - fxsr - - Save and restore x87 FPU, MMX technology, and SSE state + * - :dp:`fls_HGKiXfM5fGVo` + - gfni + - sse2 + - Galois Field New Instructions + * - :dp:`fls_gtoLNHFmmBzd` + - kl + - sse2 + - Intel Key Locker Instructions * - :dp:`fls_406ltkru11tk` - lzcnt - @@ -580,6 +691,18 @@ The target architecture features are as follows: - sha - sse2 - Secure Hash Algorithm + * - :dp:`fls_UPhNSZS89sYr` + - sha512 + - avx2 + - Secure Hash Algorithm with 512-bit digest + * - :dp:`fls_HoNwaLtDzwZi` + - sm3 + - avx + - ShangMi 3 Hash Algorithm + * - :dp:`fls_VqjfIihpRe9m` + - sm4 + - avx2 + - ShangMi 4 Hash Algorithm * - :dp:`fls_7c31e21g6bdj` - sse - @@ -604,6 +727,18 @@ The target architecture features are as follows: - ssse3 - sse3 - Supplemental Streaming SIMD Extensions 3 + * - :dp:`fls_gRf8F9PIGySt` + - vaes + - avx2, aes + - Vector AES Instructions + * - :dp:`fls_NNj4H6A9VTR8` + - vpclmulqdq + - avx, pclmulqdq + - Vector Carry-less multiplication of Quadwords + * - :dp:`fls_qZO82VdU5Iz9` + - widekl + - kl + - Intel Wide Keylocker Instructions * - :dp:`fls_rilqwazchfpp` - xsave - diff --git a/src/changelog.rst b/src/changelog.rst index fd40d071..fe9432ac 100644 --- a/src/changelog.rst +++ b/src/changelog.rst @@ -18,6 +18,106 @@ 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.89.0 +------------------------------- + +- `Stabilize explicitly inferred const arguments (feature(generic_arg_infer)) `_ + + - New paragraphs: + + - :p:`fls_reASCId0i117` + - :p:`fls_Ft5rGeL7QwJM` + - :p:`fls_7epZNsTYNmgE` + - :p:`fls_TvuMMQnR0drL` + + - Changed paragraph: :p:`fls_imr2jx6cbuzq` + +- `Add a warn-by-default mismatched_lifetime_syntaxes lint `_. + This lint detects when the same lifetime is referred to by different syntax categories between function arguments and return values, which can be confusing to read, especially in unsafe code. + This lint supersedes the warn-by-default ``elided_named_lifetimes`` lint. + + - No change: lints are not part of the FLS + +- `Expand unpredictable_function_pointer_comparisons to also lint on function pointer comparisons in external macros `_ + + - No change: lints are not part of the FLS + +- `Make the dangerous_implicit_autorefs lint deny-by-default `_ + + - No change: lints are not part of the FLS + +- `Stabilize the avx512 target features `_ + + - Changed syntax: :s:`Feature` + + - New paragraphs: + + - :p:`fls_8HPcvIaahaB9` + - :p:`fls_lxcfj6XCKyMh` + - :p:`fls_fh7i1Pcmqjdm` + - :p:`fls_M9ne2sqhRB5L` + - :p:`fls_xWcGvl83bVWC` + - :p:`fls_5CVTkOoLHAvW` + - :p:`fls_hThb8qn820wJ` + - :p:`fls_1T0VYMtG3loD` + - :p:`fls_AlBD9ckWKecQ` + - :p:`fls_72cwAExPDMQ8` + - :p:`fls_pSSIwmUAnUly` + - :p:`fls_YOW8lcBQ5lNI` + - :p:`fls_8PrvVL6dkr31` + - :p:`fls_hKvaSExdlKgd` + - :p:`fls_r5KEicrmEGJt` + - :p:`fls_Qnx9nNiJeIAX` + - :p:`fls_ZrcPWy4pxlTX` + - :p:`fls_YW7otDxAliSj` + - :p:`fls_G4aOoX8a7i7r` + - :p:`fls_HGKiXfM5fGVo` + - :p:`fls_gRf8F9PIGySt` + - :p:`fls_NNj4H6A9VTR8` + +- `Stabilize these target featires for x86: kl, widekl `_ + + - Changed syntax: :s:`Feature` + + - New paragraphs: + + - :p:`fls_gtoLNHFmmBzd` + - :p:`fls_qZO82VdU5Iz9` + +- `Stabilize these target features for x86: sha512, sm3, sm4 `_ + + - Changed syntax: :s:`Feature` + + - New paragraphs: + + - :p:`fls_UPhNSZS89sYr` + - :p:`fls_HoNwaLtDzwZi` + - :p:`fls_VqjfIihpRe9m` + +- `Stabilize these LoongArch target features: f, d, frecipe, lasx, lbt, lsx, lvz `_ + + - No change: the target is outside the scope of the FLS + +- `Remove i128 and u128 from improper_ctypes_definitions lint `_ + + - No change: lints are not part of the FLS + +- `Stabilize repr128 (#[repr(u128), #repr(i128)]) `_ + + - No change: this was erroneously documented as if it was already true + +- `Allow #![doc(test(attr(..))) everywhere `_ + + - No change: documentation tests are outside the scope of the FLS + +- `Extend temporary lifetime extension to also go through tuple struct and tuple variant constructors `_ + + - New paragraph: :p:`fls_rT33l0YwUGlK` + +- `extern "C" functions on the wasm32-unknown-unknown target now have a standards compliant ABI `_ + + - No change: the target is outside the scope of the FLS + Language changes in Rust 1.88.0 ------------------------------- diff --git a/src/generics.rst b/src/generics.rst index a1df5c0f..4e1ff27b 100644 --- a/src/generics.rst +++ b/src/generics.rst @@ -169,6 +169,19 @@ A :t:`constant parameter` shall be used in the following contexts: * :dp:`fls_byqjs5fvy2bj` As a :t:`value` of any :t:`expression` within a :t:`function body`. +:dp:`fls_reASCId0i117` +An :dt:`inferred constant` is a :t:`constant argument` which is inferred +from the surrounding context by using ``_`` (underscore) in its place. + +:dp:`fls_Ft5rGeL7QwJM` +An :t:`inferred constant` can only be used inside a :t:`function body`. + +:dp:`fls_7epZNsTYNmgE` +An :t:`inferred constant` cannot be surrounded by ``{}`` (curly braces). + +:dp:`fls_TvuMMQnR0drL` +An :t:`inferred constant` can be surrounded by an arbitrary number of ``()`` (parentheses). + :dp:`fls_hidfwkwr2r73` A :t:`type parameter` has an implicit :std:`core::marker::Sized` :t:`bound`, unless an :t:`opt-out trait bound` for the :std:`core::marker::Sized` :t:`trait` diff --git a/src/ownership-and-deconstruction.rst b/src/ownership-and-deconstruction.rst index a1f3fdc5..6ffe3e00 100644 --- a/src/ownership-and-deconstruction.rst +++ b/src/ownership-and-deconstruction.rst @@ -637,6 +637,9 @@ An :dt:`extending expression` is either The :t:`tail expression` of a :t:`block expression` that is an :t:`extending expression`. +* :dp:`fls_rT33l0YwUGlK` + The :t:`argument operand` to an extending :t:`tuple struct` or :t:`tuple enum variant`. + :dp:`fls_aq01wjpkxhq9` The :t:`drop scope` of the :t:`operand` of a :t:`borrow expression` that is an :t:`extending expression` is extended to the :t:`drop scope` of the diff --git a/src/types-and-traits.rst b/src/types-and-traits.rst index 5ad47a25..feaf45e6 100644 --- a/src/types-and-traits.rst +++ b/src/types-and-traits.rst @@ -491,7 +491,7 @@ of elements. The :t:`element type` shall be a :t:`fixed sized type`. :dp:`fls_imr2jx6cbuzq` -The :t:`size operand` shall be a :t:`constant expression`. +The :t:`size operand` shall be a :t:`constant expression` or an :t:`inferred constant`. :dp:`fls_r8nqxry2dlww` The :t:`type` of the :t:`size operand` is :t:`type` :c:`usize`. From 9560aff930b6a027712da30c85b519c3c5e2449c Mon Sep 17 00:00:00 2001 From: Tshepang Mbambo Date: Thu, 25 Sep 2025 14:38:42 +0200 Subject: [PATCH 02/14] use a consistent list style --- src/ownership-and-deconstruction.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ownership-and-deconstruction.rst b/src/ownership-and-deconstruction.rst index 6ffe3e00..15926f56 100644 --- a/src/ownership-and-deconstruction.rst +++ b/src/ownership-and-deconstruction.rst @@ -611,15 +611,15 @@ the :t:`let statement` is extended to the :t:`drop scope` of the :t:`block expression` that contains the :t:`let statement`. :dp:`fls_wyzau8hhq74d` -An :dt:`extending expression` is either +An :dt:`extending expression` is any of the following: * :dp:`fls_ju7cpftd8r2g` - The :t:`expression` of a :t:`let statement`, or + The :t:`expression` of a :t:`let statement`. * :dp:`fls_gjd1ow3l7swe` The :t:`operand` of an :t:`extending expression` that is an :t:`array expression`, a :t:`borrow expression`, a :t:`struct expression`, a - :t:`tuple expression`, or a :t:`type cast expression`, or + :t:`tuple expression`, or a :t:`type cast expression`. * :dp:`fls_Rj9zhVutfQod` The :t:`block expression` and :t:`else expression` of an :t:`if expression` From 5154644f8087ae8d658ab82f381e7fae51c0fed8 Mon Sep 17 00:00:00 2001 From: Tshepang Mbambo Date: Fri, 26 Sep 2025 12:31:33 +0200 Subject: [PATCH 03/14] Apply suggestion from @traviscross Co-authored-by: Travis Cross --- src/changelog.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/changelog.rst b/src/changelog.rst index fe9432ac..5eacb6bd 100644 --- a/src/changelog.rst +++ b/src/changelog.rst @@ -104,7 +104,7 @@ Language changes in Rust 1.89.0 - `Stabilize repr128 (#[repr(u128), #repr(i128)]) `_ - - No change: this was erroneously documented as if it was already true + - No change: this was erroneously documented as if it were already true - `Allow #![doc(test(attr(..))) everywhere `_ From 999b83de27b15d6e31329cb22a10934a4d5020bf Mon Sep 17 00:00:00 2001 From: Tshepang Mbambo Date: Mon, 29 Sep 2025 21:33:06 +0200 Subject: [PATCH 04/14] replace wrong claim Can be used outside of functions: const X: [u8; 1] = { let x: [u8; _] = [0; _]; x }; --- src/generics.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/generics.rst b/src/generics.rst index 4e1ff27b..67ff2905 100644 --- a/src/generics.rst +++ b/src/generics.rst @@ -174,7 +174,7 @@ An :dt:`inferred constant` is a :t:`constant argument` which is inferred from the surrounding context by using ``_`` (underscore) in its place. :dp:`fls_Ft5rGeL7QwJM` -An :t:`inferred constant` can only be used inside a :t:`function body`. +An :t:`inferred constant` cannot be used in :t:`item` signatures. :dp:`fls_7epZNsTYNmgE` An :t:`inferred constant` cannot be surrounded by ``{}`` (curly braces). From 318a2f895994e7ba6131d2e79976113dfaa57866 Mon Sep 17 00:00:00 2001 From: Tshepang Mbambo Date: Mon, 29 Sep 2025 21:59:05 +0200 Subject: [PATCH 05/14] distinguish between a type and its construction --- src/changelog.rst | 5 ++++- src/ownership-and-deconstruction.rst | 7 ++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/changelog.rst b/src/changelog.rst index 5eacb6bd..b389b841 100644 --- a/src/changelog.rst +++ b/src/changelog.rst @@ -112,7 +112,10 @@ Language changes in Rust 1.89.0 - `Extend temporary lifetime extension to also go through tuple struct and tuple variant constructors `_ - - New paragraph: :p:`fls_rT33l0YwUGlK` + - New paragraphs: + + - :p:`fls_rT33l0YwUGlK` + - :p:`fls_eeaJtK4w5gVK` - `extern "C" functions on the wasm32-unknown-unknown target now have a standards compliant ABI `_ diff --git a/src/ownership-and-deconstruction.rst b/src/ownership-and-deconstruction.rst index 15926f56..3c0e5add 100644 --- a/src/ownership-and-deconstruction.rst +++ b/src/ownership-and-deconstruction.rst @@ -637,8 +637,13 @@ An :dt:`extending expression` is any of the following: The :t:`tail expression` of a :t:`block expression` that is an :t:`extending expression`. +* :dp:`fls_eeaJtK4w5gVK` + The :t:`argument operand` to a :t:`tuple struct call expression` + of an extending :t:`tuple struct`. + * :dp:`fls_rT33l0YwUGlK` - The :t:`argument operand` to an extending :t:`tuple struct` or :t:`tuple enum variant`. + The :t:`argument operand` to a :t:`tuple struct call expression` + of an extending :t:`tuple enum variant`. :dp:`fls_aq01wjpkxhq9` The :t:`drop scope` of the :t:`operand` of a :t:`borrow expression` that is an From 6cb5c1e5d621996e0380c47c735d6f0becdd759c Mon Sep 17 00:00:00 2001 From: Tshepang Mbambo Date: Thu, 2 Oct 2025 12:50:06 +0200 Subject: [PATCH 06/14] add some clarity to "inferred constant" definition --- src/generics.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/generics.rst b/src/generics.rst index 67ff2905..2a104e4e 100644 --- a/src/generics.rst +++ b/src/generics.rst @@ -170,7 +170,7 @@ A :t:`constant parameter` shall be used in the following contexts: As a :t:`value` of any :t:`expression` within a :t:`function body`. :dp:`fls_reASCId0i117` -An :dt:`inferred constant` is a :t:`constant argument` which is inferred +An :dt:`inferred constant` is a :t:`constant argument` whose :t:`value` is inferred from the surrounding context by using ``_`` (underscore) in its place. :dp:`fls_Ft5rGeL7QwJM` From 1d6b3dce7cd4f3593906ad3821a8d21a65c8b60a Mon Sep 17 00:00:00 2001 From: Tshepang Mbambo Date: Thu, 2 Oct 2025 13:19:06 +0200 Subject: [PATCH 07/14] it is the expression that is extending, not the type --- src/ownership-and-deconstruction.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/ownership-and-deconstruction.rst b/src/ownership-and-deconstruction.rst index 3c0e5add..d447da1e 100644 --- a/src/ownership-and-deconstruction.rst +++ b/src/ownership-and-deconstruction.rst @@ -638,12 +638,12 @@ An :dt:`extending expression` is any of the following: :t:`extending expression`. * :dp:`fls_eeaJtK4w5gVK` - The :t:`argument operand` to a :t:`tuple struct call expression` - of an extending :t:`tuple struct`. + A :t:`call expression` that is an :t:`extending expression` + where the :t:`call operand` resolves to a :t:`tuple struct`. * :dp:`fls_rT33l0YwUGlK` - The :t:`argument operand` to a :t:`tuple struct call expression` - of an extending :t:`tuple enum variant`. + A :t:`call expression` that is an :t:`extending expression` + where the :t:`call operand` resolves to a :t:`tuple enum variant`. :dp:`fls_aq01wjpkxhq9` The :t:`drop scope` of the :t:`operand` of a :t:`borrow expression` that is an From 71cd166390c8277e67a21405de0a8ac63526e0a3 Mon Sep 17 00:00:00 2001 From: Tshepang Mbambo Date: Thu, 2 Oct 2025 13:23:33 +0200 Subject: [PATCH 08/14] use one paragraph for both rules --- src/changelog.rst | 5 +---- src/ownership-and-deconstruction.rst | 6 +----- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/src/changelog.rst b/src/changelog.rst index b389b841..3bff1d7f 100644 --- a/src/changelog.rst +++ b/src/changelog.rst @@ -112,10 +112,7 @@ Language changes in Rust 1.89.0 - `Extend temporary lifetime extension to also go through tuple struct and tuple variant constructors `_ - - New paragraphs: - - - :p:`fls_rT33l0YwUGlK` - - :p:`fls_eeaJtK4w5gVK` + - New paragraph: :p:`fls_eeaJtK4w5gVK` - `extern "C" functions on the wasm32-unknown-unknown target now have a standards compliant ABI `_ diff --git a/src/ownership-and-deconstruction.rst b/src/ownership-and-deconstruction.rst index d447da1e..e9163064 100644 --- a/src/ownership-and-deconstruction.rst +++ b/src/ownership-and-deconstruction.rst @@ -639,11 +639,7 @@ An :dt:`extending expression` is any of the following: * :dp:`fls_eeaJtK4w5gVK` A :t:`call expression` that is an :t:`extending expression` - where the :t:`call operand` resolves to a :t:`tuple struct`. - -* :dp:`fls_rT33l0YwUGlK` - A :t:`call expression` that is an :t:`extending expression` - where the :t:`call operand` resolves to a :t:`tuple enum variant`. + where the :t:`call operand` resolves to a :t:`tuple struct` or a :t:`tuple enum variant`. :dp:`fls_aq01wjpkxhq9` The :t:`drop scope` of the :t:`operand` of a :t:`borrow expression` that is an From db989c8d892f3b3b5926f0d4cc8e52e0f809bac8 Mon Sep 17 00:00:00 2001 From: Tshepang Mbambo Date: Thu, 2 Oct 2025 13:40:25 +0200 Subject: [PATCH 09/14] keep to wording choice of others in the list --- src/ownership-and-deconstruction.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ownership-and-deconstruction.rst b/src/ownership-and-deconstruction.rst index e9163064..a95b96b2 100644 --- a/src/ownership-and-deconstruction.rst +++ b/src/ownership-and-deconstruction.rst @@ -638,7 +638,7 @@ An :dt:`extending expression` is any of the following: :t:`extending expression`. * :dp:`fls_eeaJtK4w5gVK` - A :t:`call expression` that is an :t:`extending expression` + The :t:`call expression` that is the :t:`extending expression` where the :t:`call operand` resolves to a :t:`tuple struct` or a :t:`tuple enum variant`. :dp:`fls_aq01wjpkxhq9` From 902bbf388bc09917d36759ea1b4755ad943d1a70 Mon Sep 17 00:00:00 2001 From: Tshepang Mbambo Date: Thu, 2 Oct 2025 14:28:52 +0200 Subject: [PATCH 10/14] avoid being circular by adding a definition --- src/changelog.rst | 6 +++++- src/ownership-and-deconstruction.rst | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/changelog.rst b/src/changelog.rst index 3bff1d7f..29aa10ea 100644 --- a/src/changelog.rst +++ b/src/changelog.rst @@ -112,7 +112,11 @@ Language changes in Rust 1.89.0 - `Extend temporary lifetime extension to also go through tuple struct and tuple variant constructors `_ - - New paragraph: :p:`fls_eeaJtK4w5gVK` + - New paragraphs: + + - :p:`fls_YeeZWqTdMivX` + - :p:`fls_wyzau8hhq74d` + - :p:`fls_eeaJtK4w5gVK` - `extern "C" functions on the wasm32-unknown-unknown target now have a standards compliant ABI `_ diff --git a/src/ownership-and-deconstruction.rst b/src/ownership-and-deconstruction.rst index a95b96b2..aaa5ca1e 100644 --- a/src/ownership-and-deconstruction.rst +++ b/src/ownership-and-deconstruction.rst @@ -610,8 +610,12 @@ If the :t:`pattern-without-alternation` of a :t:`let statement` is an the :t:`let statement` is extended to the :t:`drop scope` of the :t:`block expression` that contains the :t:`let statement`. +:dp:`fls_YeeZWqTdMivX` +An :dt:`extending expression` is an :t:`expression` with an +:t:`extended drop scope `. + :dp:`fls_wyzau8hhq74d` -An :dt:`extending expression` is any of the following: +An :t:`extending expression` is any of the following: * :dp:`fls_ju7cpftd8r2g` The :t:`expression` of a :t:`let statement`. From 3d4854e62cbe4b51c9966105369cf864c556c21c Mon Sep 17 00:00:00 2001 From: Tshepang Mbambo Date: Sat, 4 Oct 2025 20:48:20 +0200 Subject: [PATCH 11/14] the arguments are central --- src/ownership-and-deconstruction.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ownership-and-deconstruction.rst b/src/ownership-and-deconstruction.rst index aaa5ca1e..a21525c3 100644 --- a/src/ownership-and-deconstruction.rst +++ b/src/ownership-and-deconstruction.rst @@ -642,8 +642,8 @@ An :t:`extending expression` is any of the following: :t:`extending expression`. * :dp:`fls_eeaJtK4w5gVK` - The :t:`call expression` that is the :t:`extending expression` - where the :t:`call operand` resolves to a :t:`tuple struct` or a :t:`tuple enum variant`. + The :t:`[argument operand]s` of an extending :t:`call expression` + of a :t:`tuple struct` or a :t:`tuple enum variant`. :dp:`fls_aq01wjpkxhq9` The :t:`drop scope` of the :t:`operand` of a :t:`borrow expression` that is an From 27d3a35d3cb0e7483dcc6acbfa4d44576395b936 Mon Sep 17 00:00:00 2001 From: Tshepang Mbambo Date: Mon, 6 Oct 2025 05:18:18 +0200 Subject: [PATCH 12/14] keep to 80 columns --- src/generics.rst | 7 ++++--- src/types-and-traits.rst | 3 ++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/generics.rst b/src/generics.rst index 2a104e4e..13b9f22c 100644 --- a/src/generics.rst +++ b/src/generics.rst @@ -170,8 +170,8 @@ A :t:`constant parameter` shall be used in the following contexts: As a :t:`value` of any :t:`expression` within a :t:`function body`. :dp:`fls_reASCId0i117` -An :dt:`inferred constant` is a :t:`constant argument` whose :t:`value` is inferred -from the surrounding context by using ``_`` (underscore) in its place. +An :dt:`inferred constant` is a :t:`constant argument` whose :t:`value` is +inferred from the surrounding context by using ``_`` (underscore) in its place. :dp:`fls_Ft5rGeL7QwJM` An :t:`inferred constant` cannot be used in :t:`item` signatures. @@ -180,7 +180,8 @@ An :t:`inferred constant` cannot be used in :t:`item` signatures. An :t:`inferred constant` cannot be surrounded by ``{}`` (curly braces). :dp:`fls_TvuMMQnR0drL` -An :t:`inferred constant` can be surrounded by an arbitrary number of ``()`` (parentheses). +An :t:`inferred constant` can be surrounded by an arbitrary number of ``()`` +(parentheses). :dp:`fls_hidfwkwr2r73` A :t:`type parameter` has an implicit :std:`core::marker::Sized` :t:`bound`, diff --git a/src/types-and-traits.rst b/src/types-and-traits.rst index feaf45e6..45fd5b6e 100644 --- a/src/types-and-traits.rst +++ b/src/types-and-traits.rst @@ -491,7 +491,8 @@ of elements. The :t:`element type` shall be a :t:`fixed sized type`. :dp:`fls_imr2jx6cbuzq` -The :t:`size operand` shall be a :t:`constant expression` or an :t:`inferred constant`. +The :t:`size operand` shall be a :t:`constant expression` +or an :t:`inferred constant`. :dp:`fls_r8nqxry2dlww` The :t:`type` of the :t:`size operand` is :t:`type` :c:`usize`. From b27781c049fca730c1d1f08a8bf85a64293b2436 Mon Sep 17 00:00:00 2001 From: Tshepang Mbambo Date: Mon, 6 Oct 2025 06:32:24 +0200 Subject: [PATCH 13/14] replace awkward wording --- src/ownership-and-deconstruction.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ownership-and-deconstruction.rst b/src/ownership-and-deconstruction.rst index a21525c3..c7b2ef02 100644 --- a/src/ownership-and-deconstruction.rst +++ b/src/ownership-and-deconstruction.rst @@ -643,7 +643,7 @@ An :t:`extending expression` is any of the following: * :dp:`fls_eeaJtK4w5gVK` The :t:`[argument operand]s` of an extending :t:`call expression` - of a :t:`tuple struct` or a :t:`tuple enum variant`. + that resolves to a :t:`tuple struct` or a :t:`tuple enum variant`. :dp:`fls_aq01wjpkxhq9` The :t:`drop scope` of the :t:`operand` of a :t:`borrow expression` that is an From a163ba2d88b005adf95e377a8d9a3bf22fcc0a9d Mon Sep 17 00:00:00 2001 From: Tshepang Mbambo Date: Mon, 6 Oct 2025 06:48:22 +0200 Subject: [PATCH 14/14] match style used in preceding text --- src/changelog.rst | 1 + src/glossary.rst | 2 +- src/ownership-and-deconstruction.rst | 4 ++-- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/changelog.rst b/src/changelog.rst index 29aa10ea..1bd0db60 100644 --- a/src/changelog.rst +++ b/src/changelog.rst @@ -112,6 +112,7 @@ Language changes in Rust 1.89.0 - `Extend temporary lifetime extension to also go through tuple struct and tuple variant constructors `_ + - Changed paragraph: :p:`fls_DQaCUkskfXzk` - New paragraphs: - :p:`fls_YeeZWqTdMivX` diff --git a/src/glossary.rst b/src/glossary.rst index 892cf85c..7bad66f8 100644 --- a/src/glossary.rst +++ b/src/glossary.rst @@ -6912,7 +6912,7 @@ tuple struct call expression :dp:`fls_DQaCUkskfXzk` A :dt:`tuple struct call expression` is a :t:`call expression` where the -:t:`call operand` resolves to a :t:`tuple struct`. +:t:`call operand` resolves to a :t:`tuple struct` or a :t:`tuple enum variant`. .. _fls_xx4slbg8s63e: diff --git a/src/ownership-and-deconstruction.rst b/src/ownership-and-deconstruction.rst index c7b2ef02..f8351cf2 100644 --- a/src/ownership-and-deconstruction.rst +++ b/src/ownership-and-deconstruction.rst @@ -642,8 +642,8 @@ An :t:`extending expression` is any of the following: :t:`extending expression`. * :dp:`fls_eeaJtK4w5gVK` - The :t:`[argument operand]s` of an extending :t:`call expression` - that resolves to a :t:`tuple struct` or a :t:`tuple enum variant`. + The :t:`[argument operand]s` of a :t:`tuple struct call expression` + that is an :t:`extending expression`. :dp:`fls_aq01wjpkxhq9` The :t:`drop scope` of the :t:`operand` of a :t:`borrow expression` that is an