You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* No change: tool attributes are not part of the FLS
37
+
38
+
* `Add \`unpredictable_function_pointer_comparisons\` lint to warn against function pointer comparisons <https://github.com/rust-lang/rust/pull/118833>`_
39
+
40
+
* No change: Lints are not part of the FLS
41
+
42
+
* `Lint on combining \`#[no_mangle]\` and \`#[export_name]\` attributes. <https://github.com/rust-lang/rust/pull/131558>`_
43
+
44
+
* No change: Lints are not part of the FLS
45
+
46
+
Language changes in Rust 1.84.0
47
+
-------------------------------
48
+
49
+
* `Allow \`#[deny]\` inside \`#[forbid]\` as a no-op <https://github.com/rust-lang/rust/pull/121560/>`_
50
+
51
+
* No change: Lints are not part of the FLS
52
+
53
+
* `Show a warning when \`-Ctarget-feature\` is used to toggle features that can lead to unsoundness due to ABI mismatches <https://github.com/rust-lang/rust/pull/129884>`_
54
+
55
+
* No change: `target-feature` is outside the scope of the Ferrocene qualification
56
+
57
+
* `Use the next-generation trait solver in coherence <https://github.com/rust-lang/rust/pull/130654>`_
58
+
59
+
* No change: the exact trait solver is not part of the FLS
60
+
61
+
* `Allow coercions to drop the principal of trait objects <https://github.com/rust-lang/rust/pull/131857>`_
62
+
63
+
* Changed paragraph: :p:`fls_SYnFJBhi0IWj`
64
+
65
+
* `Support \`/\` as the path separator for \`include!()\` in all cases on Windows <https://github.com/rust-lang/rust/pull/125205>`_
66
+
67
+
* No change: This past restriction of the `include` macro is not specified by the FLS
68
+
69
+
* `Taking a raw ref (\`raw (const|mut)\`) of a deref of a pointer (\`*ptr\`) is now safe <https://github.com/rust-lang/rust/pull/129248>`_
Copy file name to clipboardExpand all lines: src/expressions.rst
+8-2Lines changed: 8 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1033,7 +1033,7 @@ The :t:`dereference` is assignable when the :t:`dereference expression` is a
1033
1033
:t:`mutable place expression`.
1034
1034
1035
1035
:dp:`fls_8i4jzksxlrw0`
1036
-
Dereferencing a :t:`raw pointer` shall require :t:`unsafe context`.
1036
+
Dereferencing a :t:`raw pointer` shall require :t:`unsafe context` unless the :t:`dereference expression` is the :t:`operand` of a :t:`raw borrow expression`.
1037
1037
1038
1038
:dp:`fls_d68ddlse4zp`
1039
1039
If the context of a :t:`dereference expression` is an
A :t:`closure expression` is an :t:`expression` that defines a
3722
3722
:t:`closure type` and constructs a value of that :t:`type`.
3723
3723
3724
+
:dp:`fls_My6pMgpeFCFg`
3725
+
An :t:`async closure expression` is a :t:`closure expression` subject to keyword ``async`` that defines an :t:`async closure type` and constructs a value of that :t:`type`.
3726
+
3724
3727
:dp:`fls_UgJgur0z6d4a`
3725
3728
The :t:`return type` of a :t:`closure type` is determined as follows:
3726
3729
@@ -3730,6 +3733,9 @@ The :t:`return type` of a :t:`closure type` is determined as follows:
3730
3733
* :dp:`fls_wLVeE6cNG8oa`
3731
3734
Otherwise the :t:`return type` is the :t:`type` of the :t:`closure body`.
3732
3735
3736
+
:dp:`fls_DSy7bPKGzyov`
3737
+
The :t:`return type` of an :t:`async closure type` is an :t:`anonymous return type` with a :std:`core::future::Future` :t:`trait bound` and a :t:`binding argument` for the ``Output`` :t:`associated type alias` with the actual :t:`return type` of the corresponding :t:`closure type`.
3738
+
3733
3739
:dp:`fls_srbl7ptknjyk`
3734
3740
A :t:`closure body` is a :t:`construct` that represents the executable portion
Copy file name to clipboardExpand all lines: src/glossary.rst
+21Lines changed: 21 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -539,6 +539,27 @@ an asynchronous manner.
539
539
:dp:`fls_je689rormhd6`
540
540
See :s:`AsyncBlockExpression`.
541
541
542
+
.. _fls_oUdQnbW1MAFW:
543
+
544
+
async closure expression
545
+
^^^^^^^^^^^^^^^^^^^^^^^^
546
+
547
+
:dp:`fls_SxydbQPPX9Jw`
548
+
An :dt:`async closure expression` is a :t:`closure expression` subject to keyword ``async`` that defines an :t:`async closure type` and constructs a value of that :t:`type`.
549
+
550
+
:dp:`fls_JZsDFMg85a3u`
551
+
See :s:`ClosureExpression`.
552
+
553
+
.. _fls_Pq4ohvrMOi5p:
554
+
555
+
async closure type
556
+
^^^^^^^^^^^^^^^^^^
557
+
558
+
:dp:`fls_IT28HJaF8rnm`
559
+
An :dt:`async closure type` is a unique anonymous :t:`function type` that encapsulates
560
+
all :t:`[capture target]s` of a :t:`closure expression` producing a :std:`core::future::Future`.
Copy file name to clipboardExpand all lines: src/types-and-traits.rst
+1-3Lines changed: 1 addition & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2046,9 +2046,7 @@ occur when:
2046
2046
:t:`type`.
2047
2047
2048
2048
* :dp:`fls_SYnFJBhi0IWj`
2049
-
The source :t:`type` is a :t:`trait object type` and the target :t:`type` is a
2050
-
:t:`trait object type` with the same :t:`[trait bound]s` and additional
2051
-
:t:`[auto trait]s`.
2049
+
The source :t:`type` is a :t:`trait object type` and the target :t:`type` is a :t:`trait object type` with the same or no :t:`[principal trait bound]`, and the target :t:`type` has the same or less non-:t:`principal trait` :t:`[trait bound]s`.
2052
2050
2053
2051
:dp:`fls_iiiu2q7pym4p`
2054
2052
An :t:`unsized coercion` is a :t:`type coercion` that converts a :t:`sized type`
0 commit comments