error: unused variable: `method`
 --> ui-tests/unused-attributes.rs:9:20
  |
9 |     #[wasm_bindgen(method)]
  |                    ^^^^^^ help: if this is intentional, prefix it with an underscore: `_method`
  |
note: the lint level is defined here
 --> ui-tests/unused-attributes.rs:1:9
  |
1 | #![deny(unused_variables)]
  |         ^^^^^^^^^^^^^^^^

error: unused variable: `getter`
  --> ui-tests/unused-attributes.rs:18:16
   |
18 | #[wasm_bindgen(getter, typescript_custom_section)]
   |                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_getter`

error: unused variable: `readonly`
  --> ui-tests/unused-attributes.rs:21:16
   |
21 | #[wasm_bindgen(readonly)]
   |                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_readonly`

error: unused variable: `typescript_type`
  --> ui-tests/unused-attributes.rs:26:28
   |
26 |     #[wasm_bindgen(getter, typescript_type = "Thing[]")]
   |                            ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_typescript_type`

error: unused variable: `getter_with_clone`
  --> ui-tests/unused-attributes.rs:24:16
   |
24 | #[wasm_bindgen(getter_with_clone, final)]
   |                ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_getter_with_clone`

error: unused variable: `final`
  --> ui-tests/unused-attributes.rs:24:35
   |
24 | #[wasm_bindgen(getter_with_clone, final)]
   |                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_final`
