Skip to content

feat(macro): add the hook proc macro #530

feat(macro): add the hook proc macro

feat(macro): add the hook proc macro #530

GitHub Actions / clippy succeeded Feb 20, 2024 in 0s

clippy

21 warnings

Details

Results

Message level Amount
Internal compiler error 0
Error 0
Warning 21
Note 0
Help 0

Versions

  • rustc 1.76.0 (07dca489a 2024-02-04)
  • cargo 1.76.0 (c84b36747 2024-01-18)
  • clippy 0.1.76 (07dca48 2024-02-04)

Annotations

Check warning on line 47 in tests/src/lib.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

returning the result of a `let` binding from a block

warning: returning the result of a `let` binding from a block
  --> tests/src/lib.rs:47:9
   |
46 |         let cln = async_run!(cln::Node::with_params("--developer", "regtest")).unwrap();
   |         -------------------------------------------------------------------------------- unnecessary `let` binding
47 |         cln
   |         ^^^
   |
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return
help: return the expression directly
   |
46 ~         
47 ~         async_run!(cln::Node::with_params("--developer", "regtest")).unwrap()
   |

Check warning on line 40 in tests/src/lib.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

returning the result of a `let` binding from a block

warning: returning the result of a `let` binding from a block
  --> tests/src/lib.rs:40:9
   |
39 | ...   let cln = async_run!(cln::Node::with_params(&format!("--developer --plugin={pwd}/target/debug/examples/foo_plugin --plugin={pwd}/target/debug/examples/macros_ex"), "regtest")).unwrap();
   |       ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- unnecessary `let` binding
40 | ...   cln
   |       ^^^
   |
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return
   = note: `#[warn(clippy::let_and_return)]` on by default
help: return the expression directly
   |
39 ~         
40 ~         async_run!(cln::Node::with_params(&format!("--developer --plugin={pwd}/target/debug/examples/foo_plugin --plugin={pwd}/target/debug/examples/macros_ex"), "regtest")).unwrap()
   |

Check warning on line 84 in testing/src/cln.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

usage of an `Arc` that is not `Send` and `Sync`

warning: usage of an `Arc` that is not `Send` and `Sync`
  --> testing/src/cln.rs:84:19
   |
84 |         let btc = Arc::new(btc);
   |                   ^^^^^^^^^^^^^
   |
   = note: `Arc<BtcNode>` is not `Send` and `Sync` as:
   = note: - the trait `Sync` is not implemented for `BtcNode`
   = help: consider using an `Rc` instead. `Arc` does not provide benefits for non `Send` and `Sync` types
   = note: if you intend to use `Arc` with `Send` and `Sync` traits
   = note: wrap the inner type with a `Mutex` or implement `Send` and `Sync` for `BtcNode`
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#arc_with_non_send_sync
   = note: `#[warn(clippy::arc_with_non_send_sync)]` on by default

Check warning on line 105 in testing/src/btc.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

this `RefCell` reference is held across an `await` point

warning: this `RefCell` reference is held across an `await` point
   --> testing/src/btc.rs:105:24
    |
