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.