Clippy lints / Correctness
Clippy lint · Correctness · checked with Clippy 0.1.99
clippy::inline_fn_without_body: use of `#[inline]` on trait method `name` which has no body
What it meansChecks for #[inline] on trait methods without bodies It is in the correctness group and denied by default (the build fails).
What you see
error: use of `#[inline]` on trait method `name` which has no body --> main.rs:4:5 | 4 | #[inline] | _____-^^^^^^^^ 5 | | fn name(&self) -> &'static str; | |____- help: remove | = help: for further information visit https://rust-lang.github.io/rust-clippy/stable/index.html#inline_fn_without_body = note: `#[deny(clippy::inline_fn_without_body)]` on by default
Real output of Clippy 0.1.99 (Rust 1.99) on the example below. Names and line numbers in yours will differ.
Does it matter?
Only implementations of trait methods may be inlined. The inline attribute is ignored for trait methods without bodies.
Code that is almost certainly wrong. Denied by default: the build fails until you fix it or allow it.
How to fix it
Clippy can fix this one for you: run cargo clippy --fix (add --allow-dirty if you have uncommitted changes). Review the diff before you commit.
Flagged
trait Animal {
#[inline]
fn name(&self) -> &'static str;
}
Turn it off, or on
Allow it where it does not fit your code, as narrowly as you can:
On one item
#[allow(clippy::inline_fn_without_body)]
fn my_function() { /* ... */ }Whole crate (Cargo.toml)
[lints.clippy]
inline_fn_without_body = "allow"One run
cargo clippy -- -A clippy::inline-fn-without-bodyThe [lints] table needs Rust 1.74 or newer. In a workspace, put it under [workspace.lints.clippy] and add [lints] workspace = true to each member.
Clippy's own documentation
What it does
Checks for #[inline] on trait methods without bodies
Why is this bad?
Only implementations of trait methods may be inlined. The inline attribute is ignored for trait methods without bodies.
Example
trait Animal {
#[inline]
fn name(&self) -> &'static str;
}
From the Clippy lint list (0.1.99), part of the Rust project, MIT or Apache-2.0. Official entry.
Related lints
- ineffective_bit_maskChecks for bit masks in comparisons which can be removed without changing the outcome
- infinite_iterinfinite iteration detected
- inherent_to_string_shadow_displaytype `main::A` implements inherent method `to_string(&self) -> String` which shadows the implementation of `Display`
- invalid_regexChecks regex creation (with Regex::new, RegexBuilder::new, or RegexSet::new) for correct regex syntax
- inverted_saturating_subinverted arithmetic check before subtraction
- invisible_charactersChecks for invisible Unicode characters in the code
All 847 Clippy lints · Rust compiler errors · Cargo.toml checker
Up next
Related lintclippy::ineffective_bit_maskChecks for bit masks in comparisons which can be removed without changing the outcomeRead it next →Did this answer your question?