105 |         for process in self.process.borrow_mut().iter_mut() {
    |                        ^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = help: ensure the reference is dropped before calling `await`
note: these are all the `await` points this reference is held through
   --> testing/src/btc.rs:106:28
    |
106 |             process.kill().await?;
    |                            ^^^^^
107 |             let _ = process.wait().await?;
    |                                    ^^^^^
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#await_holding_refcell_ref
    = note: `#[warn(clippy::await_holding_refcell_ref)]` on by default

Check warning on line 32 in testing/src/lib.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

`crate` references the macro call's crate

warning: `crate` references the macro call's crate
  --> testing/src/lib.rs:32:17
   |
32 |             use crate::DEFAULT_TIMEOUT;
   |                 ^^^^^ help: to reference the macro definition's crate, use: `$crate`
   |
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#crate_in_macro_def
   = note: `#[warn(clippy::crate_in_macro_def)]` on by default

Check warning on line 274 in plugin/src/plugin.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

redundant pattern matching, consider using `is_ok()`

warning: redundant pattern matching, consider using `is_ok()`
   --> plugin/src/plugin.rs:274:19
    |
274 |         while let Ok(_) = reader.read_line(&mut buffer) {
    |         ----------^^^^^-------------------------------- help: try: `while reader.read_line(&mut buffer).is_ok()`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching
    = note: `#[warn(clippy::redundant_pattern_matching)]` on by default

Check warning on line 145 in plugin/src/plugin.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

using `Option.and_then(|x| Some(y))`, which is more succinctly expressed as `map(|x| y)`

warning: using `Option.and_then(|x| Some(y))`, which is more succinctly expressed as `map(|x| y)`
   --> plugin/src/plugin.rs:145:25
    |
145 |             "string" => def_val.and_then(|val| Some(serde_json::json!(val))),
    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `def_val.map(|val| serde_json::json!(val))`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bind_instead_of_map

Check warning on line 144 in plugin/src/plugin.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

using `Option.and_then(|x| Some(y))`, which is more succinctly expressed as `map(|x| y)`

warning: using `Option.and_then(|x| Some(y))`, which is more succinctly expressed as `map(|x| y)`
   --> plugin/src/plugin.rs:144:22
    |
144 |             "int" => def_val.and_then(|val| Some(serde_json::json!(val.parse::<i64>().unwrap()))),
    |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `def_val.map(|val| serde_json::json!(val.parse::<i64>().unwrap()))`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bind_instead_of_map

Check warning on line 142 in plugin/src/plugin.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

using `Option.and_then(|x| Some(y))`, which is more succinctly expressed as `map(|x| y)`

warning: using `Option.and_then(|x| Some(y))`, which is more succinctly expressed as `map(|x| y)`
   --> plugin/src/plugin.rs:142:17
    |
142 |                 def_val.and_then(|val| Some(serde_json::json!(val.parse::<bool>().unwrap())))
    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `def_val.map(|val| serde_json::json!(val.parse::<bool>().unwrap()))`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bind_instead_of_map
    = note: `#[warn(clippy::bind_instead_of_map)]` on by default

Check warning on line 53 in plugin/src/plugin.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

very complex type used. Consider factoring parts into `type` definitions

warning: very complex type used. Consider factoring parts into `type` definitions
  --> plugin/src/plugin.rs:53:14
   |
53 |     on_init: Option<Arc<dyn Fn(&mut Plugin<T>) -> Value>>,
   |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity

Check warning on line 27 in plugin/src/commands/mod.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

the following explicit lifetimes could be elided: 'c

warning: the following explicit lifetimes could be elided: 'c
  --> plugin/src/commands/mod.rs:27:18
   |
27 |     fn call_void<'c>(&self, _plugin: &mut Plugin<T>, _request: &'c serde_json::Value) {}
   |                  ^^                                             ^^
   |
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes
   = note: `#[warn(clippy::needless_lifetimes)]` on by default
help: elide the lifetimes
   |
27 -     fn call_void<'c>(&self, _plugin: &mut Plugin<T>, _request: &'c serde_json::Value) {}
27 +     fn call_void(&self, _plugin: &mut Plugin<T>, _request: &serde_json::Value) {}
   |

Check warning on line 18 in plugin/src/commands/mod.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

this lifetime isn't used in the function definition

warning: this lifetime isn't used in the function definition
  --> plugin/src/commands/mod.rs:18:13
   |
18 |     fn call<'c>(
   |             ^^
   |
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes
   = note: `#[warn(clippy::extra_unused_lifetimes)]` on by default

Check warning on line 54 in plugin/src/commands/builtin.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

very complex type used. Consider factoring parts into `type` definitions

warning: very complex type used. Consider factoring parts into `type` definitions
  --> plugin/src/commands/builtin.rs:54:25
   |
