Skip to content

Commit 380addd

Browse files
committed
Auto merge of rust-lang#100733 - scottmcm:inline-from-from-identity, r=m-ou-se
Inline `<T as From<T>>::from` I noticed (in rust-lang#100693 (comment)) that the MIR for <https://play.rust-lang.org/?version=nightly&mode=release&edition=2021&gist=67097e0494363ee27421a4e3bdfaf513> has 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.
2 parents 3c72788 + 8118a31 commit 380addd

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
@@ -558,6 +558,7 @@ where
558558
#[rustc_const_unstable(feature = "const_convert", issue = "88674")]
559559
impl<T> const From<T> for T {
560560
/// Returns the argument unchanged.
561+
#[inline(always)]
561562
fn from(t: T) -> T {
562563
t
563564
}

0 commit comments

Comments
 (0)