Skip to content

Commit 8118a31

Browse files
committed
Inline <T as From<T>>::from
I noticed in the MIR for <https://play.rust-lang.org/?version=nightly&mode=release&edition=2021&gist=67097e0494363ee27421a4e3bdfaf513> that it's inlined most stuff ``` scope 5 (inlined <Result<i32, u32> as Try>::branch) ``` ``` scope 8 (inlined <Result<i32, u32> as Try>::from_output) ``` But yet the do-nothing `from` call was still there: ``` _17 = <u32 as From<u32>>::from(move _18) -> bb9; ``` So let's give this a try and see what perf has to say.
1 parent 76c427d commit 8118a31

File tree

1 file changed

+1
-0
lines changed
  • library/core/src/convert

1 file changed

+1
-0
lines changed

library/core/src/convert/mod.rs

+1
Original file line numberDiff line numberDiff line change
@@ -556,6 +556,7 @@ where
556556
#[rustc_const_unstable(feature = "const_convert", issue = "88674")]
557557
impl<T> const From<T> for T {
558558
/// Returns the argument unchanged.
559+
#[inline(always)]
559560
fn from(t: T) -> T {
560561
t
561562
}

0 commit comments

Comments
 (0)