[INFO] cloning repository https://github.com/Kakuho/rust_parser [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Kakuho/rust_parser" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKakuho%2Frust_parser", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKakuho%2Frust_parser'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 823e046dfde5cbe0b3b05e1ca111d13ff13f7dd4 [INFO] linting Kakuho/rust_parser against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKakuho%2Frust_parser" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/Kakuho/rust_parser [INFO] finished tweaking git repo https://github.com/Kakuho/rust_parser [INFO] tweaked toml for git repo https://github.com/Kakuho/rust_parser written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Kakuho/rust_parser on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/Kakuho/rust_parser already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 10eb261cad264aeba6ef30ca4297bbbf11f455d17f30a6b835f44e1b51cbe02d [INFO] running `Command { std: "docker" "start" "-a" "10eb261cad264aeba6ef30ca4297bbbf11f455d17f30a6b835f44e1b51cbe02d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "10eb261cad264aeba6ef30ca4297bbbf11f455d17f30a6b835f44e1b51cbe02d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "10eb261cad264aeba6ef30ca4297bbbf11f455d17f30a6b835f44e1b51cbe02d", kill_on_drop: false }` [INFO] [stdout] 10eb261cad264aeba6ef30ca4297bbbf11f455d17f30a6b835f44e1b51cbe02d [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 8df4b241abdd585a58392d8c279220cee9f316ece4e33bacc5daab806ab52d0d [INFO] running `Command { std: "docker" "start" "-a" "8df4b241abdd585a58392d8c279220cee9f316ece4e33bacc5daab806ab52d0d", kill_on_drop: false }` [INFO] [stderr] Checking rust_parser v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/concrete/parser.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | is_const: is_const, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `is_const` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/concrete/parser.rs:113:9 [INFO] [stdout] | [INFO] [stdout] 113 | is_async: is_async, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `is_async` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/concrete/parser.rs:114:9 [INFO] [stdout] | [INFO] [stdout] 114 | is_safe: is_safe, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `is_safe` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/concrete/parser.rs:115:9 [INFO] [stdout] | [INFO] [stdout] 115 | is_unsafe: is_unsafe [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `is_unsafe` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/concrete/parser.rs:153:7 [INFO] [stdout] | [INFO] [stdout] 153 | if(self.position >= self.tokens.len()){ [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 153 - if(self.position >= self.tokens.len()){ [INFO] [stdout] 153 + if self.position >= self.tokens.len() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/concrete/parser.rs:202:38 [INFO] [stdout] | [INFO] [stdout] 202 | return Some(cst::CstLetStatement{pattern: pattern, let_type: type_val, expression: expression}); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `pattern` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/concrete/parser.rs:202:76 [INFO] [stdout] | [INFO] [stdout] 202 | return Some(cst::CstLetStatement{pattern: pattern, let_type: type_val, expression: expression}); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `expression` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/concrete/cst/top_level.rs:42:7 [INFO] [stdout] | [INFO] [stdout] 42 | qualifier: qualifier, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `qualifier` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/concrete/cst/top_level.rs:43:7 [INFO] [stdout] | [INFO] [stdout] 43 | identifier: identifier, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `identifier` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/concrete/cst/top_level.rs:44:7 [INFO] [stdout] | [INFO] [stdout] 44 | block_expression: block_expression [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `block_expression` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `top_level::CstCrate` [INFO] [stdout] --> src/concrete/cst.rs:2:9 [INFO] [stdout] | [INFO] [stdout] 2 | pub use top_level::CstCrate; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `top_level::CstItem` [INFO] [stdout] --> src/concrete/cst.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 3 | pub use top_level::CstItem; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression [INFO] [stdout] --> src/concrete/cst/statement.rs:113:14 [INFO] [stdout] | [INFO] [stdout] 113 | for i in (0.. level){ [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 113 - for i in (0.. level){ [INFO] [stdout] 113 + for i in 0.. level { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression [INFO] [stdout] --> src/concrete/cst/statement.rs:119:14 [INFO] [stdout] | [INFO] [stdout] 119 | for i in (0.. level){ [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 119 - for i in (0.. level){ [INFO] [stdout] 119 + for i in 0.. level { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression [INFO] [stdout] --> src/concrete/cst/statement.rs:126:14 [INFO] [stdout] | [INFO] [stdout] 126 | for i in (0.. level){ [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 126 - for i in (0.. level){ [INFO] [stdout] 126 + for i in 0.. level { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression [INFO] [stdout] --> src/concrete/cst/statement.rs:135:14 [INFO] [stdout] | [INFO] [stdout] 135 | for i in (0.. level){ [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 135 - for i in (0.. level){ [INFO] [stdout] 135 + for i in 0.. level { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression [INFO] [stdout] --> src/concrete/cst/statement.rs:144:14 [INFO] [stdout] | [INFO] [stdout] 144 | for i in (0.. level){ [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 144 - for i in (0.. level){ [INFO] [stdout] 144 + for i in 0.. level { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `statement::StatementKind` [INFO] [stdout] --> src/concrete/cst.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | pub use statement::StatementKind; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/concrete/cst/patterns.rs:68:7 [INFO] [stdout] | [INFO] [stdout] 68 | is_ref: is_ref, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `is_ref` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/concrete/cst/patterns.rs:69:7 [INFO] [stdout] | [INFO] [stdout] 69 | is_mutable: is_mutable, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `is_mutable` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/concrete/cst/patterns.rs:70:7 [INFO] [stdout] | [INFO] [stdout] 70 | identifier: identifier [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `identifier` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `patterns::PatternNoTopAltKind` [INFO] [stdout] --> src/concrete/cst.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | pub use patterns::PatternNoTopAltKind; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `saved_pos` [INFO] [stdout] --> src/concrete/parser.rs:156:9 [INFO] [stdout] | [INFO] [stdout] 156 | let saved_pos = self.position; // for back tracking later [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_saved_pos` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `pattern` [INFO] [stdout] --> src/concrete/parser.rs:174:12 [INFO] [stdout] | [INFO] [stdout] 174 | Some(pattern) => self.position = self.position+1, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pattern` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/concrete/cst/statement.rs:113:9 [INFO] [stdout] | [INFO] [stdout] 113 | for i in (0.. level){ [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/concrete/cst/statement.rs:119:9 [INFO] [stdout] | [INFO] [stdout] 119 | for i in (0.. level){ [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/concrete/cst/statement.rs:126:9 [INFO] [stdout] | [INFO] [stdout] 126 | for i in (0.. level){ [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/concrete/cst/statement.rs:135:9 [INFO] [stdout] | [INFO] [stdout] 135 | for i in (0.. level){ [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/concrete/cst/statement.rs:144:9 [INFO] [stdout] | [INFO] [stdout] 144 | for i in (0.. level){ [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `program` [INFO] [stdout] --> src/main.rs:149:7 [INFO] [stdout] | [INFO] [stdout] 149 | let program = Program{ [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_program` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `buffer` is never read [INFO] [stdout] --> src/main.rs:5:3 [INFO] [stdout] | [INFO] [stdout] 4 | struct Program{ [INFO] [stdout] | ------- field in this struct [INFO] [stdout] 5 | buffer: String [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_main_function` is never used [INFO] [stdout] --> src/main.rs:31:4 [INFO] [stdout] | [INFO] [stdout] 31 | fn parse_main_function(){ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_block_expression` is never used [INFO] [stdout] --> src/main.rs:50:4 [INFO] [stdout] | [INFO] [stdout] 50 | fn parse_block_expression(){ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_statements_1` is never used [INFO] [stdout] --> src/main.rs:108:4 [INFO] [stdout] | [INFO] [stdout] 108 | fn parse_statements_1(){ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `parse`, `parse_function`, `parse_function_qualifiers`, `parse_block_expression`, `parse_statements`, and `parse_statement` are never used [INFO] [stdout] --> src/concrete/parser.rs:18:10 [INFO] [stdout] | [INFO] [stdout] 9 | impl Parser{ [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 18 | pub fn parse(self) -> i8{ [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | pub fn parse_function(&mut self) -> Option{ [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | fn parse_function_qualifiers(&mut self) -> Option{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | pub fn parse_block_expression(&mut self) -> Option{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 135 | pub fn parse_statements(&mut self) -> Option{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 150 | pub fn parse_statement(&mut self) -> Option{ [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CstCrate` is never constructed [INFO] [stdout] --> src/concrete/cst/top_level.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct CstCrate{ [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CstItem` is never constructed [INFO] [stdout] --> src/concrete/cst/top_level.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct CstItem{ [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `VisItemChild` is never used [INFO] [stdout] --> src/concrete/cst/top_level.rs:11:6 [INFO] [stdout] | [INFO] [stdout] 11 | enum VisItemChild{ [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CstVisItem` is never constructed [INFO] [stdout] --> src/concrete/cst/top_level.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct CstVisItem{ [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CstFunction` is never constructed [INFO] [stdout] --> src/concrete/cst/top_level.rs:22:12 [INFO] [stdout] | [INFO] [stdout] 22 | pub struct CstFunction{ [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CstFunctionQualifier` is never constructed [INFO] [stdout] --> src/concrete/cst/top_level.rs:32:12 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct CstFunctionQualifier{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `create` and `print` are never used [INFO] [stdout] --> src/concrete/cst/top_level.rs:40:10 [INFO] [stdout] | [INFO] [stdout] 39 | impl CstFunction{ [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 40 | pub fn create(qualifier: Option, identifier: String, block_expression: Option src/concrete/cst/expressions.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct CstBlockExpression{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `print` is never used [INFO] [stdout] --> src/concrete/cst/expressions.rs:7:10 [INFO] [stdout] | [INFO] [stdout] 6 | impl CstBlockExpression{ [INFO] [stdout] | ----------------------- method in this implementation [INFO] [stdout] 7 | pub fn print(&self){ [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CstStatements` is never constructed [INFO] [stdout] --> src/concrete/cst/statement.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct CstStatements{ [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `make_empty`, `add_statement`, `len`, and `print` are never used [INFO] [stdout] --> src/concrete/cst/statement.rs:10:10 [INFO] [stdout] | [INFO] [stdout] 9 | impl CstStatements{ [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 10 | pub fn make_empty() -> Self{ [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 14 | pub fn add_statement(&mut self, stmt: CstStatement){ [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 18 | pub fn len(&self) -> usize{ [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | pub fn print(&self){ [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `StatementKind` is never used [INFO] [stdout] --> src/concrete/cst/statement.rs:30:10 [INFO] [stdout] | [INFO] [stdout] 30 | pub enum StatementKind{ [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `print` is never used [INFO] [stdout] --> src/concrete/cst/statement.rs:35:10 [INFO] [stdout] | [INFO] [stdout] 34 | impl StatementKind{ [INFO] [stdout] | ------------------ method in this implementation [INFO] [stdout] 35 | pub fn print(&self){ [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CstStatement` is never constructed [INFO] [stdout] --> src/concrete/cst/statement.rs:42:12 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct CstStatement{ [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `print` is never used [INFO] [stdout] --> src/concrete/cst/statement.rs:47:10 [INFO] [stdout] | [INFO] [stdout] 46 | impl CstStatement{ [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] 47 | pub fn print(&self){ [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `print` and `print_as_child` are never used [INFO] [stdout] --> src/concrete/cst/statement.rs:68:10 [INFO] [stdout] | [INFO] [stdout] 67 | impl CstLetStatement{ [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] 68 | pub fn print(&self){ [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 112 | pub fn print_as_child(&self, level: u8){ [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `LiteralPattern` is never constructed [INFO] [stdout] --> src/concrete/cst/patterns.rs:32:3 [INFO] [stdout] | [INFO] [stdout] 31 | enum PatternWithoutRangeKind{ [INFO] [stdout] | ----------------------- variant in this enum [INFO] [stdout] 32 | LiteralPattern(expressions::CstLiteralExpression), [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Lexer` is never constructed [INFO] [stdout] --> src/lex.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct Lexer{ [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/lex.rs:6:3 [INFO] [stdout] | [INFO] [stdout] 5 | pub enum LexerToken{ [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] 6 | Char(char), [INFO] [stdout] | ^^^^ [INFO] [stdout] 7 | // keywords, could be stored in a hashmap instead [INFO] [stdout] 8 | Fn, [INFO] [stdout] | ^^ [INFO] [stdout] 9 | Const, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 10 | Async, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 11 | Safe, [INFO] [stdout] | ^^^^ [INFO] [stdout] 12 | Unsafe, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 13 | Extern, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 14 | Let, [INFO] [stdout] 15 | Abi(String), [INFO] [stdout] | ^^^ [INFO] [stdout] 16 | Ref, [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 19 | Character(char), [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 20 | String(String), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 21 | Integral(i32), [INFO] [stdout] 22 | Float(f64), [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 26 | SingleQuote, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 27 | DoubleQuote, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | LeftCurlyBrace, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 33 | RightCurlyBrace, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 34 | LeftRoundBrace, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 35 | RightRoundBrace, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/concrete/parser.rs:67:5 [INFO] [stdout] | [INFO] [stdout] 67 | / return Some( [INFO] [stdout] 68 | | cst::CstFunction::create(qualifiers, identifier, block_expression) [INFO] [stdout] 69 | | ) [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 67 ~ Some( [INFO] [stdout] 68 + cst::CstFunction::create(qualifiers, identifier, block_expression) [INFO] [stdout] 69 + ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stdout] --> src/concrete/parser.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 33 | let ref ident_token = self.tokens[self.position]; [INFO] [stdout] | ----^^^^^^^^^^^^^^^------------------------------ help: try: `let ident_token = &self.tokens[self.position];` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stdout] = note: `#[warn(clippy::toplevel_ref_arg)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/concrete/parser.rs:110:5 [INFO] [stdout] | [INFO] [stdout] 110 | / return Some( [INFO] [stdout] 111 | | cst::CstFunctionQualifier{ [INFO] [stdout] 112 | | is_const: is_const, [INFO] [stdout] 113 | | is_async: is_async, [INFO] [stdout] ... | [INFO] [stdout] 117 | | ) [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 110 ~ Some( [INFO] [stdout] 111 + cst::CstFunctionQualifier{ [INFO] [stdout] 112 + is_const: is_const, [INFO] [stdout] 113 + is_async: is_async, [INFO] [stdout] 114 + is_safe: is_safe, [INFO] [stdout] 115 + is_unsafe: is_unsafe [INFO] [stdout] 116 + } [INFO] [stdout] 117 + ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/concrete/parser.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | is_const: is_const, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `is_const` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/concrete/parser.rs:113:9 [INFO] [stdout] | [INFO] [stdout] 113 | is_async: is_async, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `is_async` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/concrete/parser.rs:114:9 [INFO] [stdout] | [INFO] [stdout] 114 | is_safe: is_safe, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `is_safe` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/concrete/parser.rs:115:9 [INFO] [stdout] | [INFO] [stdout] 115 | is_unsafe: is_unsafe [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `is_unsafe` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/concrete/parser.rs:132:5 [INFO] [stdout] | [INFO] [stdout] 132 | return Some(cst::CstBlockExpression{}); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 132 - return Some(cst::CstBlockExpression{}); [INFO] [stdout] 132 + Some(cst::CstBlockExpression{}) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/concrete/parser.rs:123:42 [INFO] [stdout] | [INFO] [stdout] 123 | lex::LexerToken::LeftCurlyBrace => self.position = self.position+1, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.position += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/concrete/parser.rs:153:7 [INFO] [stdout] | [INFO] [stdout] 153 | if(self.position >= self.tokens.len()){ [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 153 - if(self.position >= self.tokens.len()){ [INFO] [stdout] 153 + if self.position >= self.tokens.len() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/concrete/parser.rs:202:38 [INFO] [stdout] | [INFO] [stdout] 202 | return Some(cst::CstLetStatement{pattern: pattern, let_type: type_val, expression: expression}); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `pattern` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/concrete/parser.rs:202:76 [INFO] [stdout] | [INFO] [stdout] 202 | return Some(cst::CstLetStatement{pattern: pattern, let_type: type_val, expression: expression}); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `expression` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/concrete/cst/top_level.rs:42:7 [INFO] [stdout] | [INFO] [stdout] 42 | qualifier: qualifier, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `qualifier` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/concrete/cst/top_level.rs:43:7 [INFO] [stdout] | [INFO] [stdout] 43 | identifier: identifier, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `identifier` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/concrete/cst/top_level.rs:44:7 [INFO] [stdout] | [INFO] [stdout] 44 | block_expression: block_expression [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `block_expression` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `top_level::CstCrate` [INFO] [stdout] --> src/concrete/cst.rs:2:9 [INFO] [stdout] | [INFO] [stdout] 2 | pub use top_level::CstCrate; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `top_level::CstItem` [INFO] [stdout] --> src/concrete/cst.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 3 | pub use top_level::CstItem; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/concrete/parser.rs:129:43 [INFO] [stdout] | [INFO] [stdout] 129 | lex::LexerToken::RightCurlyBrace => self.position = self.position+1, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.position += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/concrete/parser.rs:138:11 [INFO] [stdout] | [INFO] [stdout] 138 | while !statement.is_none(){ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `statement.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/concrete/parser.rs:143:7 [INFO] [stdout] | [INFO] [stdout] 143 | return None; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 143 - return None; [INFO] [stdout] 143 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/concrete/parser.rs:146:7 [INFO] [stdout] | [INFO] [stdout] 146 | return Some(cst_statements); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 146 - return Some(cst_statements); [INFO] [stdout] 146 + Some(cst_statements) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/concrete/parser.rs:158:5 [INFO] [stdout] | [INFO] [stdout] 158 | / match let_statement{ [INFO] [stdout] 159 | | Some(let_statement) => {return Some(cst::CstStatement::from(let_statement)); }, [INFO] [stdout] 160 | | None => {} [INFO] [stdout] 161 | | } [INFO] [stdout] | |_____^ help: try: `if let Some(let_statement) = let_statement {return Some(cst::CstStatement::from(let_statement)); }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/concrete/parser.rs:202:5 [INFO] [stdout] | [INFO] [stdout] 202 | return Some(cst::CstLetStatement{pattern: pattern, let_type: type_val, expression: expression}); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 202 - return Some(cst::CstLetStatement{pattern: pattern, let_type: type_val, expression: expression}); [INFO] [stdout] 202 + Some(cst::CstLetStatement{pattern: pattern, let_type: type_val, expression: expression}) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/concrete/parser.rs:167:31 [INFO] [stdout] | [INFO] [stdout] 167 | lex::LexerToken::Let => self.position = self.position+1, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.position += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/concrete/parser.rs:174:24 [INFO] [stdout] | [INFO] [stdout] 174 | Some(pattern) => self.position = self.position+1, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.position += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/concrete/parser.rs:191:33 [INFO] [stdout] | [INFO] [stdout] 191 | lex::LexerToken::Equal => self.position = self.position+1, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.position += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/concrete/parser.rs:198:37 [INFO] [stdout] | [INFO] [stdout] 198 | lex::LexerToken::SemiColon => self.position = self.position+1, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.position += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/concrete/parser.rs:219:5 [INFO] [stdout] | [INFO] [stdout] 219 | return Some(type_val); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 219 - return Some(type_val); [INFO] [stdout] 219 + Some(type_val) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/concrete/parser.rs:207:33 [INFO] [stdout] | [INFO] [stdout] 207 | lex::LexerToken::Colon => self.position = self.position+1, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.position += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression [INFO] [stdout] --> src/concrete/cst/statement.rs:113:14 [INFO] [stdout] | [INFO] [stdout] 113 | for i in (0.. level){ [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 113 - for i in (0.. level){ [INFO] [stdout] 113 + for i in 0.. level { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression [INFO] [stdout] --> src/concrete/cst/statement.rs:119:14 [INFO] [stdout] | [INFO] [stdout] 119 | for i in (0.. level){ [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 119 - for i in (0.. level){ [INFO] [stdout] 119 + for i in 0.. level { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression [INFO] [stdout] --> src/concrete/cst/statement.rs:126:14 [INFO] [stdout] | [INFO] [stdout] 126 | for i in (0.. level){ [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 126 - for i in (0.. level){ [INFO] [stdout] 126 + for i in 0.. level { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression [INFO] [stdout] --> src/concrete/cst/statement.rs:135:14 [INFO] [stdout] | [INFO] [stdout] 135 | for i in (0.. level){ [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 135 - for i in (0.. level){ [INFO] [stdout] 135 + for i in 0.. level { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `for` iterator expression [INFO] [stdout] --> src/concrete/cst/statement.rs:144:14 [INFO] [stdout] | [INFO] [stdout] 144 | for i in (0.. level){ [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 144 - for i in (0.. level){ [INFO] [stdout] 144 + for i in 0.. level { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `statement::StatementKind` [INFO] [stdout] --> src/concrete/cst.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | pub use statement::StatementKind; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/concrete/cst/patterns.rs:68:7 [INFO] [stdout] | [INFO] [stdout] 68 | is_ref: is_ref, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `is_ref` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/concrete/cst/patterns.rs:69:7 [INFO] [stdout] | [INFO] [stdout] 69 | is_mutable: is_mutable, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `is_mutable` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/concrete/parser.rs:234:5 [INFO] [stdout] | [INFO] [stdout] 234 | return None; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 234 - return None; [INFO] [stdout] 234 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/concrete/parser.rs:264:5 [INFO] [stdout] | [INFO] [stdout] 264 | return None; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 264 - return None; [INFO] [stdout] 264 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/concrete/parser.rs:286:5 [INFO] [stdout] | [INFO] [stdout] 286 | return Some(cst::CstLiteralExpression::from(char_val)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 286 - return Some(cst::CstLiteralExpression::from(char_val)); [INFO] [stdout] 286 + Some(cst::CstLiteralExpression::from(char_val)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/concrete/cst/patterns.rs:70:7 [INFO] [stdout] | [INFO] [stdout] 70 | identifier: identifier [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `identifier` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `patterns::PatternNoTopAltKind` [INFO] [stdout] --> src/concrete/cst.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | pub use patterns::PatternNoTopAltKind; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/concrete/parser.rs:282:39 [INFO] [stdout] | [INFO] [stdout] 282 | lex::LexerToken::SingleQuote => self.position = self.position+1, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.position += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/concrete/parser.rs:308:5 [INFO] [stdout] | [INFO] [stdout] 308 | return Some(cst::CstLiteralExpression::from(string_val)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 308 - return Some(cst::CstLiteralExpression::from(string_val)); [INFO] [stdout] 308 + Some(cst::CstLiteralExpression::from(string_val)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/concrete/parser.rs:316:9 [INFO] [stdout] | [INFO] [stdout] 316 | return Some(cst::CstLiteralExpression::from(val)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 316 ~ Some(cst::CstLiteralExpression::from(val)) [INFO] [stdout] 317 | }, [INFO] [stdout] 318 | _ => {return None;} [INFO] [stdout] 319 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/concrete/parser.rs:318:13 [INFO] [stdout] | [INFO] [stdout] 318 | _ => {return None;} [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 318 ~ _ => {None} [INFO] [stdout] 319 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/concrete/parser.rs:326:9 [INFO] [stdout] | [INFO] [stdout] 326 | return Some(cst::CstLiteralExpression::from(val)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 326 ~ Some(cst::CstLiteralExpression::from(val)) [INFO] [stdout] 327 | }, [INFO] [stdout] 328 | _ => {return None;} [INFO] [stdout] 329 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/concrete/parser.rs:328:13 [INFO] [stdout] | [INFO] [stdout] 328 | _ => {return None;} [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 328 ~ _ => {None} [INFO] [stdout] 329 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/concrete/parser.rs:338:5 [INFO] [stdout] | [INFO] [stdout] 338 | return Some(cst::CstPatternNoTopAlt::from(pattern.unwrap())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 338 - return Some(cst::CstPatternNoTopAlt::from(pattern.unwrap())); [INFO] [stdout] 338 + Some(cst::CstPatternNoTopAlt::from(pattern.unwrap())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `identifier_pattern` after checking its variant with `is_none` [INFO] [stdout] --> src/concrete/parser.rs:348:53 [INFO] [stdout] | [INFO] [stdout] 344 | if identifier_pattern.is_none() { [INFO] [stdout] | ------------------------------- help: try: `if let Some() = identifier_pattern` [INFO] [stdout] ... [INFO] [stdout] 348 | return Some(cst::CstPatternWithoutRange::from(identifier_pattern.unwrap())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/concrete/parser.rs:350:5 [INFO] [stdout] | [INFO] [stdout] 350 | return None; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 350 - return None; [INFO] [stdout] 350 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/concrete/parser.rs:365:66 [INFO] [stdout] | [INFO] [stdout] 365 | lex::LexerToken::Identifier(identifier) => { String::clone(&identifier)}, [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `identifier` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/concrete/cst/top_level.rs:52:5 [INFO] [stdout] | [INFO] [stdout] 52 | / match &self.qualifier{ [INFO] [stdout] 53 | | Some(qualifiers) => { [INFO] [stdout] 54 | | if qualifiers.is_const{ [INFO] [stdout] 55 | | println!("Const"); [INFO] [stdout] ... | [INFO] [stdout] 69 | | None => {} [INFO] [stdout] 70 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 52 ~ if let Some(qualifiers) = &self.qualifier { [INFO] [stdout] 53 + if qualifiers.is_const{ [INFO] [stdout] 54 + println!("Const"); [INFO] [stdout] 55 + } [INFO] [stdout] 56 + [INFO] [stdout] 57 + if qualifiers.is_async { [INFO] [stdout] 58 + println!("Async"); [INFO] [stdout] 59 + } [INFO] [stdout] 60 + [INFO] [stdout] 61 + if qualifiers.is_unsafe { [INFO] [stdout] 62 + println!("Unsafe"); [INFO] [stdout] 63 + } [INFO] [stdout] 64 + else{ [INFO] [stdout] 65 + println!("Safe"); [INFO] [stdout] 66 + } [INFO] [stdout] 67 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/concrete/cst/top_level.rs:74:5 [INFO] [stdout] | [INFO] [stdout] 74 | / match &self.block_expression{ [INFO] [stdout] 75 | | Some(blocknode) => { [INFO] [stdout] 76 | | blocknode.print(); [INFO] [stdout] ... | [INFO] [stdout] 79 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 74 ~ if let Some(blocknode) = &self.block_expression { [INFO] [stdout] 75 + blocknode.print(); [INFO] [stdout] 76 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/concrete/cst/expressions.rs:59:5 [INFO] [stdout] | [INFO] [stdout] 59 | / return CstLiteralExpression { [INFO] [stdout] 60 | | literal: LiteralExpressionKind::Char(item) [INFO] [stdout] 61 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 59 ~ CstLiteralExpression { [INFO] [stdout] 60 + literal: LiteralExpressionKind::Char(item) [INFO] [stdout] 61 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/concrete/cst/expressions.rs:67:5 [INFO] [stdout] | [INFO] [stdout] 67 | / return CstLiteralExpression { [INFO] [stdout] 68 | | literal: LiteralExpressionKind::String(item) [INFO] [stdout] 69 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 67 ~ CstLiteralExpression { [INFO] [stdout] 68 + literal: LiteralExpressionKind::String(item) [INFO] [stdout] 69 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/concrete/cst/expressions.rs:75:5 [INFO] [stdout] | [INFO] [stdout] 75 | / return CstLiteralExpression { [INFO] [stdout] 76 | | literal: LiteralExpressionKind::Integral(item) [INFO] [stdout] 77 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 75 ~ CstLiteralExpression { [INFO] [stdout] 76 + literal: LiteralExpressionKind::Integral(item) [INFO] [stdout] 77 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/concrete/cst/expressions.rs:83:5 [INFO] [stdout] | [INFO] [stdout] 83 | / return CstLiteralExpression { [INFO] [stdout] 84 | | literal: LiteralExpressionKind::Float(item) [INFO] [stdout] 85 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 83 ~ CstLiteralExpression { [INFO] [stdout] 84 + literal: LiteralExpressionKind::Float(item) [INFO] [stdout] 85 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/concrete/cst/statement.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 55 | return CstStatement{kind: StatementKind::LetStatement(node)}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 55 - return CstStatement{kind: StatementKind::LetStatement(node)}; [INFO] [stdout] 55 + CstStatement{kind: StatementKind::LetStatement(node)} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/concrete/cst/patterns.rs:49:5 [INFO] [stdout] | [INFO] [stdout] 49 | / match &self.kind{ [INFO] [stdout] 50 | | PatternWithoutRangeKind::IdentifierPattern(node) => {node.print();} [INFO] [stdout] 51 | | _ => {} [INFO] [stdout] 52 | | } [INFO] [stdout] | |_____^ help: try: `if let PatternWithoutRangeKind::IdentifierPattern(node) = &self.kind {node.print();}` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `saved_pos` [INFO] [stdout] --> src/concrete/parser.rs:156:9 [INFO] [stdout] | [INFO] [stdout] 156 | let saved_pos = self.position; // for back tracking later [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_saved_pos` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `pattern` [INFO] [stdout] --> src/concrete/parser.rs:174:12 [INFO] [stdout] | [INFO] [stdout] 174 | Some(pattern) => self.position = self.position+1, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pattern` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/concrete/cst/statement.rs:113:9 [INFO] [stdout] | [INFO] [stdout] 113 | for i in (0.. level){ [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/concrete/cst/statement.rs:119:9 [INFO] [stdout] | [INFO] [stdout] 119 | for i in (0.. level){ [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/concrete/cst/statement.rs:126:9 [INFO] [stdout] | [INFO] [stdout] 126 | for i in (0.. level){ [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/concrete/cst/statement.rs:135:9 [INFO] [stdout] | [INFO] [stdout] 135 | for i in (0.. level){ [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/concrete/cst/statement.rs:144:9 [INFO] [stdout] | [INFO] [stdout] 144 | for i in (0.. level){ [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `program` [INFO] [stdout] --> src/main.rs:149:7 [INFO] [stdout] | [INFO] [stdout] 149 | let program = Program{ [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_program` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `buffer` is never read [INFO] [stdout] --> src/main.rs:5:3 [INFO] [stdout] | [INFO] [stdout] 4 | struct Program{ [INFO] [stdout] | ------- field in this struct [INFO] [stdout] 5 | buffer: String [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_main_function` is never used [INFO] [stdout] --> src/main.rs:31:4 [INFO] [stdout] | [INFO] [stdout] 31 | fn parse_main_function(){ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_block_expression` is never used [INFO] [stdout] --> src/main.rs:50:4 [INFO] [stdout] | [INFO] [stdout] 50 | fn parse_block_expression(){ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_statements_1` is never used [INFO] [stdout] --> src/main.rs:108:4 [INFO] [stdout] | [INFO] [stdout] 108 | fn parse_statements_1(){ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `parse`, `parse_function`, `parse_function_qualifiers`, `parse_block_expression`, `parse_statements`, and `parse_statement` are never used [INFO] [stdout] --> src/concrete/parser.rs:18:10 [INFO] [stdout] | [INFO] [stdout] 9 | impl Parser{ [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 18 | pub fn parse(self) -> i8{ [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | pub fn parse_function(&mut self) -> Option{ [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | fn parse_function_qualifiers(&mut self) -> Option{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | pub fn parse_block_expression(&mut self) -> Option{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 135 | pub fn parse_statements(&mut self) -> Option{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 150 | pub fn parse_statement(&mut self) -> Option{ [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CstCrate` is never constructed [INFO] [stdout] --> src/concrete/cst/top_level.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct CstCrate{ [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CstItem` is never constructed [INFO] [stdout] --> src/concrete/cst/top_level.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct CstItem{ [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `VisItemChild` is never used [INFO] [stdout] --> src/concrete/cst/top_level.rs:11:6 [INFO] [stdout] | [INFO] [stdout] 11 | enum VisItemChild{ [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CstVisItem` is never constructed [INFO] [stdout] --> src/concrete/cst/top_level.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct CstVisItem{ [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CstFunction` is never constructed [INFO] [stdout] --> src/concrete/cst/top_level.rs:22:12 [INFO] [stdout] | [INFO] [stdout] 22 | pub struct CstFunction{ [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CstFunctionQualifier` is never constructed [INFO] [stdout] --> src/concrete/cst/top_level.rs:32:12 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct CstFunctionQualifier{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `create` and `print` are never used [INFO] [stdout] --> src/concrete/cst/top_level.rs:40:10 [INFO] [stdout] | [INFO] [stdout] 39 | impl CstFunction{ [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 40 | pub fn create(qualifier: Option, identifier: String, block_expression: Option src/concrete/cst/expressions.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct CstBlockExpression{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `print` is never used [INFO] [stdout] --> src/concrete/cst/expressions.rs:7:10 [INFO] [stdout] | [INFO] [stdout] 6 | impl CstBlockExpression{ [INFO] [stdout] | ----------------------- method in this implementation [INFO] [stdout] 7 | pub fn print(&self){ [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CstStatements` is never constructed [INFO] [stdout] --> src/concrete/cst/statement.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct CstStatements{ [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `make_empty`, `add_statement`, `len`, and `print` are never used [INFO] [stdout] --> src/concrete/cst/statement.rs:10:10 [INFO] [stdout] | [INFO] [stdout] 9 | impl CstStatements{ [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 10 | pub fn make_empty() -> Self{ [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 14 | pub fn add_statement(&mut self, stmt: CstStatement){ [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 18 | pub fn len(&self) -> usize{ [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | pub fn print(&self){ [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `StatementKind` is never used [INFO] [stdout] --> src/concrete/cst/statement.rs:30:10 [INFO] [stdout] | [INFO] [stdout] 30 | pub enum StatementKind{ [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `print` is never used [INFO] [stdout] --> src/concrete/cst/statement.rs:35:10 [INFO] [stdout] | [INFO] [stdout] 34 | impl StatementKind{ [INFO] [stdout] | ------------------ method in this implementation [INFO] [stdout] 35 | pub fn print(&self){ [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CstStatement` is never constructed [INFO] [stdout] --> src/concrete/cst/statement.rs:42:12 [INFO] [stdout] | [INFO] [stdout] 42 | pub struct CstStatement{ [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `print` is never used [INFO] [stdout] --> src/concrete/cst/statement.rs:47:10 [INFO] [stdout] | [INFO] [stdout] 46 | impl CstStatement{ [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] 47 | pub fn print(&self){ [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `print` and `print_as_child` are never used [INFO] [stdout] --> src/concrete/cst/statement.rs:68:10 [INFO] [stdout] | [INFO] [stdout] 67 | impl CstLetStatement{ [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] 68 | pub fn print(&self){ [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 112 | pub fn print_as_child(&self, level: u8){ [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `LiteralPattern` is never constructed [INFO] [stdout] --> src/concrete/cst/patterns.rs:32:3 [INFO] [stdout] | [INFO] [stdout] 31 | enum PatternWithoutRangeKind{ [INFO] [stdout] | ----------------------- variant in this enum [INFO] [stdout] 32 | LiteralPattern(expressions::CstLiteralExpression), [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Lexer` is never constructed [INFO] [stdout] --> src/lex.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct Lexer{ [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/lex.rs:6:3 [INFO] [stdout] | [INFO] [stdout] 5 | pub enum LexerToken{ [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] 6 | Char(char), [INFO] [stdout] | ^^^^ [INFO] [stdout] 7 | // keywords, could be stored in a hashmap instead [INFO] [stdout] 8 | Fn, [INFO] [stdout] | ^^ [INFO] [stdout] 9 | Const, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 10 | Async, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 11 | Safe, [INFO] [stdout] | ^^^^ [INFO] [stdout] 12 | Unsafe, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 13 | Extern, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 14 | Let, [INFO] [stdout] 15 | Abi(String), [INFO] [stdout] | ^^^ [INFO] [stdout] 16 | Ref, [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 19 | Character(char), [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 20 | String(String), [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 21 | Integral(i32), [INFO] [stdout] 22 | Float(f64), [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 26 | SingleQuote, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 27 | DoubleQuote, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | LeftCurlyBrace, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 33 | RightCurlyBrace, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 34 | LeftRoundBrace, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 35 | RightRoundBrace, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/concrete/parser.rs:67:5 [INFO] [stdout] | [INFO] [stdout] 67 | / return Some( [INFO] [stdout] 68 | | cst::CstFunction::create(qualifiers, identifier, block_expression) [INFO] [stdout] 69 | | ) [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 67 ~ Some( [INFO] [stdout] 68 + cst::CstFunction::create(qualifiers, identifier, block_expression) [INFO] [stdout] 69 + ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stdout] --> src/concrete/parser.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 33 | let ref ident_token = self.tokens[self.position]; [INFO] [stdout] | ----^^^^^^^^^^^^^^^------------------------------ help: try: `let ident_token = &self.tokens[self.position];` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stdout] = note: `#[warn(clippy::toplevel_ref_arg)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/concrete/parser.rs:110:5 [INFO] [stdout] | [INFO] [stdout] 110 | / return Some( [INFO] [stdout] 111 | | cst::CstFunctionQualifier{ [INFO] [stdout] 112 | | is_const: is_const, [INFO] [stdout] 113 | | is_async: is_async, [INFO] [stdout] ... | [INFO] [stdout] 117 | | ) [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 110 ~ Some( [INFO] [stdout] 111 + cst::CstFunctionQualifier{ [INFO] [stdout] 112 + is_const: is_const, [INFO] [stdout] 113 + is_async: is_async, [INFO] [stdout] 114 + is_safe: is_safe, [INFO] [stdout] 115 + is_unsafe: is_unsafe [INFO] [stdout] 116 + } [INFO] [stdout] 117 + ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/concrete/parser.rs:132:5 [INFO] [stdout] | [INFO] [stdout] 132 | return Some(cst::CstBlockExpression{}); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 132 - return Some(cst::CstBlockExpression{}); [INFO] [stdout] 132 + Some(cst::CstBlockExpression{}) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/concrete/parser.rs:123:42 [INFO] [stdout] | [INFO] [stdout] 123 | lex::LexerToken::LeftCurlyBrace => self.position = self.position+1, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.position += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/concrete/parser.rs:129:43 [INFO] [stdout] | [INFO] [stdout] 129 | lex::LexerToken::RightCurlyBrace => self.position = self.position+1, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.position += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/concrete/parser.rs:138:11 [INFO] [stdout] | [INFO] [stdout] 138 | while !statement.is_none(){ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `statement.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/concrete/parser.rs:143:7 [INFO] [stdout] | [INFO] [stdout] 143 | return None; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 143 - return None; [INFO] [stdout] 143 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/concrete/parser.rs:146:7 [INFO] [stdout] | [INFO] [stdout] 146 | return Some(cst_statements); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 146 - return Some(cst_statements); [INFO] [stdout] 146 + Some(cst_statements) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/concrete/parser.rs:158:5 [INFO] [stdout] | [INFO] [stdout] 158 | / match let_statement{ [INFO] [stdout] 159 | | Some(let_statement) => {return Some(cst::CstStatement::from(let_statement)); }, [INFO] [stdout] 160 | | None => {} [INFO] [stdout] 161 | | } [INFO] [stdout] | |_____^ help: try: `if let Some(let_statement) = let_statement {return Some(cst::CstStatement::from(let_statement)); }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/concrete/parser.rs:202:5 [INFO] [stdout] | [INFO] [stdout] 202 | return Some(cst::CstLetStatement{pattern: pattern, let_type: type_val, expression: expression}); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 202 - return Some(cst::CstLetStatement{pattern: pattern, let_type: type_val, expression: expression}); [INFO] [stdout] 202 + Some(cst::CstLetStatement{pattern: pattern, let_type: type_val, expression: expression}) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/concrete/parser.rs:167:31 [INFO] [stdout] | [INFO] [stdout] 167 | lex::LexerToken::Let => self.position = self.position+1, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.position += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/concrete/parser.rs:174:24 [INFO] [stdout] | [INFO] [stdout] 174 | Some(pattern) => self.position = self.position+1, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.position += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/concrete/parser.rs:191:33 [INFO] [stdout] | [INFO] [stdout] 191 | lex::LexerToken::Equal => self.position = self.position+1, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.position += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/concrete/parser.rs:198:37 [INFO] [stdout] | [INFO] [stdout] 198 | lex::LexerToken::SemiColon => self.position = self.position+1, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.position += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/concrete/parser.rs:219:5 [INFO] [stdout] | [INFO] [stdout] 219 | return Some(type_val); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 219 - return Some(type_val); [INFO] [stdout] 219 + Some(type_val) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/concrete/parser.rs:207:33 [INFO] [stdout] | [INFO] [stdout] 207 | lex::LexerToken::Colon => self.position = self.position+1, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.position += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/concrete/parser.rs:234:5 [INFO] [stdout] | [INFO] [stdout] 234 | return None; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 234 - return None; [INFO] [stdout] 234 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/concrete/parser.rs:264:5 [INFO] [stdout] | [INFO] [stdout] 264 | return None; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 264 - return None; [INFO] [stdout] 264 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/concrete/parser.rs:286:5 [INFO] [stdout] | [INFO] [stdout] 286 | return Some(cst::CstLiteralExpression::from(char_val)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 286 - return Some(cst::CstLiteralExpression::from(char_val)); [INFO] [stdout] 286 + Some(cst::CstLiteralExpression::from(char_val)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/concrete/parser.rs:282:39 [INFO] [stdout] | [INFO] [stdout] 282 | lex::LexerToken::SingleQuote => self.position = self.position+1, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.position += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/concrete/parser.rs:308:5 [INFO] [stdout] | [INFO] [stdout] 308 | return Some(cst::CstLiteralExpression::from(string_val)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 308 - return Some(cst::CstLiteralExpression::from(string_val)); [INFO] [stdout] 308 + Some(cst::CstLiteralExpression::from(string_val)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/concrete/parser.rs:316:9 [INFO] [stdout] | [INFO] [stdout] 316 | return Some(cst::CstLiteralExpression::from(val)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 316 ~ Some(cst::CstLiteralExpression::from(val)) [INFO] [stdout] 317 | }, [INFO] [stdout] 318 | _ => {return None;} [INFO] [stdout] 319 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/concrete/parser.rs:318:13 [INFO] [stdout] | [INFO] [stdout] 318 | _ => {return None;} [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 318 ~ _ => {None} [INFO] [stdout] 319 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/concrete/parser.rs:326:9 [INFO] [stdout] | [INFO] [stdout] 326 | return Some(cst::CstLiteralExpression::from(val)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 326 ~ Some(cst::CstLiteralExpression::from(val)) [INFO] [stdout] 327 | }, [INFO] [stdout] 328 | _ => {return None;} [INFO] [stdout] 329 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/concrete/parser.rs:328:13 [INFO] [stdout] | [INFO] [stdout] 328 | _ => {return None;} [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 328 ~ _ => {None} [INFO] [stdout] 329 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/concrete/parser.rs:338:5 [INFO] [stdout] | [INFO] [stdout] 338 | return Some(cst::CstPatternNoTopAlt::from(pattern.unwrap())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 338 - return Some(cst::CstPatternNoTopAlt::from(pattern.unwrap())); [INFO] [stdout] 338 + Some(cst::CstPatternNoTopAlt::from(pattern.unwrap())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `identifier_pattern` after checking its variant with `is_none` [INFO] [stdout] --> src/concrete/parser.rs:348:53 [INFO] [stdout] | [INFO] [stdout] 344 | if identifier_pattern.is_none() { [INFO] [stdout] | ------------------------------- help: try: `if let Some() = identifier_pattern` [INFO] [stdout] ... [INFO] [stdout] 348 | return Some(cst::CstPatternWithoutRange::from(identifier_pattern.unwrap())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/concrete/parser.rs:350:5 [INFO] [stdout] | [INFO] [stdout] 350 | return None; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 350 - return None; [INFO] [stdout] 350 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/concrete/parser.rs:365:66 [INFO] [stdout] | [INFO] [stdout] 365 | lex::LexerToken::Identifier(identifier) => { String::clone(&identifier)}, [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `identifier` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/concrete/cst/top_level.rs:52:5 [INFO] [stdout] | [INFO] [stdout] 52 | / match &self.qualifier{ [INFO] [stdout] 53 | | Some(qualifiers) => { [INFO] [stdout] 54 | | if qualifiers.is_const{ [INFO] [stdout] 55 | | println!("Const"); [INFO] [stdout] ... | [INFO] [stdout] 69 | | None => {} [INFO] [stdout] 70 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 52 ~ if let Some(qualifiers) = &self.qualifier { [INFO] [stdout] 53 + if qualifiers.is_const{ [INFO] [stdout] 54 + println!("Const"); [INFO] [stdout] 55 + } [INFO] [stdout] 56 + [INFO] [stdout] 57 + if qualifiers.is_async { [INFO] [stdout] 58 + println!("Async"); [INFO] [stdout] 59 + } [INFO] [stdout] 60 + [INFO] [stdout] 61 + if qualifiers.is_unsafe { [INFO] [stdout] 62 + println!("Unsafe"); [INFO] [stdout] 63 + } [INFO] [stdout] 64 + else{ [INFO] [stdout] 65 + println!("Safe"); [INFO] [stdout] 66 + } [INFO] [stdout] 67 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/concrete/cst/top_level.rs:74:5 [INFO] [stdout] | [INFO] [stdout] 74 | / match &self.block_expression{ [INFO] [stdout] 75 | | Some(blocknode) => { [INFO] [stdout] 76 | | blocknode.print(); [INFO] [stdout] ... | [INFO] [stdout] 79 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 74 ~ if let Some(blocknode) = &self.block_expression { [INFO] [stdout] 75 + blocknode.print(); [INFO] [stdout] 76 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/concrete/cst/expressions.rs:59:5 [INFO] [stdout] | [INFO] [stdout] 59 | / return CstLiteralExpression { [INFO] [stdout] 60 | | literal: LiteralExpressionKind::Char(item) [INFO] [stdout] 61 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 59 ~ CstLiteralExpression { [INFO] [stdout] 60 + literal: LiteralExpressionKind::Char(item) [INFO] [stdout] 61 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/concrete/cst/expressions.rs:67:5 [INFO] [stdout] | [INFO] [stdout] 67 | / return CstLiteralExpression { [INFO] [stdout] 68 | | literal: LiteralExpressionKind::String(item) [INFO] [stdout] 69 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 67 ~ CstLiteralExpression { [INFO] [stdout] 68 + literal: LiteralExpressionKind::String(item) [INFO] [stdout] 69 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/concrete/cst/expressions.rs:75:5 [INFO] [stdout] | [INFO] [stdout] 75 | / return CstLiteralExpression { [INFO] [stdout] 76 | | literal: LiteralExpressionKind::Integral(item) [INFO] [stdout] 77 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 75 ~ CstLiteralExpression { [INFO] [stdout] 76 + literal: LiteralExpressionKind::Integral(item) [INFO] [stdout] 77 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/concrete/cst/expressions.rs:83:5 [INFO] [stdout] | [INFO] [stdout] 83 | / return CstLiteralExpression { [INFO] [stdout] 84 | | literal: LiteralExpressionKind::Float(item) [INFO] [stdout] 85 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 83 ~ CstLiteralExpression { [INFO] [stdout] 84 + literal: LiteralExpressionKind::Float(item) [INFO] [stdout] 85 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/concrete/cst/statement.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 55 | return CstStatement{kind: StatementKind::LetStatement(node)}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 55 - return CstStatement{kind: StatementKind::LetStatement(node)}; [INFO] [stdout] 55 + CstStatement{kind: StatementKind::LetStatement(node)} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/concrete/cst/patterns.rs:49:5 [INFO] [stdout] | [INFO] [stdout] 49 | / match &self.kind{ [INFO] [stdout] 50 | | PatternWithoutRangeKind::IdentifierPattern(node) => {node.print();} [INFO] [stdout] 51 | | _ => {} [INFO] [stdout] 52 | | } [INFO] [stdout] | |_____^ help: try: `if let PatternWithoutRangeKind::IdentifierPattern(node) = &self.kind {node.print();}` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.24s [INFO] running `Command { std: "docker" "inspect" "8df4b241abdd585a58392d8c279220cee9f316ece4e33bacc5daab806ab52d0d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8df4b241abdd585a58392d8c279220cee9f316ece4e33bacc5daab806ab52d0d", kill_on_drop: false }` [INFO] [stdout] 8df4b241abdd585a58392d8c279220cee9f316ece4e33bacc5daab806ab52d0d