Error code E0518

An #[inline(..)] attribute was incorrectly placed on something other than a function or method.

Example of erroneous code:

#![allow(unused)] fn main() { #[inline(always)] struct Foo; #[inline(never)] impl Foo { // ... } }

#[inline] hints the compiler whether or not to attempt to inline a method or function. By default, the compiler does a pretty good job of figuring this out itself, but if you feel the need for annotations, #[inline(always)] and #[inline(never)] can override or force the compiler's decision.

If you wish to apply this attribute to all methods in an impl, manually annotate each method; it is not possible to annotate the entire impl with an #[inline] attribute.