error: malformed `coverage` attribute input
  --> $DIR/name-value.rs:11:1
   |
LL | #[coverage = "off"]
   | ^^^^^^^^^^^^^^^^^^^
   |
help: the following are the possible correct uses
   |
LL | #[coverage(off)]
   |
LL | #[coverage(on)]
   |

error: malformed `coverage` attribute input
  --> $DIR/name-value.rs:16:5
   |
LL |     #![coverage = "off"]
   |     ^^^^^^^^^^^^^^^^^^^^
   |
help: the following are the possible correct uses
   |
LL |     #![coverage(off)]
   |
LL |     #![coverage(on)]
   |

error: malformed `coverage` attribute input
  --> $DIR/name-value.rs:20:1
   |
LL | #[coverage = "off"]
   | ^^^^^^^^^^^^^^^^^^^
   |
help: the following are the possible correct uses
   |
LL | #[coverage(off)]
   |
LL | #[coverage(on)]
   |

error: malformed `coverage` attribute input
  --> $DIR/name-value.rs:28:5
   |
LL |     #[coverage = "off"]
   |     ^^^^^^^^^^^^^^^^^^^
   |
help: the following are the possible correct uses
   |
LL |     #[coverage(off)]
   |
LL |     #[coverage(on)]
   |

error: malformed `coverage` attribute input
  --> $DIR/name-value.rs:25:1
   |
LL | #[coverage = "off"]
   | ^^^^^^^^^^^^^^^^^^^
   |
help: the following are the possible correct uses
   |
LL | #[coverage(off)]
   |
LL | #[coverage(on)]
   |

error: malformed `coverage` attribute input
  --> $DIR/name-value.rs:38:5
   |
LL |     #[coverage = "off"]
   |     ^^^^^^^^^^^^^^^^^^^
   |
help: the following are the possible correct uses
   |
LL |     #[coverage(off)]
   |
LL |     #[coverage(on)]
   |

error: malformed `coverage` attribute input
  --> $DIR/name-value.rs:43:5
   |
LL |     #[coverage = "off"]
   |     ^^^^^^^^^^^^^^^^^^^
   |
help: the following are the possible correct uses
   |
LL |     #[coverage(off)]
   |
LL |     #[coverage(on)]
   |

error: malformed `coverage` attribute input
  --> $DIR/name-value.rs:34:1
   |
LL | #[coverage = "off"]
   | ^^^^^^^^^^^^^^^^^^^
   |
help: the following are the possible correct uses
   |
LL | #[coverage(off)]
   |
LL | #[coverage(on)]
   |

error: malformed `coverage` attribute input
  --> $DIR/name-value.rs:52:5
   |
LL |     #[coverage = "off"]
   |     ^^^^^^^^^^^^^^^^^^^
   |
help: the following are the possible correct uses
   |
LL |     #[coverage(off)]
   |
LL |     #[coverage(on)]
   |

error: malformed `coverage` attribute input
  --> $DIR/name-value.rs:57:5
   |
LL |     #[coverage = "off"]
   |     ^^^^^^^^^^^^^^^^^^^
   |
help: the following are the possible correct uses
   |
LL |     #[coverage(off)]
   |
LL |     #[coverage(on)]
   |

error: malformed `coverage` attribute input
  --> $DIR/name-value.rs:49:1
   |
LL | #[coverage = "off"]
   | ^^^^^^^^^^^^^^^^^^^
   |
help: the following are the possible correct uses
   |
LL | #[coverage(off)]
   |
LL | #[coverage(on)]
   |

error: malformed `coverage` attribute input
  --> $DIR/name-value.rs:63:1
   |
LL | #[coverage = "off"]
   | ^^^^^^^^^^^^^^^^^^^
   |
help: the following are the possible correct uses
   |
LL | #[coverage(off)]
   |
LL | #[coverage(on)]
   |

error[E0788]: attribute should be applied to a function definition or closure
  --> $DIR/name-value.rs:20:1
   |
LL | #[coverage = "off"]
   | ^^^^^^^^^^^^^^^^^^^
...
LL | struct MyStruct;
   | ---------------- not a function or closure

error[E0788]: attribute should be applied to a function definition or closure
  --> $DIR/name-value.rs:34:1
   |
LL |   #[coverage = "off"]
   |   ^^^^^^^^^^^^^^^^^^^
...
LL | / trait MyTrait {
LL | |     #[coverage = "off"]
LL | |
LL | |
...  |
LL | |     type T;
LL | | }
   | |_- not a function or closure

error[E0788]: attribute should be applied to a function definition or closure
  --> $DIR/name-value.rs:38:5
   |
LL |     #[coverage = "off"]
   |     ^^^^^^^^^^^^^^^^^^^
...
LL |     const X: u32;
   |     ------------- not a function or closure

error[E0788]: attribute should be applied to a function definition or closure
  --> $DIR/name-value.rs:43:5
   |
LL |     #[coverage = "off"]
   |     ^^^^^^^^^^^^^^^^^^^
...
LL |     type T;
   |     ------- not a function or closure

error[E0788]: attribute should be applied to a function definition or closure
  --> $DIR/name-value.rs:28:5
   |
LL |     #[coverage = "off"]
   |     ^^^^^^^^^^^^^^^^^^^
...
LL |     const X: u32 = 7;
   |     ----------------- not a function or closure

error[E0788]: attribute should be applied to a function definition or closure
  --> $DIR/name-value.rs:52:5
   |
LL |     #[coverage = "off"]
   |     ^^^^^^^^^^^^^^^^^^^
...
LL |     const X: u32 = 8;
   |     ----------------- not a function or closure

error[E0788]: attribute should be applied to a function definition or closure
  --> $DIR/name-value.rs:57:5
   |
LL |     #[coverage = "off"]
   |     ^^^^^^^^^^^^^^^^^^^
...
LL |     type T = ();
   |     ------------ not a function or closure

error: aborting due to 19 previous errors

For more information about this error, try `rustc --explain E0788`.
