Skip to content
26 changes: 25 additions & 1 deletion src/changelog.rst
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,22 @@ 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.90.0
-------------------------------

- `Split up the unknown_or_malformed_diagnostic_attributes lint <https://github.com/rust-lang/rust/pull/140717>`_

- No change: lints are not part of the FLS

- `Allow constants whose final value has references to mutable/external memory, but reject such constants as patterns <https://github.com/rust-lang/rust/pull/140942>`_

- This lifted restriction was not specified in the FLS
- The restriction on patterns is documented in :p:`fls_wJ9f906BlBvg`

- `Allow volatile access to non-Rust memory, including address 0 <https://github.com/rust-lang/rust/pull/141260>`_

- No change: lints are not part of the FLS

Language changes in Rust 1.89.0
-------------------------------

Expand Down Expand Up @@ -315,7 +331,15 @@ Language changes in Rust 1.83.0

* `Stabilize \`&mut\`, \`*mut\`, \`&Cell\`, and \`*const Cell\` in const. <https://github.com/rust-lang/rust/pull/129195>`_

* Changed paragraphs: :p:`fls_to4e7imq2c0w`, :p:`fls_6g7c1kjrmfnr`, :p:`fls_hkbwa8xx2fwx`
* Changed paragraphs:

- :p:`fls_to4e7imq2c0w`

- :p:`fls_6g7c1kjrmfnr`

- :p:`fls_hkbwa8xx2fwx`

- :p:`fls_ox6sgl9n43g2`

* `Allow creating references to statics in \`const\` initializers. <https://github.com/rust-lang/rust/pull/129759>`_

Expand Down
4 changes: 0 additions & 4 deletions src/expressions.rst
Original file line number Diff line number Diff line change
Expand Up @@ -312,10 +312,6 @@ A :t:`constant context` is a :t:`construct` that requires a
* :dp:`fls_ucFupTeCyylb`
The :t:`block expression` of a :t:`const block expression`.

:dp:`fls_ox6sgl9n43g2`
It is a static error to create a :t:`mutable reference` in a
:t:`constant context`.

:dp:`fls_od0h3v40kjp6`
An invocation of the :std:`core::ptr::addr_of` :t:`macro` expands to a
:t:`constant expression` allowed in any :t:`constant context` and
Expand Down
6 changes: 6 additions & 0 deletions src/patterns.rst
Original file line number Diff line number Diff line change
Expand Up @@ -370,6 +370,12 @@ When a :t:`path pattern` refers to an :t:`associated constant` or a
:t:`constant`, the :t:`type` of the :t:`associated constant` or :t:`constant`
shall be :t:`structurally equal`.

:dp:`fls_wJ9f906BlBvg`
When a :t:`path pattern` refers to an :t:`associated constant` or a
:t:`constant`, the :t:`constant` must not contain any references to
:t:`[mutable static]s`, :t:`[static]s` with :t:`interior mutability`,
or :t:`[external static]s`.

:dp:`fls_hF19K8sWU8FF`
When the type of the :t:`path pattern` is of an :t:`enum type` or
:t:`struct type`, then the :t:`enum type` or :t:`struct type` shall be subject
Expand Down
3 changes: 3 additions & 0 deletions src/values.rst
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,9 @@ The :t:`type specification` of a :t:`constant` shall have ``'static``
The :t:`type` of a :t:`constant` shall implement the :std:`core::marker::Sized`
:t:`trait`.

:dp:`fls_ox6sgl9n43g2`
The type of a :t:`constant` cannot be a :t:`mutable reference type`.

:dp:`fls_ndmfqxjpvsqy`
A :t:`constant initializer` is a :t:`construct` that provides the :t:`value` of
its related :t:`constant`.
Expand Down
2 changes: 1 addition & 1 deletion version.rst
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
.. SPDX-License-Identifier: MIT OR Apache-2.0
SPDX-FileCopyrightText: The Ferrocene Developers
SPDX-FileCopyrightText: The Rust Project Developers
.. |spec_version| replace:: 1.88.0
.. |spec_version| replace:: 1.90.0