Skip to content

Commit 25f8ed5

Browse files
committed
refactor: remove #![feature(const_fn_trait_bound)]
The `const_fn_trait_bound` feature was stabilized by <rust-lang/rust#93827>.
1 parent 2bf7208 commit 25f8ed5

File tree

30 files changed

+0
-41
lines changed

30 files changed

+0
-41
lines changed

README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ The R3 original kernel is provided as a separate package [`r3_kernel`][].
4747

4848
```rust
4949
#![feature(const_fn_fn_ptr_basics)]
50-
#![feature(const_fn_trait_bound)]
5150
#![feature(const_refs_to_cell)]
5251
#![feature(const_trait_impl)]
5352
#![feature(naked_functions)]

doc/toolchain_limitations.md

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,6 @@ fn clone_projection<T: Trait>(p: &T::Proj) -> T::Proj {
168168
```
169169

170170
```rust,compile_fail,E0277
171-
#![feature(const_fn_trait_bound)]
172171
#![feature(const_trait_impl)]
173172
174173
trait Trait {
@@ -201,7 +200,6 @@ trait Trait: ~const Clone {}
201200
### `[tag:impl_block_const_bounds]` The trait bounds of an `impl` block can't include `~const`
202201

203202
```rust,compile_fail
204-
#![feature(const_fn_trait_bound)]
205203
#![feature(const_trait_impl)]
206204
struct Cfg<C>(C);
207205
trait CfgBase {}
@@ -214,7 +212,6 @@ impl<C: ~const CfgBase> Cfg<C> {
214212
A work-around is to move the trait bounds to the `const fn`s inside.
215213

216214
```rust
217-
#![feature(const_fn_trait_bound)]
218215
#![feature(const_trait_impl)]
219216
struct Cfg<C>(C);
220217
trait CfgBase {}
@@ -232,7 +229,6 @@ impl<C> Cfg<C> {
232229
The following code doesn't compile (which is okay) because `T` might not be `T: const Drop`.
233230

234231
```rust,compile_fail,E0493
235-
#![feature(const_fn_trait_bound)]
236232
#![feature(const_trait_impl)]
237233
#![feature(const_mut_refs)]
238234
#![feature(const_option)]
@@ -248,7 +244,6 @@ impl<T> const Drop for Type<T> {
248244
The obvious solution is to add `T: ~const Drop` to the `Drop` implementation as well as to the type definition. However, this doesn't work because `~const` is not allowed to appear in the type definition.
249245

250246
```rust,compile_fail,E0367
251-
#![feature(const_fn_trait_bound)]
252247
#![feature(const_trait_impl)]
253248
#![feature(const_mut_refs)]
254249
#![feature(const_option)]
@@ -266,7 +261,6 @@ impl<T: ~const Drop> const Drop for Type<T> {
266261
According to [rust-lang/rust#93028](https://github.com/rust-lang/rust/pull/93028), we can actually remove `~const` from this type definition, and the compiler permits the `Drop` implementation to have an extra `~const`. Unfortunately, this leaves a `Drop` trait bound on the type, which actually cover different types than `~const Drop` does. That's because `T: ~const Drop` means that `T` can be dropped in a constant context (n.b. this is [a special case for `Drop`](https://internals.rust-lang.org/t/pre-rfc-revamped-const-trait-impl-aka-rfc-2632/15192#const-drop-in-generic-code-6) and doesn't apply to other traits), while `T: Drop` means that `T` has a user-defined `Drop` implementation.
267262

268263
```rust,compile_fail,E0277
269-
#![feature(const_fn_trait_bound)]
270264
#![feature(const_trait_impl)]
271265
#![feature(const_mut_refs)]
272266
#![feature(const_option)]
@@ -283,7 +277,6 @@ let _ = Type(Some(()));
283277
A work-around is to enclose `T` in a container that unconditionally implements `const Drop`.
284278

285279
```rust
286-
#![feature(const_fn_trait_bound)]
287280
#![feature(const_trait_impl)]
288281
#![feature(const_mut_refs)]
289282
#![feature(const_option)]
@@ -308,7 +301,6 @@ const _: () = { let _ = Type(Some(())); };
308301
### `[tag:const_closures]` Closures can't be `impl const Fn`
309302

310303
```rust
311-
#![feature(const_fn_trait_bound)]
312304
#![feature(const_trait_impl)]
313305
const fn identity<C: ~const Fn()>(x: C) -> C { x }
314306
const fn foo() {}
@@ -317,7 +309,6 @@ identity(|| {});
317309
```
318310

319311
```rust,compile_fail,E0277
320-
#![feature(const_fn_trait_bound)]
321312
#![feature(const_trait_impl)]
322313
const fn identity<C: ~const Fn()>(x: C) -> C { x }
323314
// error[E0277]: the trait bound `[[email protected]:6:26: 6:31]: ~const Fn<()>` is not satisfied

examples/basic/src/main.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
#![feature(const_fn_fn_ptr_basics)]
2-
#![feature(const_fn_trait_bound)]
32
#![feature(const_refs_to_cell)]
43
#![feature(const_trait_impl)]
54
#![feature(const_mut_refs)]

examples/basic_gr_peach/src/main.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
#![feature(const_fn_fn_ptr_basics)]
2-
#![feature(const_fn_trait_bound)]
32
#![feature(const_refs_to_cell)]
43
#![feature(const_trait_impl)]
54
#![feature(const_mut_refs)]

examples/basic_nucleo_f401re/src/main.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
#![feature(const_fn_fn_ptr_basics)]
2-
#![feature(const_fn_trait_bound)]
32
#![feature(const_refs_to_cell)]
43
#![feature(const_trait_impl)]
54
#![feature(naked_functions)]

examples/basic_rp_pico/src/main.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
#![feature(const_fn_fn_ptr_basics)]
2-
#![feature(const_fn_trait_bound)]
32
#![feature(const_refs_to_cell)]
43
#![feature(const_trait_impl)]
54
#![feature(naked_functions)]

examples/basic_wio_terminal/src/main.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
#![feature(const_fn_fn_ptr_basics)]
2-
#![feature(const_fn_trait_bound)]
32
#![feature(const_refs_to_cell)]
43
#![feature(const_trait_impl)]
54
#![feature(naked_functions)]

examples/smp_rp_pico/src/main.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
#![feature(const_fn_fn_ptr_basics)]
2-
#![feature(const_fn_trait_bound)]
32
#![feature(const_refs_to_cell)]
43
#![feature(const_trait_impl)]
54
#![feature(naked_functions)]

src/r3/src/lib.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
#![feature(const_precise_live_drops)]
44
#![feature(const_fn_fn_ptr_basics)]
55
#![feature(type_alias_impl_trait)]
6-
#![feature(const_fn_trait_bound)]
76
#![feature(const_impl_trait)]
87
#![feature(const_trait_impl)]
98
#![feature(const_mut_refs)]

src/r3/src/tests.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ pub(crate) macro doc_test(
99
) {concat!(
1010
ignore_if_port_std_does_not_support_target!($head), "\n ",
1111
"# #![feature(const_fn_fn_ptr_basics)]
12-
# #![feature(const_fn_trait_bound)]
1312
# #![feature(const_refs_to_cell)]
1413
# #![feature(const_impl_trait)]
1514
# #![feature(const_trait_impl)]

src/r3_core/src/bind.rs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -693,7 +693,6 @@ impl<'pool, System, T> DivideBind<'pool, System, T> {
693693
///
694694
/// ```rust
695695
/// #![feature(const_fn_fn_ptr_basics)]
696-
/// #![feature(const_fn_trait_bound)]
697696
/// #![feature(const_trait_impl)]
698697
/// #![feature(const_mut_refs)]
699698
/// use r3_core::{bind::Bind, kernel::{Cfg, traits}, prelude::*};
@@ -823,7 +822,6 @@ impl<'pool, const LEN: usize, System, T> const UnzipBind for Bind<'pool, System,
823822
///
824823
/// ```rust
825824
/// #![feature(const_fn_fn_ptr_basics)]
826-
/// #![feature(const_fn_trait_bound)]
827825
/// #![feature(const_trait_impl)]
828826
/// #![feature(const_mut_refs)]
829827
/// use r3_core::{
@@ -1300,7 +1298,6 @@ where
13001298
/// # Example
13011299
///
13021300
/// ```rust
1303-
/// #![feature(const_fn_trait_bound)]
13041301
/// #![feature(const_trait_impl)]
13051302
/// #![feature(const_mut_refs)]
13061303
/// use core::cell::UnsafeCell;

src/r3_core/src/kernel/mutex.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ define_object! {
4141
/// # Examples
4242
///
4343
/// ```rust
44-
/// #![feature(const_fn_trait_bound)]
4544
/// #![feature(const_trait_impl)]
4645
/// #![feature(const_mut_refs)]
4746
/// use r3_core::kernel::{

src/r3_core/src/kernel/timer.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,6 @@ define_object! {
273273
///
274274
/// ```rust
275275
/// # #![feature(const_fn_fn_ptr_basics)]
276-
/// # #![feature(const_fn_trait_bound)]
277276
/// # #![feature(const_trait_impl)]
278277
/// # #![feature(const_mut_refs)]
279278
/// use r3_core::{kernel::{Cfg, StaticTimer, traits}, time::Duration};
@@ -315,7 +314,6 @@ define_object! {
315314
///
316315
/// ```rust
317316
/// # #![feature(const_fn_fn_ptr_basics)]
318-
/// # #![feature(const_fn_trait_bound)]
319317
/// # #![feature(const_trait_impl)]
320318
/// # #![feature(const_mut_refs)]
321319
/// use r3_core::{kernel::{Cfg, StaticTimer, traits, prelude::*}, time::Duration};

src/r3_core/src/lib.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,6 @@ Configuration functions are highly composable as they can make nested calls to o
104104

105105
```rust
106106
# #![feature(const_fn_fn_ptr_basics)]
107-
# #![feature(const_fn_trait_bound)]
108107
# #![feature(const_trait_impl)]
109108
# #![feature(const_mut_refs)]
110109
# use r3_core::kernel::{Cfg, traits};

src/r3_core/src/lib.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
#![feature(const_cell_into_inner)]
1717
#![feature(const_ptr_offset_from)]
1818
#![feature(type_alias_impl_trait)]
19-
#![feature(const_fn_trait_bound)]
2019
#![feature(const_intrinsic_copy)]
2120
#![feature(const_slice_ptr_len)]
2221
#![feature(exhaustive_patterns)] // `let Ok(()) = Ok::<(), !>(())`

src/r3_kernel/src/lib.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
#![feature(const_raw_ptr_comparison)]
66
#![feature(const_fn_fn_ptr_basics)]
77
#![feature(cfg_target_has_atomic)] // `#[cfg(target_has_atomic_load_store)]`
8-
#![feature(const_fn_trait_bound)]
98
#![feature(const_intrinsic_copy)]
109
#![feature(exhaustive_patterns)] // `let Ok(()) = Ok::<(), !>(())`
1110
#![feature(generic_const_exprs)]

src/r3_port_arm/src/lib.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
#![feature(const_fn_fn_ptr_basics)]
22
#![feature(const_ptr_offset_from)]
3-
#![feature(const_fn_trait_bound)]
43
#![feature(const_refs_to_cell)]
54
#![feature(const_ptr_offset)]
65
#![feature(const_trait_impl)]

src/r3_port_arm_m/src/lib.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
#![feature(const_fn_fn_ptr_basics)]
22
#![feature(const_ptr_offset_from)]
3-
#![feature(const_fn_trait_bound)]
43
#![feature(generic_const_exprs)]
54
#![feature(const_refs_to_cell)]
65
#![feature(const_trait_impl)]

src/r3_port_arm_m_test_driver/src/main.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
#![feature(const_fn_fn_ptr_basics)]
2-
#![feature(const_fn_trait_bound)]
32
#![feature(const_refs_to_cell)]
43
#![feature(const_trait_impl)]
54
#![feature(naked_functions)]

src/r3_port_arm_test_driver/src/main.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
//! title="Screwdriver"></a></div>
55
#![doc = include_str!("./common.md")]
66
#![feature(const_fn_fn_ptr_basics)]
7-
#![feature(const_fn_trait_bound)]
87
#![feature(const_refs_to_cell)]
98
#![feature(const_trait_impl)]
109
#![feature(naked_functions)]

src/r3_port_riscv/src/lib.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
#![feature(const_fn_fn_ptr_basics)]
2-
#![feature(const_fn_trait_bound)]
32
#![feature(generic_const_exprs)]
43
#![feature(const_trait_impl)]
54
#![feature(naked_functions)]

src/r3_port_riscv_test_driver/src/main.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
#![feature(const_fn_fn_ptr_basics)]
2-
#![feature(const_fn_trait_bound)]
32
#![feature(const_refs_to_cell)]
43
#![feature(const_trait_impl)]
54
#![feature(const_ptr_offset)]

src/r3_port_std/benches/test_suite.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
//! Runs test cases defined in `r3_test_suite`.
2-
#![feature(const_fn_trait_bound)]
32
#![feature(const_refs_to_cell)]
43
#![feature(const_mut_refs)]
54
#![feature(slice_ptr_len)]

src/r3_port_std/src/lib.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ The port for running [`::r3_kernel`][] in a hosted environment
44

55
```rust
66
#![feature(const_fn_fn_ptr_basics)]
7-
#![feature(const_fn_trait_bound)]
87
#![feature(const_refs_to_cell)]
98
#![feature(const_trait_impl)]
109
#![feature(const_mut_refs)]

src/r3_port_std/src/lib.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
#![feature(cfg_target_has_atomic)] // `#[cfg(target_has_atomic_load_store)]`
2-
#![feature(const_fn_trait_bound)]
32
#![feature(atomic_mut_ptr)]
43
#![feature(thread_local)]
54
#![feature(deadline_api)]

src/r3_port_std/tests/test_suite.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
//! Runs test cases defined in `r3_test_suite`.
22
#![feature(const_fn_fn_ptr_basics)]
3-
#![feature(const_fn_trait_bound)]
43
#![feature(const_refs_to_cell)]
54
#![feature(const_trait_impl)]
65
#![feature(const_mut_refs)]

src/r3_portkit/src/lib.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
//! R3 PortKit
22
#![feature(const_fn_fn_ptr_basics)]
3-
#![feature(const_fn_trait_bound)]
43
#![feature(generic_const_exprs)]
54
#![feature(adt_const_params)]
65
#![feature(naked_functions)]

src/r3_support_rp2040/src/lib.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
//! [R3]: ::r3
55
//! [Raspberry Pi Pico]: https://pico.raspberrypi.org
66
#![feature(const_fn_fn_ptr_basics)]
7-
#![feature(const_fn_trait_bound)]
87
#![feature(exhaustive_patterns)]
98
#![feature(const_trait_impl)]
109
#![feature(const_mut_refs)]

src/r3_support_rza1/src/lib.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
//! [RZ/A1H]: https://www.renesas.com/us/en/products/microcontrollers-microprocessors/rz/rza/rza1h.html
66
//! [GR-PEACH]: https://www.renesas.com/us/en/products/gadget-renesas/boards/gr-peach.html
77
#![feature(const_fn_fn_ptr_basics)]
8-
#![feature(const_fn_trait_bound)]
98
#![feature(const_trait_impl)]
109
#![feature(const_mut_refs)]
1110
#![cfg_attr(

src/r3_test_suite/src/lib.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
#![feature(const_fn_fn_ptr_basics)]
33
#![feature(cfg_target_has_atomic)]
44
#![feature(const_transmute_copy)]
5-
#![feature(const_fn_trait_bound)]
65
#![feature(const_refs_to_cell)]
76
#![feature(const_trait_impl)]
87
#![feature(const_mut_refs)]

0 commit comments

Comments
 (0)