Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 39 additions & 1 deletion src/changelog.rst
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,44 @@ 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.

FLS maintenance
---------------

- `[Change]: Remove the term "indirection", and associated derivatives <https://github.com/rust-lang/fls/issues/710>`_

Changed glossary entries:

- :t:`dangling`
- :t:`fat pointer type`
- :t:`function pointer type`
- :t:`pointer type`
- :t:`raw pointer type`
- :t:`reference type`
- :t:`thin pointer type`

Removed glossary entries:

- :t:`indirection type`

New paragraphs:

- :p:`fls_f3TcmFrVoNis`
- :p:`fls_8RBNIR0E6pnI`
- :p:`fls_Im7miUSS87xs`
- :p:`fls_aQgOFrzAhdsC`

Changed paragraphs:

- :p:`fls_jrohsv7hx7yw`
- :p:`fls_3qI8FXMsyk0f`
- :p:`fls_v2wrytr3t04h`
- :p:`fls_rpbhr0xukbx9`
- :p:`fls_twhq24s8kchh`
- :p:`fls_26Xgem831Nqg`
- :p:`fls_ozYgHEHFTT5c`

Changed section :ref:`fls_3i4ou0dq64ny`

Language changes in Rust 1.96.0
-------------------------------

Expand Down Expand Up @@ -76,7 +114,7 @@ Language changes in Rust 1.95.0

- :t:`let binding`

Changed existing paragraphs:
Changed paragraphs:

- :p:`fls_72JHo343O7jp`
- :p:`fls_6bwTtGKb7ba7`
Expand Down
25 changes: 7 additions & 18 deletions src/glossary.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1070,9 +1070,7 @@ the tool compiling the :t:`crate`.
dangling
^^^^^^^^

A :t:`value` of an :t:`indirection type` is :dt:`dangling` if it is either
:c:`null` or not all of the bytes at the referred memory location are part of
the same allocation.
A :t:`pointer` is :dt:`dangling` if it is either :c:`null` or not all of the bytes at the referred memory location are part of the same allocation.

data race
^^^^^^^^^
Expand Down Expand Up @@ -1530,7 +1528,7 @@ A :dt:`fat pointer` is a :t:`value` of a :t:`fat pointer type`.
fat pointer type
^^^^^^^^^^^^^^^^

A :dt:`fat pointer type` is an :t:`indirection type` whose contained :t:`type specification` is a :t:`dynamically sized type`.
A :dt:`fat pointer type` is a :t:`pointer type` whose contained :t:`type specification` is a :t:`dynamically sized type`.

FFI
^^^
Expand Down Expand Up @@ -1699,8 +1697,7 @@ See :s:`FunctionParameter`.
function pointer type
^^^^^^^^^^^^^^^^^^^^^

A :dt:`function pointer type` is an :t:`indirection type` that refers to a
:t:`function`.
A :dt:`function pointer type` is a :t:`pointer type` that refers to a :t:`function`.

See :s:`FunctionPointerTypeSpecification`.

Expand Down Expand Up @@ -2192,12 +2189,6 @@ An :dt:`indexing operand` is an :t:`operand` which specifies the index for the

See :s:`IndexingOperand`.

indirection type
^^^^^^^^^^^^^^^^

An :dt:`indirection type` is a :t:`type` whose :t:`[value]s` refer to memory
locations.

inert attribute
^^^^^^^^^^^^^^^

Expand Down Expand Up @@ -3420,7 +3411,7 @@ A :dt:`pointer` is a :t:`value` of a :t:`pointer type`.
pointer type
^^^^^^^^^^^^

A :dt:`pointer type` is either a :t:`raw pointer type` or a :t:`reference type`.
A :dt:`pointer type` is a :t:`type` whose :t:`[value]s` refer to memory locations.

positional register argument
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Expand Down Expand Up @@ -3678,8 +3669,7 @@ A :dt:`raw pointer` is a :t:`value` of a :t:`raw pointer type`.
raw pointer type
^^^^^^^^^^^^^^^^

A :dt:`raw pointer type` is an :t:`indirection type` without safety and
liveness guarantees.
A :dt:`raw pointer type` is a :t:`pointer type` without safety and liveness guarantees.

See :s:`RawPointerTypeSpecification`.

Expand Down Expand Up @@ -3776,7 +3766,7 @@ See :s:`ReferencePattern`.
reference type
^^^^^^^^^^^^^^

A :dt:`reference type` is an :t:`indirection type` with :t:`ownership`.
A :dt:`reference type` is a :t:`pointer type` with :t:`ownership`.

