| 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: |
| |
| ```compile_fail,E0788 |
| #[no_coverage] |
| struct Foo; |
| |
| #[no_coverage] |
| const FOO: Foo = Foo; |
| ``` |
| |
| `#[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. |