Skip to content

Support typed BNF grammar #18

Support typed BNF grammar

Support typed BNF grammar #18

GitHub Actions / clippy failed Nov 10, 2024 in 0s

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

See this annotation in the file changed.

@github-actions 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

See this annotation in the file changed.

@github-actions 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

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
  --> 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

See this annotation in the file changed.

@github-actions 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

See this annotation in the file changed.

@github-actions 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

See this annotation in the file changed.

@github-actions 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

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
  --> 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

See this annotation in the file changed.

@github-actions 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

See this annotation in the file changed.

@github-actions 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

See this annotation in the file changed.

@github-actions 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

See this annotation in the file changed.

@github-actions 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

See this annotation in the file changed.

@github-actions 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

See this annotation in the file changed.

@github-actions 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

Check warning on line 1706 in /home/runner/work/bnfgen/bnfgen/target/debug/build/bnfgen-425e20e80eb4f7df/out/parser.rs

See this annotation in the file changed.

@github-actions 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