On Sun Mar 1, 2026 at 7:59 PM GMT, Benno Lossin wrote:
> On Sun Mar 1, 2026 at 8:25 PM CET, Gary Guo wrote:
>> `#[inline]` is a hint to make it more likely for compilers to inline. Without
>> them, you're relying on compiler heurstics only. There're cases (especially 
>> with
>> abstractions) where the function may look complex as it contains lots of
>> function calls (so compiler heurstics avoid inlining them), but they're all
>> zero-cost abstractions so eventually things get optimized away.
>>
>> For non-generic functions, there is additional issue where only very small
>> functions get automatically inlined, otherwise a single copy is generated at 
>> the
>> defining crate and compiler run on a dependant crate has no chance to even 
>> peek
>> what's in the function.
>>
>> If you know a function should be inlined, it's better to just mark them as 
>> such,
>> so there're no surprises.
>
> Should we set clippy::missing_inline_in_public_items [1] to "warn"?
>
> [1]: 
> https://rust-lang.github.io/rust-clippy/master/index.html?search=missing_inline_in_public_items

That requires *all* public items to be `#[inline]` regardless the size, which is
excessive.

Best,
Gary

>
> Cheers,
> Benno

Reply via email to