See :s:`ReferenceTypeSpecification`.

Expand Down Expand Up @@ -4512,8 +4502,7 @@ A :dt:`thin pointer` is a :t:`value` of a :t:`thin pointer type`.
thin pointer type
^^^^^^^^^^^^^^^^^

A :dt:`thin pointer type` is an :t:`indirection type` that refers to a
:t:`fixed sized type`.
A :dt:`thin pointer type` is a :t:`pointer type` that refers to a :t:`fixed sized type`.

token matching
^^^^^^^^^^^^^^
Expand Down
29 changes: 20 additions & 9 deletions src/types-and-traits.rst
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ Type Classification
:t:`[Function item type]s`

* :dp:`fls_jrohsv7hx7yw`
:t:`[Indirection type]s`
:t:`[Pointer type]s`

* :dp:`fls_1kg1mknf4yx7`
:t:`[Function pointer type]s`
Expand Down Expand Up @@ -936,13 +936,19 @@ A :t:`function item type` implements the :std:`core::ops::Fn` :t:`trait`, the :s

.. _fls_3i4ou0dq64ny:

Indirection Types
Pointer Types
-----------------

.. rubric:: Legality Rules

:dp:`fls_3qI8FXMsyk0f`
A :t:`pointer type` is either a :t:`raw pointer type` or a :t:`reference type`.
A :t:`pointer type` is a :t:`type` whose :t:`[value]s` refer to memory locations.

:dp:`fls_f3TcmFrVoNis`
A :t:`pointer` is a :t:`value` of a :t:`pointer type`.

:dp:`fls_8RBNIR0E6pnI`
A :t:`pointer` is :t:`dangling` if it is either :c:`null` or not all of the bytes at the referred memory location are part of the same allocation.

.. _fls_xztr1kebz8bo:

Expand Down Expand Up @@ -973,8 +979,7 @@ Function Pointer Types
.. rubric:: Legality Rules

:dp:`fls_v2wrytr3t04h`
A :t:`function pointer type` is an :t:`indirection type` that refers to a
:t:`function`.
A :t:`function pointer type` is a :t:`pointer type` that refers to a :t:`function`.

:dp:`fls_5dd7icjcl3nt`
An :t:`unsafe function pointer type` is a function pointer type subject to
Expand Down Expand Up @@ -1023,7 +1028,7 @@ Raw Pointer Types
.. rubric:: Legality Rules

:dp:`fls_rpbhr0xukbx9`
A :t:`raw pointer type` is an :t:`indirection type` without validity guarantees.
A :t:`raw pointer type` is a :t:`pointer type` without validity guarantees.

:dp:`fls_bYWfGDAQcWfA`
A :t:`mutable raw pointer type` is a :t:`raw pointer type` subject to
Expand Down Expand Up @@ -1064,7 +1069,7 @@ Reference Types
.. rubric:: Legality Rules

:dp:`fls_twhq24s8kchh`
A :t:`reference type` is an :t:`indirection type` with :t:`ownership`.
A :t:`reference type` is a :t:`pointer type` with :t:`ownership`.

:dp:`fls_w4NbA7WhZfR2`
A :t:`shared reference type` is a :t:`reference type` not subject to
Expand Down Expand Up @@ -1405,11 +1410,17 @@ Type Layout
:dp:`fls_kdbq02iguzgl`
All :t:`[value]s` have an :t:`alignment` and a :t:`size`.

:dp:`fls_Im7miUSS87xs`
A :t:`fixed sized type` is a :t:`type` that implements the :std:`core::marker::Sized` :t:`trait`.

:dp:`fls_aQgOFrzAhdsC`
A :t:`thin pointer type` is a :t:`pointer type` that refers to a :t:`fixed sized type`.

:dp:`fls_26Xgem831Nqg`
A :dt:`dynamically sized type` is a :t:`type` that does not implement the :std:`core::marker::Sized` :t:`trait`.
A :t:`dynamically sized type` is a :t:`type` that does not implement the :std:`core::marker::Sized` :t:`trait`.

:dp:`fls_ozYgHEHFTT5c`
A :dt:`fat pointer type` is an :t:`indirection type` whose contained :t:`type specification` is a :t:`dynamically sized type`.
A :t:`fat pointer type` is a :t:`pointer type` whose contained :t:`type specification` is a :t:`dynamically sized type`.

:dp:`fls_muxfn9soi47l`
The :t:`alignment` of a :t:`value` specifies which addresses are valid for
Expand Down
Loading