54 |     pub(crate) on_init: Option<Arc<dyn Fn(&mut Plugin<T>) -> Value>>,
   |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity
   = note: `#[warn(clippy::type_complexity)]` on by default

Check warning on line 39 in plugin_macros/src/attr_parser.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

single-character string constant used as pattern

warning: single-character string constant used as pattern
  --> plugin_macros/src/attr_parser.rs:39:47
   |
39 |         let value = value.to_string().replace("\"", "");
   |                                               ^^^^ help: try using a `char` instead: `'\"'`
   |
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern
   = note: `#[warn(clippy::single_char_pattern)]` on by default

Check warning on line 71 in plugin_macros/src/plugin.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

this `impl` can be derived

warning: this `impl` can be derived
  --> plugin_macros/src/plugin.rs:61:1
   |
61 | / impl Default for PluginDeclaration {
62 | |     fn default() -> Self {
63 | |         Self {
64 | |             state: None,
...  |
70 | |     }
71 | | }
   | |_^
   |
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls
   = note: `#[warn(clippy::derivable_impls)]` on by default
   = help: remove the manual implementation...
help: ...and instead derive it
   |
9  + #[derive(Default)]
10 | pub struct PluginDeclaration {
   |

Check warning on line 45 in plugin_macros/src/plugin.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

this expression creates a reference which is immediately dereferenced by the compiler

warning: this expression creates a reference which is immediately dereferenced by the compiler
  --> plugin_macros/src/plugin.rs:45:47
   |
45 |             let mut inner = KTokenStream::new(&inner);
   |                                               ^^^^^^ help: change this to: `inner`
   |
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow

Check warning on line 30 in plugin_macros/src/plugin.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

this expression creates a reference which is immediately dereferenced by the compiler

warning: this expression creates a reference which is immediately dereferenced by the compiler
  --> plugin_macros/src/plugin.rs:30:47
   |
30 |             let mut inner = KTokenStream::new(&inner);
   |                                               ^^^^^^ help: change this to: `inner`
   |
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
   = note: `#[warn(clippy::needless_borrow)]` on by default

Check warning on line 17 in plugin_macros/src/hook.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

fields `original_name`, `struct_name`, and `fn_name` are never read

warning: fields `original_name`, `struct_name`, and `fn_name` are never read
  --> plugin_macros/src/hook.rs:17:5
   |
16 | struct RPCHook {
   |        ------- fields in this struct
17 |     original_name: String,
   |     ^^^^^^^^^^^^^
18 |     struct_name: String,
   |     ^^^^^^^^^^^
19 |     fn_name: String,
   |     ^^^^^^^
   |
   = note: `#[warn(dead_code)]` on by default

Check warning on line 65 in plugin_macros/src/hook.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

unused variable: `tracer`

warning: unused variable: `tracer`
  --> plugin_macros/src/hook.rs:65:65
   |
65 | fn generate_hook_method<T: KParserTracer>(method_call: RPCHook, tracer: &T) -> TokenStream {
   |                                                                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_tracer`

Check warning on line 65 in plugin_macros/src/hook.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

unused variable: `method_call`

warning: unused variable: `method_call`
  --> plugin_macros/src/hook.rs:65:43
   |
65 | fn generate_hook_method<T: KParserTracer>(method_call: RPCHook, tracer: &T) -> TokenStream {
   |                                           ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_method_call`

Check warning on line 55 in plugin_macros/src/hook.rs

See this annotation in the file changed.

@github-actions github-actions / clippy

unused variable: `ty`

warning: unused variable: `ty`
  --> plugin_macros/src/hook.rs:55:14
   |
55 |     let Some(ty) = ty.generics.clone().and_then(|gen| gen.first().cloned()) else {
   |              ^^ help: if this is intentional, prefix it with an underscore: `_ty`
   |
   = note: `#[warn(unused_variables)]` on by default