Support typed BNF grammar #18
clippy
1 error, 13 warnings
Details
Results
Message level | Amount |
---|---|
Internal compiler error | 0 |
Error | 1 |
Warning | 13 |
Note | 0 |
Help | 0 |
Versions
- rustc 1.82.0 (f6e511eec 2024-10-15)
- cargo 1.82.0 (8f40fc59f 2024-08-21)
- clippy 0.1.82 (f6e511e 2024-10-15)
Annotations
Check warning on line 124 in src/grammar/symbol.rs
github-actions / clippy
match expression looks like `matches!` macro
warning: match expression looks like `matches!` macro
--> src/grammar/symbol.rs:121:9
|
121 | / match self {
122 | | SymbolKind::Terminal(_) | SymbolKind::Regex(_) => true,
123 | | _ => false,
124 | | }
| |_________^ help: try: `matches!(self, SymbolKind::Terminal(_) | SymbolKind::Regex(_))`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro
Check failure on line 50 in src/grammar/symbol.rs
github-actions / clippy
this call to `hash` on the unit type will do nothing
error: this call to `hash` on the unit type will do nothing
--> src/grammar/symbol.rs:50:28
|
50 | Ty::Untyped => ().hash(state),
| ^^^^^^^^^^^^^^ help: remove the call to `hash` or consider using: `0_u8.hash(state)`
|
= note: the implementation of `Hash` for `()` is a no-op
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_hash
= note: `#[deny(clippy::unit_hash)]` on by default
Check warning on line 44 in src/grammar/raw.rs
github-actions / clippy
returning the result of a `let` binding from a block
warning: returning the result of a `let` binding from a block
--> src/grammar/raw.rs:44:17
|
43 | let entry = (rule.name.clone(), graph.add_node(rule.name.clone()));
| ------------------------------------------------------------------- unnecessary `let` binding
44 | entry
| ^^^^^
|
= 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
|
43 ~
44 ~ (rule.name.clone(), graph.add_node(rule.name.clone()))
|
Check warning on line 79 in src/grammar/graph.rs
github-actions / clippy
you are using an explicit closure for copying elements
warning: you are using an explicit closure for copying elements
--> src/grammar/graph.rs:79:20
|
79 | out_deg == scc.iter().map(|n| *n).collect()
| ^^^^^^^^^^^^^^^^^^^^^^ help: consider calling the dedicated `copied` method: `scc.iter().copied()`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone
= note: `#[warn(clippy::map_clone)]` on by default
Check warning on line 77 in src/grammar/graph.rs
github-actions / clippy
called `map(..).flatten()` on `Iterator`
warning: called `map(..).flatten()` on `Iterator`
--> src/grammar/graph.rs:76:14
|
76 | .map(|nx| self.graph.neighbors(*nx))
| ______________^
77 | | .flatten()
| |______________________^ help: try replacing `map` with `flat_map` and remove the `.flatten()`: `flat_map(|nx| self.graph.neighbors(*nx))`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_flatten
= note: `#[warn(clippy::map_flatten)]` on by default
Check warning on line 62 in src/grammar/graph.rs
github-actions / clippy
writing `&Vec` instead of `&[_]` involves a new object where a slice will do
warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do
--> src/grammar/graph.rs:62:33
|
62 | fn is_trap_loop(&self, scc: &Vec<NodeIndex>) -> bool {
| ^^^^^^^^^^^^^^^ help: change this to: `&[NodeIndex]`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg
= note: `#[warn(clippy::ptr_arg)]` on by default
Check warning on line 59 in src/grammar/graph.rs
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
--> src/grammar/graph.rs:59:12
|
59 | Ok(&self)
| ^^^^^ help: change this to: `self`
|
= 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 55 in src/grammar/alt.rs
github-actions / clippy
match expression looks like `matches!` macro
warning: match expression looks like `matches!` macro
--> src/grammar/alt.rs:52:9
|
52 | / match self.invoke_limit {
53 | | Limit::Unlimited => false,
54 | | _ => true,
55 | | }
| |_________^ help: try: `!matches!(self.invoke_limit, Limit::Unlimited)`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro
= note: `#[warn(clippy::match_like_matches_macro)]` on by default
Check warning on line 20 in src/regex.rs
github-actions / clippy
associated function `new` is never used
warning: associated function `new` is never used
--> src/regex.rs:20:8
|
19 | impl Regex {
| ---------- associated function in this implementation
20 | fn new(input: &str) -> Self {
| ^^^
Check warning on line 21 in src/parse_tree/tree.rs
github-actions / clippy
method `children_len` is never used
warning: method `children_len` is never used
--> src/parse_tree/tree.rs:21:19
|
12 | impl<T> ParseTree<T> {
| -------------------- method in this implementation
...
21 | pub(crate) fn children_len(&self) -> usize {
| ^^^^^^^^^^^^
Check warning on line 105 in src/grammar/symbol.rs
github-actions / clippy
method `name` is never used
warning: method `name` is never used
--> src/grammar/symbol.rs:105:12
|
101 | impl SymbolKind {
| --------------- method in this implementation
...
105 | pub fn name(&self) -> Option<&str> {
| ^^^^
|
= note: `#[warn(dead_code)]` on by default
Check warning on line 16 in src/grammar/checked.rs
github-actions / clippy
type `grammar::symbol::SymbolKind` is more private than the item `grammar::checked::ReduceOutput::NonTerminal::syms`
warning: type `grammar::symbol::SymbolKind` is more private than the item `grammar::checked::ReduceOutput::NonTerminal::syms`
--> src/grammar/checked.rs:16:9
|
16 | syms: Vec<SymbolKind>,
| ^^^^^^^^^^^^^^^^^^^^^ field `grammar::checked::ReduceOutput::NonTerminal::syms` is reachable at visibility `pub`
|
note: but type `grammar::symbol::SymbolKind` is only usable at visibility `pub(crate)`
--> src/grammar/symbol.rs:85:1
|
85 | pub(crate) enum SymbolKind {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
Check warning on line 48 in src/generator.rs
github-actions / clippy
type `grammar::symbol::SymbolKind` is more private than the item `generator::TreeGenerator::generate`
warning: type `grammar::symbol::SymbolKind` is more private than the item `generator::TreeGenerator::generate`
--> src/generator.rs:44:5
|
44 | / pub fn generate<R: Rng, S: Into<String>>(
45 | | &self,
46 | | start: S,
47 | | rng: &mut R,
48 | | ) -> ParseTree<SymbolKind> {
| |______________________________^ method `generator::TreeGenerator::generate` is reachable at visibility `pub`
|
note: but type `grammar::symbol::SymbolKind` is only usable at visibility `pub(crate)`
--> src/grammar/symbol.rs:85:1
|
85 | pub(crate) enum SymbolKind {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: `#[warn(private_interfaces)]` on by default
github-actions / clippy
unused variable: `comma`
warning: unused variable: `comma`
--> /home/runner/work/bnfgen/bnfgen/target/debug/build/bnfgen-425e20e80eb4f7df/out/parser.rs:1706:9
|
1706 | (_, comma, _): (usize, Option<Token>, usize),
| ^^^^^ help: if this is intentional, prefix it with an underscore: `_comma`
|
= note: `#[warn(unused_variables)]` on by default