A #[no_coverage]
attribute was applied to something which does not show up
in code coverage, or is too granular to be excluded from the coverage report.
For now, this attribute can only be applied to function, method, and closure
definitions. In the future, it may be added to statements, blocks, and
expressions, and for the time being, using this attribute in those places
will just emit an unused_attributes
lint instead of this error.
Example of erroneous code:
#[no_coverage]
struct Foo;
#[no_coverage]
const FOO: Foo = Foo;
Run#[no_coverage]
tells the compiler to not generate coverage instrumentation for
a piece of code when the -C instrument-coverage
flag is passed. Things like
structs and consts are not coverable code, and thus cannot do anything with this
attribute.
If you wish to apply this attribute to all methods in an impl or module,
manually annotate each method; it is not possible to annotate the entire impl
with a #[no_coverage]
attribute.