[INFO] updating cached repository semrov/ProteusCompiler [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/semrov/ProteusCompiler [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/semrov/ProteusCompiler" "work/ex/clippy-test-run/sources/stable/gh/semrov/ProteusCompiler"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/semrov/ProteusCompiler'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/semrov/ProteusCompiler" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/semrov/ProteusCompiler"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/semrov/ProteusCompiler'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 9583241be95b0ce6772787da308d1cd91caddfaa [INFO] sha for GitHub repo semrov/ProteusCompiler: 9583241be95b0ce6772787da308d1cd91caddfaa [INFO] validating manifest of semrov/ProteusCompiler on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of semrov/ProteusCompiler on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing semrov/ProteusCompiler [INFO] finished frobbing semrov/ProteusCompiler [INFO] frobbed toml for semrov/ProteusCompiler written to work/ex/clippy-test-run/sources/stable/gh/semrov/ProteusCompiler/Cargo.toml [INFO] started frobbing semrov/ProteusCompiler [INFO] finished frobbing semrov/ProteusCompiler [INFO] frobbed toml for semrov/ProteusCompiler written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/semrov/ProteusCompiler/Cargo.toml [INFO] crate semrov/ProteusCompiler has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting semrov/ProteusCompiler against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-7/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/semrov/ProteusCompiler:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 3edbb174e540deb60e2b41923228aae08ab5e19ccf664d8de4a0bfe4775e027f [INFO] running `"docker" "start" "-a" "3edbb174e540deb60e2b41923228aae08ab5e19ccf664d8de4a0bfe4775e027f"` [INFO] [stderr] Checking proteus_compiler v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lexanal/mod.rs:98:13 [INFO] [stderr] | [INFO] [stderr] 98 | reader : reader, [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: replace it with: `reader` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/synanal/parse_error.rs:25:13 [INFO] [stderr] | [INFO] [stderr] 25 | symbol : symbol, [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: replace it with: `symbol` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/synanal/mod.rs:37:13 [INFO] [stderr] | [INFO] [stderr] 37 | lexical_analyser : lexical_analyser, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `lexical_analyser` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/synanal/mod.rs:47:13 [INFO] [stderr] | [INFO] [stderr] 47 | lexical_analyser : lexical_analyser, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `lexical_analyser` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/abstree/abs_expr.rs:29:19 [INFO] [stderr] | [INFO] [stderr] 29 | AbsExprs{exprs : exprs, abs_position : AbsPosition::new()} [INFO] [stderr] | ^^^^^^^^^^^^^ help: replace it with: `exprs` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lexanal/mod.rs:98:13 [INFO] [stderr] | [INFO] [stderr] 98 | reader : reader, [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: replace it with: `reader` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/synanal/parse_error.rs:25:13 [INFO] [stderr] | [INFO] [stderr] 25 | symbol : symbol, [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: replace it with: `symbol` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/synanal/mod.rs:37:13 [INFO] [stderr] | [INFO] [stderr] 37 | lexical_analyser : lexical_analyser, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `lexical_analyser` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/synanal/mod.rs:47:13 [INFO] [stderr] | [INFO] [stderr] 47 | lexical_analyser : lexical_analyser, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `lexical_analyser` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/abstree/abs_expr.rs:29:19 [INFO] [stderr] | [INFO] [stderr] 29 | AbsExprs{exprs : exprs, abs_position : AbsPosition::new()} [INFO] [stderr] | ^^^^^^^^^^^^^ help: replace it with: `exprs` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: All variants have the same postfix: `State` [INFO] [stderr] --> src/lexanal/mod.rs:16:1 [INFO] [stderr] | [INFO] [stderr] 16 | / enum ParserState [INFO] [stderr] 17 | | { [INFO] [stderr] 18 | | InitialState, [INFO] [stderr] 19 | | IdentifierState, [INFO] [stderr] ... | [INFO] [stderr] 28 | | StringEscapeState, [INFO] [stderr] 29 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::enum_variant_names)] on by default [INFO] [stderr] = help: remove the postfixes and use full paths to the variants instead of glob imports [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stderr] [INFO] [stderr] warning: unused import: `abstree::visitor::Visitor` [INFO] [stderr] --> src/synanal/run.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use abstree::visitor::Visitor; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `lexanal::position::Position` [INFO] [stderr] --> src/synanal/mod.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use lexanal::position::Position; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `abstree::abs_position::AbsPosition` [INFO] [stderr] --> src/synanal/mod.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | use abstree::abs_position::AbsPosition; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `abstree::positioner::Positioner` [INFO] [stderr] --> src/synanal/mod.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | use abstree::positioner::Positioner; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/synanal/mod.rs:74:17 [INFO] [stderr] | [INFO] [stderr] 74 | return Ok(Some(expr)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Some(expr))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/synanal/mod.rs:76:46 [INFO] [stderr] | [INFO] [stderr] 76 | Err(ParseError::IoError(ioe)) => return Err(ioe), [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(ioe)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/synanal/mod.rs:329:17 [INFO] [stderr] | [INFO] [stderr] 329 | abs_un_expr [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/synanal/mod.rs:328:35 [INFO] [stderr] | [INFO] [stderr] 328 | let abs_un_expr = Box::new(AbsUnExpr::new(AbsUnOper::ADD,expr)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/synanal/mod.rs:336:17 [INFO] [stderr] | [INFO] [stderr] 336 | abs_un_expr [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/synanal/mod.rs:335:35 [INFO] [stderr] | [INFO] [stderr] 335 | let abs_un_expr = Box::new(AbsUnExpr::new(AbsUnOper::SUB,expr)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/synanal/mod.rs:343:17 [INFO] [stderr] | [INFO] [stderr] 343 | abs_un_expr [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/synanal/mod.rs:342:35 [INFO] [stderr] | [INFO] [stderr] 342 | let abs_un_expr = Box::new(AbsUnExpr::new(AbsUnOper::MUL,expr)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/synanal/mod.rs:350:17 [INFO] [stderr] | [INFO] [stderr] 350 | abs_un_expr [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/synanal/mod.rs:349:35 [INFO] [stderr] | [INFO] [stderr] 349 | let abs_un_expr = Box::new(AbsUnExpr::new(AbsUnOper::AND,expr)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/synanal/mod.rs:357:17 [INFO] [stderr] | [INFO] [stderr] 357 | abs_un_expr [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/synanal/mod.rs:356:35 [INFO] [stderr] | [INFO] [stderr] 356 | let abs_un_expr = Box::new(AbsUnExpr::new(AbsUnOper::NOT,expr)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/synanal/mod.rs:403:25 [INFO] [stderr] | [INFO] [stderr] 403 | abs_fun_call [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/synanal/mod.rs:402:44 [INFO] [stderr] | [INFO] [stderr] 402 | let abs_fun_call = Box::new(AbsFunCall::new(abs_expr_name,*fun_call_params)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/synanal/mod.rs:477:17 [INFO] [stderr] | [INFO] [stderr] 477 | atom_expr [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/synanal/mod.rs:476:33 [INFO] [stderr] | [INFO] [stderr] 476 | let atom_expr = Box::new(AbsAtomExpr::new_with_option(None)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/synanal/mod.rs:505:17 [INFO] [stderr] | [INFO] [stderr] 505 | if_stmt [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/synanal/mod.rs:504:31 [INFO] [stderr] | [INFO] [stderr] 504 | let if_stmt = Box::new(AbsIfStmt::new(cond_expr,then_expr,else_expr)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/synanal/mod.rs:519:17 [INFO] [stderr] | [INFO] [stderr] 519 | for_loop_expr [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/synanal/mod.rs:518:37 [INFO] [stderr] | [INFO] [stderr] 518 | let for_loop_expr = Box::new(AbsForStmt::new(var_name,lower_bound,higher_bound,loop_exprs)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/synanal/mod.rs:529:17 [INFO] [stderr] | [INFO] [stderr] 529 | while_expr [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/synanal/mod.rs:528:34 [INFO] [stderr] | [INFO] [stderr] 528 | let while_expr = Box::new(AbsWhileStmt::new(cond_expr,loop_expr)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/synanal/mod.rs:614:17 [INFO] [stderr] | [INFO] [stderr] 614 | atom_type [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/synanal/mod.rs:613:33 [INFO] [stderr] | [INFO] [stderr] 613 | let atom_type = Box::new(AbsAtomType::new(AtomType::INT,&symbol)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/synanal/mod.rs:620:17 [INFO] [stderr] | [INFO] [stderr] 620 | atom_type [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/synanal/mod.rs:619:33 [INFO] [stderr] | [INFO] [stderr] 619 | let atom_type = Box::new(AbsAtomType::new(AtomType::REAL,&symbol)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/synanal/mod.rs:626:17 [INFO] [stderr] | [INFO] [stderr] 626 | atom_type [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/synanal/mod.rs:625:37 [INFO] [stderr] | [INFO] [stderr] 625 | let mut atom_type = Box::new(AbsAtomType::new(AtomType::BOOL,&symbol)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/synanal/mod.rs:632:17 [INFO] [stderr] | [INFO] [stderr] 632 | atom_type [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/synanal/mod.rs:631:37 [INFO] [stderr] | [INFO] [stderr] 631 | let mut atom_type = Box::new(AbsAtomType::new(AtomType::STRING,&symbol)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/synanal/mod.rs:644:17 [INFO] [stderr] | [INFO] [stderr] 644 | type_name [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/synanal/mod.rs:643:37 [INFO] [stderr] | [INFO] [stderr] 643 | let mut type_name = Box::new(AbsTypeName::new(self.skip(Token::IDENTIFIER)?)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/synanal/mod.rs:652:17 [INFO] [stderr] | [INFO] [stderr] 652 | abs_pointer_type [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/synanal/mod.rs:651:40 [INFO] [stderr] | [INFO] [stderr] 651 | let abs_pointer_type = Box::new(AbsPointerType::new(abs_type,&pointer_symbol)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/synanal/mod.rs:662:17 [INFO] [stderr] | [INFO] [stderr] 662 | array [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/synanal/mod.rs:661:29 [INFO] [stderr] | [INFO] [stderr] 661 | let array = Box::new(AbsArrType::new(arr_type,size_expr,&arr_symbol)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/synanal/mod.rs:671:17 [INFO] [stderr] | [INFO] [stderr] 671 | record [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/synanal/mod.rs:670:34 [INFO] [stderr] | [INFO] [stderr] 670 | let mut record = Box::new(AbsRecType::new(record_compoments,&rec_symbol)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/synanal/mod.rs:730:17 [INFO] [stderr] | [INFO] [stderr] 730 | abs_var_decl [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/synanal/mod.rs:729:36 [INFO] [stderr] | [INFO] [stderr] 729 | let abs_var_decl = Box::new(AbsVarDecl::new(identifier,abs_type)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/synanal/mod.rs:819:21 [INFO] [stderr] | [INFO] [stderr] 819 | None => return Err(ParseError::SyntaxError(SymbolError::new(None))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(ParseError::SyntaxError(SymbolError::new(None)))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused import: `lexanal::symbol::Symbol` [INFO] [stderr] --> src/abstree/positioner.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use lexanal::symbol::Symbol; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `abstree::AbsTree` [INFO] [stderr] --> src/abstree/positioner.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use abstree::AbsTree; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `lexanal::symbol::Symbol` [INFO] [stderr] --> src/abstree/abs_position.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use lexanal::symbol::Symbol; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `abstree::AbsTree` [INFO] [stderr] --> src/abstree/abs_position.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use abstree::AbsTree; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `AbsDecl` [INFO] [stderr] --> src/abstree/abs_expr.rs:3:25 [INFO] [stderr] | [INFO] [stderr] 3 | use abstree::abs_decl::{AbsDecl,AbsDecls}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `lexanal::symbol::Symbol` [INFO] [stderr] --> src/abstree/abs_stmt.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use lexanal::symbol::Symbol; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `lexanal::symbol::Symbol` [INFO] [stderr] --> src/abstree/abs_decl.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use lexanal::symbol::Symbol; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `lexanal::position::Position` [INFO] [stderr] --> src/abstree/print_xml.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use lexanal::position::Position; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: All variants have the same postfix: `State` [INFO] [stderr] --> src/lexanal/mod.rs:16:1 [INFO] [stderr] | [INFO] [stderr] 16 | / enum ParserState [INFO] [stderr] 17 | | { [INFO] [stderr] 18 | | InitialState, [INFO] [stderr] 19 | | IdentifierState, [INFO] [stderr] ... | [INFO] [stderr] 28 | | StringEscapeState, [INFO] [stderr] 29 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::enum_variant_names)] on by default [INFO] [stderr] = help: remove the postfixes and use full paths to the variants instead of glob imports [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stderr] [INFO] [stderr] warning: unused import: `abstree::visitor::Visitor` [INFO] [stderr] --> src/synanal/run.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use abstree::visitor::Visitor; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `lexanal::position::Position` [INFO] [stderr] --> src/synanal/mod.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use lexanal::position::Position; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `abstree::abs_position::AbsPosition` [INFO] [stderr] --> src/synanal/mod.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | use abstree::abs_position::AbsPosition; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `abstree::positioner::Positioner` [INFO] [stderr] --> src/synanal/mod.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | use abstree::positioner::Positioner; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/synanal/mod.rs:74:17 [INFO] [stderr] | [INFO] [stderr] 74 | return Ok(Some(expr)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Some(expr))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/synanal/mod.rs:76:46 [INFO] [stderr] | [INFO] [stderr] 76 | Err(ParseError::IoError(ioe)) => return Err(ioe), [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(ioe)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/synanal/mod.rs:329:17 [INFO] [stderr] | [INFO] [stderr] 329 | abs_un_expr [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/synanal/mod.rs:328:35 [INFO] [stderr] | [INFO] [stderr] 328 | let abs_un_expr = Box::new(AbsUnExpr::new(AbsUnOper::ADD,expr)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/synanal/mod.rs:336:17 [INFO] [stderr] | [INFO] [stderr] 336 | abs_un_expr [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/synanal/mod.rs:335:35 [INFO] [stderr] | [INFO] [stderr] 335 | let abs_un_expr = Box::new(AbsUnExpr::new(AbsUnOper::SUB,expr)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/synanal/mod.rs:343:17 [INFO] [stderr] | [INFO] [stderr] 343 | abs_un_expr [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/synanal/mod.rs:342:35 [INFO] [stderr] | [INFO] [stderr] 342 | let abs_un_expr = Box::new(AbsUnExpr::new(AbsUnOper::MUL,expr)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/synanal/mod.rs:350:17 [INFO] [stderr] | [INFO] [stderr] 350 | abs_un_expr [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/synanal/mod.rs:349:35 [INFO] [stderr] | [INFO] [stderr] 349 | let abs_un_expr = Box::new(AbsUnExpr::new(AbsUnOper::AND,expr)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/synanal/mod.rs:357:17 [INFO] [stderr] | [INFO] [stderr] 357 | abs_un_expr [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/synanal/mod.rs:356:35 [INFO] [stderr] | [INFO] [stderr] 356 | let abs_un_expr = Box::new(AbsUnExpr::new(AbsUnOper::NOT,expr)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/synanal/mod.rs:403:25 [INFO] [stderr] | [INFO] [stderr] 403 | abs_fun_call [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/synanal/mod.rs:402:44 [INFO] [stderr] | [INFO] [stderr] 402 | let abs_fun_call = Box::new(AbsFunCall::new(abs_expr_name,*fun_call_params)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/synanal/mod.rs:477:17 [INFO] [stderr] | [INFO] [stderr] 477 | atom_expr [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/synanal/mod.rs:476:33 [INFO] [stderr] | [INFO] [stderr] 476 | let atom_expr = Box::new(AbsAtomExpr::new_with_option(None)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/synanal/mod.rs:505:17 [INFO] [stderr] | [INFO] [stderr] 505 | if_stmt [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/synanal/mod.rs:504:31 [INFO] [stderr] | [INFO] [stderr] 504 | let if_stmt = Box::new(AbsIfStmt::new(cond_expr,then_expr,else_expr)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/synanal/mod.rs:519:17 [INFO] [stderr] | [INFO] [stderr] 519 | for_loop_expr [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/synanal/mod.rs:518:37 [INFO] [stderr] | [INFO] [stderr] 518 | let for_loop_expr = Box::new(AbsForStmt::new(var_name,lower_bound,higher_bound,loop_exprs)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/synanal/mod.rs:529:17 [INFO] [stderr] | [INFO] [stderr] 529 | while_expr [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/synanal/mod.rs:528:34 [INFO] [stderr] | [INFO] [stderr] 528 | let while_expr = Box::new(AbsWhileStmt::new(cond_expr,loop_expr)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/synanal/mod.rs:614:17 [INFO] [stderr] | [INFO] [stderr] 614 | atom_type [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/synanal/mod.rs:613:33 [INFO] [stderr] | [INFO] [stderr] 613 | let atom_type = Box::new(AbsAtomType::new(AtomType::INT,&symbol)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/synanal/mod.rs:620:17 [INFO] [stderr] | [INFO] [stderr] 620 | atom_type [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/synanal/mod.rs:619:33 [INFO] [stderr] | [INFO] [stderr] 619 | let atom_type = Box::new(AbsAtomType::new(AtomType::REAL,&symbol)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/synanal/mod.rs:626:17 [INFO] [stderr] | [INFO] [stderr] 626 | atom_type [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/synanal/mod.rs:625:37 [INFO] [stderr] | [INFO] [stderr] 625 | let mut atom_type = Box::new(AbsAtomType::new(AtomType::BOOL,&symbol)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/synanal/mod.rs:632:17 [INFO] [stderr] | [INFO] [stderr] 632 | atom_type [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/synanal/mod.rs:631:37 [INFO] [stderr] | [INFO] [stderr] 631 | let mut atom_type = Box::new(AbsAtomType::new(AtomType::STRING,&symbol)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/synanal/mod.rs:644:17 [INFO] [stderr] | [INFO] [stderr] 644 | type_name [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/synanal/mod.rs:643:37 [INFO] [stderr] | [INFO] [stderr] 643 | let mut type_name = Box::new(AbsTypeName::new(self.skip(Token::IDENTIFIER)?)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/synanal/mod.rs:652:17 [INFO] [stderr] | [INFO] [stderr] 652 | abs_pointer_type [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/synanal/mod.rs:651:40 [INFO] [stderr] | [INFO] [stderr] 651 | let abs_pointer_type = Box::new(AbsPointerType::new(abs_type,&pointer_symbol)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/synanal/mod.rs:662:17 [INFO] [stderr] | [INFO] [stderr] 662 | array [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/synanal/mod.rs:661:29 [INFO] [stderr] | [INFO] [stderr] 661 | let array = Box::new(AbsArrType::new(arr_type,size_expr,&arr_symbol)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/synanal/mod.rs:671:17 [INFO] [stderr] | [INFO] [stderr] 671 | record [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/synanal/mod.rs:670:34 [INFO] [stderr] | [INFO] [stderr] 670 | let mut record = Box::new(AbsRecType::new(record_compoments,&rec_symbol)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/synanal/mod.rs:730:17 [INFO] [stderr] | [INFO] [stderr] 730 | abs_var_decl [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/synanal/mod.rs:729:36 [INFO] [stderr] | [INFO] [stderr] 729 | let abs_var_decl = Box::new(AbsVarDecl::new(identifier,abs_type)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/synanal/mod.rs:819:21 [INFO] [stderr] | [INFO] [stderr] 819 | None => return Err(ParseError::SyntaxError(SymbolError::new(None))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(ParseError::SyntaxError(SymbolError::new(None)))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused import: `lexanal::symbol::Symbol` [INFO] [stderr] --> src/abstree/positioner.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use lexanal::symbol::Symbol; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `abstree::AbsTree` [INFO] [stderr] --> src/abstree/positioner.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use abstree::AbsTree; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `lexanal::symbol::Symbol` [INFO] [stderr] --> src/abstree/abs_position.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use lexanal::symbol::Symbol; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `abstree::AbsTree` [INFO] [stderr] --> src/abstree/abs_position.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use abstree::AbsTree; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `AbsDecl` [INFO] [stderr] --> src/abstree/abs_expr.rs:3:25 [INFO] [stderr] | [INFO] [stderr] 3 | use abstree::abs_decl::{AbsDecl,AbsDecls}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `lexanal::symbol::Symbol` [INFO] [stderr] --> src/abstree/abs_stmt.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use lexanal::symbol::Symbol; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `lexanal::symbol::Symbol` [INFO] [stderr] --> src/abstree/abs_decl.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use lexanal::symbol::Symbol; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `lexanal::position::Position` [INFO] [stderr] --> src/abstree/print_xml.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use lexanal::position::Position; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `fun_symbol` [INFO] [stderr] --> src/synanal/mod.rs:744:13 [INFO] [stderr] | [INFO] [stderr] 744 | let fun_symbol = self.skip(Token::FUN)?; [INFO] [stderr] | ^^^^^^^^^^ help: consider using `_fun_symbol` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `var_symbol` [INFO] [stderr] --> src/synanal/mod.rs:803:13 [INFO] [stderr] | [INFO] [stderr] 803 | let var_symbol = self.skip(Token::VAR)?; [INFO] [stderr] | ^^^^^^^^^^ help: consider using `_var_symbol` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `fun_symbol` [INFO] [stderr] --> src/synanal/mod.rs:744:13 [INFO] [stderr] | [INFO] [stderr] 744 | let fun_symbol = self.skip(Token::FUN)?; [INFO] [stderr] | ^^^^^^^^^^ help: consider using `_fun_symbol` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `var_symbol` [INFO] [stderr] --> src/synanal/mod.rs:803:13 [INFO] [stderr] | [INFO] [stderr] 803 | let var_symbol = self.skip(Token::VAR)?; [INFO] [stderr] | ^^^^^^^^^^ help: consider using `_var_symbol` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/synanal/run.rs:14:9 [INFO] [stderr] | [INFO] [stderr] 14 | let mut abstree_xml_creator : ProteusXmlCreator = match ProteusXmlCreator::open(String::from_str("abstree").unwrap()) { [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/synanal/run.rs:22:9 [INFO] [stderr] | [INFO] [stderr] 22 | let mut lexical_analyser = match LexicalAnalyzer::new(program_name) [INFO] [stderr] | ----^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/synanal/run.rs:14:9 [INFO] [stderr] | [INFO] [stderr] 14 | let mut abstree_xml_creator : ProteusXmlCreator = match ProteusXmlCreator::open(String::from_str("abstree").unwrap()) { [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/synanal/run.rs:22:9 [INFO] [stderr] | [INFO] [stderr] 22 | let mut lexical_analyser = match LexicalAnalyzer::new(program_name) [INFO] [stderr] | ----^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 28 [INFO] [stderr] --> src/lexanal/mod.rs:136:6 [INFO] [stderr] | [INFO] [stderr] 136 | / pub fn get_next_symbol(&mut self) -> Result, io::Error> [INFO] [stderr] 137 | | { [INFO] [stderr] 138 | | let mut state : ParserState = ParserState::InitialState; [INFO] [stderr] 139 | | let mut literal = String::new(); [INFO] [stderr] ... | [INFO] [stderr] 418 | | } [INFO] [stderr] 419 | | } [INFO] [stderr] | |______^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/lexanal/mod.rs:398:62 [INFO] [stderr] | [INFO] [stderr] 398 | None => report::error_at_position(&format!("Error: End of file occured, but string not closed!"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Error: End of file occured, but string not closed!".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 28 [INFO] [stderr] --> src/lexanal/mod.rs:136:6 [INFO] [stderr] | [INFO] [stderr] 136 | / pub fn get_next_symbol(&mut self) -> Result, io::Error> [INFO] [stderr] 137 | | { [INFO] [stderr] 138 | | let mut state : ParserState = ParserState::InitialState; [INFO] [stderr] 139 | | let mut literal = String::new(); [INFO] [stderr] ... | [INFO] [stderr] 418 | | } [INFO] [stderr] 419 | | } [INFO] [stderr] | |______^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/synanal/parse_error.rs:23:25 [INFO] [stderr] | [INFO] [stderr] 23 | None => format!("End of stream error!"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"End of stream error!".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/synanal/mod.rs:123:9 [INFO] [stderr] | [INFO] [stderr] 123 | / match self.symbol.as_ref().map(|symbol| symbol.get_token()) [INFO] [stderr] 124 | | { [INFO] [stderr] 125 | | Some(Token::COMMA) => [INFO] [stderr] 126 | | { [INFO] [stderr] ... | [INFO] [stderr] 131 | | _ => {}, [INFO] [stderr] 132 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 123 | if let Some(Token::COMMA) = self.symbol.as_ref().map(|symbol| symbol.get_token()) { [INFO] [stderr] 124 | self.skip(Token::COMMA)?; [INFO] [stderr] 125 | abs_exprs.exprs.push(self.parse_expression()?); [INFO] [stderr] 126 | abs_exprs = self.parse_expressions_rest(abs_exprs)?; [INFO] [stderr] 127 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/lexanal/mod.rs:398:62 [INFO] [stderr] | [INFO] [stderr] 398 | None => report::error_at_position(&format!("Error: End of file occured, but string not closed!"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Error: End of file occured, but string not closed!".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/synanal/mod.rs:150:9 [INFO] [stderr] | [INFO] [stderr] 150 | / match self.symbol.as_ref().map(|symbol| symbol.get_token()) [INFO] [stderr] 151 | | { [INFO] [stderr] 152 | | Some(Token::OR) => [INFO] [stderr] 153 | | { [INFO] [stderr] ... | [INFO] [stderr] 159 | | _ => {}, [INFO] [stderr] 160 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 150 | if let Some(Token::OR) = self.symbol.as_ref().map(|symbol| symbol.get_token()) { [INFO] [stderr] 151 | self.skip(Token::OR)?; [INFO] [stderr] 152 | let abs_right_expr = self.parse_and_expression()?; [INFO] [stderr] 153 | let abs_bin_expr = Box::new(AbsBinExpr::new(AbsBinOper::OR,abs_expr,abs_right_expr)); [INFO] [stderr] 154 | abs_expr = self.parse_or_expression_rest(abs_bin_expr)?; [INFO] [stderr] 155 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/synanal/parse_error.rs:23:25 [INFO] [stderr] | [INFO] [stderr] 23 | None => format!("End of stream error!"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"End of stream error!".to_string()` [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/synanal/mod.rs:178:10 [INFO] [stderr] | [INFO] [stderr] 178 | / match self.symbol.as_ref().map(|symbol| symbol.get_token()) [INFO] [stderr] 179 | | { [INFO] [stderr] 180 | | Some(Token::AND) => [INFO] [stderr] 181 | | { [INFO] [stderr] ... | [INFO] [stderr] 187 | | _ => {}, [INFO] [stderr] 188 | | } [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 178 | if let Some(Token::AND) = self.symbol.as_ref().map(|symbol| symbol.get_token()) { [INFO] [stderr] 179 | self.skip(Token::AND)?; [INFO] [stderr] 180 | let rel_expr = self.parse_relational_expression()?; [INFO] [stderr] 181 | let abs_bin_expr = Box::new(AbsBinExpr::new(AbsBinOper::AND,abs_expr,rel_expr)); [INFO] [stderr] 182 | abs_expr = self.parse_and_expression_rest(abs_bin_expr)?; [INFO] [stderr] 183 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/synanal/mod.rs:123:9 [INFO] [stderr] | [INFO] [stderr] 123 | / match self.symbol.as_ref().map(|symbol| symbol.get_token()) [INFO] [stderr] 124 | | { [INFO] [stderr] 125 | | Some(Token::COMMA) => [INFO] [stderr] 126 | | { [INFO] [stderr] ... | [INFO] [stderr] 131 | | _ => {}, [INFO] [stderr] 132 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 123 | if let Some(Token::COMMA) = self.symbol.as_ref().map(|symbol| symbol.get_token()) { [INFO] [stderr] 124 | self.skip(Token::COMMA)?; [INFO] [stderr] 125 | abs_exprs.exprs.push(self.parse_expression()?); [INFO] [stderr] 126 | abs_exprs = self.parse_expressions_rest(abs_exprs)?; [INFO] [stderr] 127 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/synanal/mod.rs:150:9 [INFO] [stderr] | [INFO] [stderr] 150 | / match self.symbol.as_ref().map(|symbol| symbol.get_token()) [INFO] [stderr] 151 | | { [INFO] [stderr] 152 | | Some(Token::OR) => [INFO] [stderr] 153 | | { [INFO] [stderr] ... | [INFO] [stderr] 159 | | _ => {}, [INFO] [stderr] 160 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 150 | if let Some(Token::OR) = self.symbol.as_ref().map(|symbol| symbol.get_token()) { [INFO] [stderr] 151 | self.skip(Token::OR)?; [INFO] [stderr] 152 | let abs_right_expr = self.parse_and_expression()?; [INFO] [stderr] 153 | let abs_bin_expr = Box::new(AbsBinExpr::new(AbsBinOper::OR,abs_expr,abs_right_expr)); [INFO] [stderr] 154 | abs_expr = self.parse_or_expression_rest(abs_bin_expr)?; [INFO] [stderr] 155 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/synanal/mod.rs:178:10 [INFO] [stderr] | [INFO] [stderr] 178 | / match self.symbol.as_ref().map(|symbol| symbol.get_token()) [INFO] [stderr] 179 | | { [INFO] [stderr] 180 | | Some(Token::AND) => [INFO] [stderr] 181 | | { [INFO] [stderr] ... | [INFO] [stderr] 187 | | _ => {}, [INFO] [stderr] 188 | | } [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 178 | if let Some(Token::AND) = self.symbol.as_ref().map(|symbol| symbol.get_token()) { [INFO] [stderr] 179 | self.skip(Token::AND)?; [INFO] [stderr] 180 | let rel_expr = self.parse_relational_expression()?; [INFO] [stderr] 181 | let abs_bin_expr = Box::new(AbsBinExpr::new(AbsBinOper::AND,abs_expr,rel_expr)); [INFO] [stderr] 182 | abs_expr = self.parse_and_expression_rest(abs_bin_expr)?; [INFO] [stderr] 183 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/synanal/mod.rs:704:9 [INFO] [stderr] | [INFO] [stderr] 704 | / match self.symbol.as_ref().map(|symbol| symbol.get_token()) [INFO] [stderr] 705 | | { [INFO] [stderr] 706 | | Some(Token::COMMA) => [INFO] [stderr] 707 | | { [INFO] [stderr] ... | [INFO] [stderr] 713 | | _ => {}, [INFO] [stderr] 714 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 704 | if let Some(Token::COMMA) = self.symbol.as_ref().map(|symbol| symbol.get_token()) { [INFO] [stderr] 705 | self.skip(Token::COMMA)?; [INFO] [stderr] 706 | let compoment = self.parse_record_compoment()?; [INFO] [stderr] 707 | abs_decls.decls.push(compoment); [INFO] [stderr] 708 | self.parse_record_compoments_rest(abs_decls)?; [INFO] [stderr] 709 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/synanal/mod.rs:785:9 [INFO] [stderr] | [INFO] [stderr] 785 | / match self.symbol.as_ref().map(|symbol| symbol.get_token()) [INFO] [stderr] 786 | | { [INFO] [stderr] 787 | | Some(Token::COMMA) => [INFO] [stderr] 788 | | { [INFO] [stderr] ... | [INFO] [stderr] 794 | | _ => {}, //return Err(ParseError::SyntaxError(SymbolError::new(self.symbol.take()))), [INFO] [stderr] 795 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 785 | if let Some(Token::COMMA) = self.symbol.as_ref().map(|symbol| symbol.get_token()) { [INFO] [stderr] 786 | self.skip(Token::COMMA)?; [INFO] [stderr] 787 | let arg = self.parse_function_parameter()?; [INFO] [stderr] 788 | params.decls.push(arg); [INFO] [stderr] 789 | self.parse_function_parameters_rest(params)?; [INFO] [stderr] 790 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/synanal/mod.rs:823:18 [INFO] [stderr] | [INFO] [stderr] 823 | self.xml_creator.as_mut().map(|xml| symbol.to_xml(xml)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(xml) = self.xml_creator.as_mut() { symbol.to_xml(xml) }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_map_unit_fn)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/synanal/mod.rs:832:9 [INFO] [stderr] | [INFO] [stderr] 832 | / match self.xml_creator [INFO] [stderr] 833 | | { [INFO] [stderr] 834 | | Some(ref mut xml) => [INFO] [stderr] 835 | | { [INFO] [stderr] ... | [INFO] [stderr] 840 | | None => {}, [INFO] [stderr] 841 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 832 | if let Some(ref mut xml) = self.xml_creator { [INFO] [stderr] 833 | writeln!(xml, "").unwrap(); [INFO] [stderr] 834 | writeln!(xml, "", nontermial).unwrap(); [INFO] [stderr] 835 | writeln!(xml, "").unwrap(); [INFO] [stderr] 836 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/synanal/mod.rs:846:9 [INFO] [stderr] | [INFO] [stderr] 846 | / match self.xml_creator [INFO] [stderr] 847 | | { [INFO] [stderr] 848 | | Some(ref mut xml) => [INFO] [stderr] 849 | | { [INFO] [stderr] ... | [INFO] [stderr] 853 | | None => {}, [INFO] [stderr] 854 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 846 | if let Some(ref mut xml) = self.xml_creator { [INFO] [stderr] 847 | writeln!(xml, "").unwrap(); [INFO] [stderr] 848 | writeln!(xml, "").unwrap(); [INFO] [stderr] 849 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/report.rs:20:9 [INFO] [stderr] | [INFO] [stderr] 20 | / match self { [INFO] [stderr] 21 | | &ExitCode::LexicalAnalyzerIlegallChar => writeln!(f, "LexicalAnalyzerIlegallChar"), [INFO] [stderr] 22 | | &ExitCode::SyntaxAnalyzerSyntaxError => writeln!(f, "SyntaxAnalyzerSyntaxError"), [INFO] [stderr] 23 | | &ExitCode::SyntaxAnalyzerUnexpectedEndOfStream => writeln!(f, "SyntaxAnalyzerUnexpectedEndOfStream"), [INFO] [stderr] 24 | | &ExitCode::AbstractSyntaxTreeInvalidExpression => writeln!(f, "AbstractSyntaxTreeInvalidExpression"), [INFO] [stderr] 25 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 20 | match *self { [INFO] [stderr] 21 | ExitCode::LexicalAnalyzerIlegallChar => writeln!(f, "LexicalAnalyzerIlegallChar"), [INFO] [stderr] 22 | ExitCode::SyntaxAnalyzerSyntaxError => writeln!(f, "SyntaxAnalyzerSyntaxError"), [INFO] [stderr] 23 | ExitCode::SyntaxAnalyzerUnexpectedEndOfStream => writeln!(f, "SyntaxAnalyzerUnexpectedEndOfStream"), [INFO] [stderr] 24 | ExitCode::AbstractSyntaxTreeInvalidExpression => writeln!(f, "AbstractSyntaxTreeInvalidExpression"), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `writeln!(stderr(), ...).unwrap()`. Consider using `eprintln!` instead [INFO] [stderr] --> src/report.rs:33:5 [INFO] [stderr] | [INFO] [stderr] 33 | writeln!(stderr(), ":-o {}",msg).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::explicit_write)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_write [INFO] [stderr] [INFO] [stderr] warning: use of `writeln!(stderr(), ...).unwrap()`. Consider using `eprintln!` instead [INFO] [stderr] --> src/report.rs:40:5 [INFO] [stderr] | [INFO] [stderr] 40 | writeln!(stderr(), ":-o {} {}", position, msg).unwrap() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_write [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `abstree::abs_position::AbsPosition` [INFO] [stderr] --> src/abstree/abs_position.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | pub fn new() -> AbsPosition { AbsPosition {position : None} } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 6 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/abstree/abs_position.rs:35:9 [INFO] [stderr] | [INFO] [stderr] 35 | / match self.position [INFO] [stderr] 36 | | { [INFO] [stderr] 37 | | Some(ref mut pos) => [INFO] [stderr] 38 | | { [INFO] [stderr] ... | [INFO] [stderr] 42 | | None => {}, [INFO] [stderr] 43 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 35 | if let Some(ref mut pos) = self.position { [INFO] [stderr] 36 | pos.set_min(position); [INFO] [stderr] 37 | return; [INFO] [stderr] 38 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/abstree/abs_position.rs:49:9 [INFO] [stderr] | [INFO] [stderr] 49 | / match self.position [INFO] [stderr] 50 | | { [INFO] [stderr] 51 | | Some(ref mut pos) => [INFO] [stderr] 52 | | { [INFO] [stderr] ... | [INFO] [stderr] 56 | | None => {}, [INFO] [stderr] 57 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 49 | if let Some(ref mut pos) = self.position { [INFO] [stderr] 50 | pos.set_max(position); [INFO] [stderr] 51 | return; [INFO] [stderr] 52 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `abstree::abs_expr::AbsExprs` [INFO] [stderr] --> src/abstree/abs_expr.rs:23:5 [INFO] [stderr] | [INFO] [stderr] 23 | / pub fn new() -> Self [INFO] [stderr] 24 | | { [INFO] [stderr] 25 | | AbsExprs{exprs : Vec::new(), abs_position : AbsPosition::new()} [INFO] [stderr] 26 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 21 | impl Default for abstree::abs_expr::AbsExprs { [INFO] [stderr] 22 | fn default() -> Self { [INFO] [stderr] 23 | Self::new() [INFO] [stderr] 24 | } [INFO] [stderr] 25 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `abstree::abs_decl::AbsDecls` [INFO] [stderr] --> src/abstree/abs_decl.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | / pub fn new() -> AbsDecls [INFO] [stderr] 21 | | { [INFO] [stderr] 22 | | AbsDecls{decls : Vec::new(), abs_position : AbsPosition::new()} [INFO] [stderr] 23 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 19 | impl Default for abstree::abs_decl::AbsDecls { [INFO] [stderr] 20 | fn default() -> Self { [INFO] [stderr] 21 | Self::new() [INFO] [stderr] 22 | } [INFO] [stderr] 23 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/abstree/print_xml.rs:31:9 [INFO] [stderr] | [INFO] [stderr] 31 | acceptor.get_position_ref().map(|position| position.to_xml(&mut self.xml)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(position) = acceptor.get_position_ref() { position.to_xml(&mut self.xml) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/abstree/print_xml.rs:39:9 [INFO] [stderr] | [INFO] [stderr] 39 | acceptor.get_position_ref().map(|position| position.to_xml(&mut self.xml)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(position) = acceptor.get_position_ref() { position.to_xml(&mut self.xml) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/abstree/print_xml.rs:47:9 [INFO] [stderr] | [INFO] [stderr] 47 | acceptor.get_position_ref().map(|position| position.to_xml(&mut self.xml)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(position) = acceptor.get_position_ref() { position.to_xml(&mut self.xml) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/abstree/print_xml.rs:48:9 [INFO] [stderr] | [INFO] [stderr] 48 | acceptor.expr.as_ref().map(|expr| expr.to_xml(&mut self.xml)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(expr) = acceptor.expr.as_ref() { expr.to_xml(&mut self.xml) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/abstree/print_xml.rs:62:9 [INFO] [stderr] | [INFO] [stderr] 62 | acceptor.get_position_ref().map(|position| position.to_xml(&mut self.xml)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(position) = acceptor.get_position_ref() { position.to_xml(&mut self.xml) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/abstree/print_xml.rs:86:9 [INFO] [stderr] | [INFO] [stderr] 86 | acceptor.get_position_ref().map(|position| position.to_xml(&mut self.xml)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(position) = acceptor.get_position_ref() { position.to_xml(&mut self.xml) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/abstree/print_xml.rs:94:9 [INFO] [stderr] | [INFO] [stderr] 94 | acceptor.get_position_ref().map(|position| position.to_xml(&mut self.xml)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(position) = acceptor.get_position_ref() { position.to_xml(&mut self.xml) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/abstree/print_xml.rs:101:9 [INFO] [stderr] | [INFO] [stderr] 101 | acceptor.get_position_ref().map(|position| position.to_xml(&mut self.xml)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(position) = acceptor.get_position_ref() { position.to_xml(&mut self.xml) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/abstree/print_xml.rs:108:9 [INFO] [stderr] | [INFO] [stderr] 108 | acceptor.get_position_ref().map(|position| position.to_xml(&mut self.xml)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(position) = acceptor.get_position_ref() { position.to_xml(&mut self.xml) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/abstree/print_xml.rs:115:9 [INFO] [stderr] | [INFO] [stderr] 115 | acceptor.get_position_ref().map(|position| position.to_xml(&mut self.xml)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(position) = acceptor.get_position_ref() { position.to_xml(&mut self.xml) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/abstree/print_xml.rs:125:9 [INFO] [stderr] | [INFO] [stderr] 125 | acceptor.get_position_ref().map(|position| position.to_xml(&mut self.xml)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(position) = acceptor.get_position_ref() { position.to_xml(&mut self.xml) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/abstree/print_xml.rs:133:9 [INFO] [stderr] | [INFO] [stderr] 133 | acceptor.get_position_ref().map(|position| position.to_xml(&mut self.xml)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(position) = acceptor.get_position_ref() { position.to_xml(&mut self.xml) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/abstree/print_xml.rs:143:9 [INFO] [stderr] | [INFO] [stderr] 143 | acceptor.get_position_ref().map(|position| position.to_xml(&mut self.xml)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(position) = acceptor.get_position_ref() { position.to_xml(&mut self.xml) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/abstree/print_xml.rs:146:9 [INFO] [stderr] | [INFO] [stderr] 146 | acceptor.else_expr.as_ref().map(|expr| expr.accept(self)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(expr) = acceptor.else_expr.as_ref() { expr.accept(self) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/abstree/print_xml.rs:152:9 [INFO] [stderr] | [INFO] [stderr] 152 | acceptor.get_position_ref().map(|position| position.to_xml(&mut self.xml)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(position) = acceptor.get_position_ref() { position.to_xml(&mut self.xml) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/abstree/print_xml.rs:159:9 [INFO] [stderr] | [INFO] [stderr] 159 | acceptor.get_position_ref().map(|position| position.to_xml(&mut self.xml)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(position) = acceptor.get_position_ref() { position.to_xml(&mut self.xml) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/abstree/print_xml.rs:166:9 [INFO] [stderr] | [INFO] [stderr] 166 | acceptor.get_position_ref().map(|position| position.to_xml(&mut self.xml)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(position) = acceptor.get_position_ref() { position.to_xml(&mut self.xml) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/abstree/print_xml.rs:174:9 [INFO] [stderr] | [INFO] [stderr] 174 | acceptor.get_position_ref().map(|position| position.to_xml(&mut self.xml)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(position) = acceptor.get_position_ref() { position.to_xml(&mut self.xml) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/abstree/print_xml.rs:188:9 [INFO] [stderr] | [INFO] [stderr] 188 | acceptor.get_position_ref().map(|position| position.to_xml(&mut self.xml)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(position) = acceptor.get_position_ref() { position.to_xml(&mut self.xml) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/abstree/print_xml.rs:195:9 [INFO] [stderr] | [INFO] [stderr] 195 | acceptor.get_position_ref().map(|position| position.to_xml(&mut self.xml)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(position) = acceptor.get_position_ref() { position.to_xml(&mut self.xml) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/abstree/print_xml.rs:203:9 [INFO] [stderr] | [INFO] [stderr] 203 | acceptor.get_position_ref().map(|position| position.to_xml(&mut self.xml)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(position) = acceptor.get_position_ref() { position.to_xml(&mut self.xml) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/abstree/print_xml.rs:211:9 [INFO] [stderr] | [INFO] [stderr] 211 | acceptor.get_position_ref().map(|position| position.to_xml(&mut self.xml)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(position) = acceptor.get_position_ref() { position.to_xml(&mut self.xml) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/synanal/mod.rs:704:9 [INFO] [stderr] | [INFO] [stderr] 704 | / match self.symbol.as_ref().map(|symbol| symbol.get_token()) [INFO] [stderr] 705 | | { [INFO] [stderr] 706 | | Some(Token::COMMA) => [INFO] [stderr] 707 | | { [INFO] [stderr] ... | [INFO] [stderr] 713 | | _ => {}, [INFO] [stderr] 714 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 704 | if let Some(Token::COMMA) = self.symbol.as_ref().map(|symbol| symbol.get_token()) { [INFO] [stderr] 705 | self.skip(Token::COMMA)?; [INFO] [stderr] 706 | let compoment = self.parse_record_compoment()?; [INFO] [stderr] 707 | abs_decls.decls.push(compoment); [INFO] [stderr] 708 | self.parse_record_compoments_rest(abs_decls)?; [INFO] [stderr] 709 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/synanal/mod.rs:785:9 [INFO] [stderr] | [INFO] [stderr] 785 | / match self.symbol.as_ref().map(|symbol| symbol.get_token()) [INFO] [stderr] 786 | | { [INFO] [stderr] 787 | | Some(Token::COMMA) => [INFO] [stderr] 788 | | { [INFO] [stderr] ... | [INFO] [stderr] 794 | | _ => {}, //return Err(ParseError::SyntaxError(SymbolError::new(self.symbol.take()))), [INFO] [stderr] 795 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 785 | if let Some(Token::COMMA) = self.symbol.as_ref().map(|symbol| symbol.get_token()) { [INFO] [stderr] 786 | self.skip(Token::COMMA)?; [INFO] [stderr] 787 | let arg = self.parse_function_parameter()?; [INFO] [stderr] 788 | params.decls.push(arg); [INFO] [stderr] 789 | self.parse_function_parameters_rest(params)?; [INFO] [stderr] 790 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/synanal/mod.rs:823:18 [INFO] [stderr] | [INFO] [stderr] 823 | self.xml_creator.as_mut().map(|xml| symbol.to_xml(xml)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(xml) = self.xml_creator.as_mut() { symbol.to_xml(xml) }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_map_unit_fn)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/synanal/mod.rs:832:9 [INFO] [stderr] | [INFO] [stderr] 832 | / match self.xml_creator [INFO] [stderr] 833 | | { [INFO] [stderr] 834 | | Some(ref mut xml) => [INFO] [stderr] 835 | | { [INFO] [stderr] ... | [INFO] [stderr] 840 | | None => {}, [INFO] [stderr] 841 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 832 | if let Some(ref mut xml) = self.xml_creator { [INFO] [stderr] 833 | writeln!(xml, "").unwrap(); [INFO] [stderr] 834 | writeln!(xml, "", nontermial).unwrap(); [INFO] [stderr] 835 | writeln!(xml, "").unwrap(); [INFO] [stderr] 836 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/synanal/mod.rs:846:9 [INFO] [stderr] | [INFO] [stderr] 846 | / match self.xml_creator [INFO] [stderr] 847 | | { [INFO] [stderr] 848 | | Some(ref mut xml) => [INFO] [stderr] 849 | | { [INFO] [stderr] ... | [INFO] [stderr] 853 | | None => {}, [INFO] [stderr] 854 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 846 | if let Some(ref mut xml) = self.xml_creator { [INFO] [stderr] 847 | writeln!(xml, "").unwrap(); [INFO] [stderr] 848 | writeln!(xml, "").unwrap(); [INFO] [stderr] 849 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/report.rs:20:9 [INFO] [stderr] | [INFO] [stderr] 20 | / match self { [INFO] [stderr] 21 | | &ExitCode::LexicalAnalyzerIlegallChar => writeln!(f, "LexicalAnalyzerIlegallChar"), [INFO] [stderr] 22 | | &ExitCode::SyntaxAnalyzerSyntaxError => writeln!(f, "SyntaxAnalyzerSyntaxError"), [INFO] [stderr] 23 | | &ExitCode::SyntaxAnalyzerUnexpectedEndOfStream => writeln!(f, "SyntaxAnalyzerUnexpectedEndOfStream"), [INFO] [stderr] 24 | | &ExitCode::AbstractSyntaxTreeInvalidExpression => writeln!(f, "AbstractSyntaxTreeInvalidExpression"), [INFO] [stderr] 25 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 20 | match *self { [INFO] [stderr] 21 | ExitCode::LexicalAnalyzerIlegallChar => writeln!(f, "LexicalAnalyzerIlegallChar"), [INFO] [stderr] 22 | ExitCode::SyntaxAnalyzerSyntaxError => writeln!(f, "SyntaxAnalyzerSyntaxError"), [INFO] [stderr] 23 | ExitCode::SyntaxAnalyzerUnexpectedEndOfStream => writeln!(f, "SyntaxAnalyzerUnexpectedEndOfStream"), [INFO] [stderr] 24 | ExitCode::AbstractSyntaxTreeInvalidExpression => writeln!(f, "AbstractSyntaxTreeInvalidExpression"), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `writeln!(stderr(), ...).unwrap()`. Consider using `eprintln!` instead [INFO] [stderr] --> src/report.rs:33:5 [INFO] [stderr] | [INFO] [stderr] 33 | writeln!(stderr(), ":-o {}",msg).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::explicit_write)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_write [INFO] [stderr] [INFO] [stderr] warning: use of `writeln!(stderr(), ...).unwrap()`. Consider using `eprintln!` instead [INFO] [stderr] --> src/report.rs:40:5 [INFO] [stderr] | [INFO] [stderr] 40 | writeln!(stderr(), ":-o {} {}", position, msg).unwrap() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_write [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `abstree::abs_position::AbsPosition` [INFO] [stderr] --> src/abstree/abs_position.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | pub fn new() -> AbsPosition { AbsPosition {position : None} } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 6 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/abstree/abs_position.rs:35:9 [INFO] [stderr] | [INFO] [stderr] 35 | / match self.position [INFO] [stderr] 36 | | { [INFO] [stderr] 37 | | Some(ref mut pos) => [INFO] [stderr] 38 | | { [INFO] [stderr] ... | [INFO] [stderr] 42 | | None => {}, [INFO] [stderr] 43 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 35 | if let Some(ref mut pos) = self.position { [INFO] [stderr] 36 | pos.set_min(position); [INFO] [stderr] 37 | return; [INFO] [stderr] 38 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/abstree/abs_position.rs:49:9 [INFO] [stderr] | [INFO] [stderr] 49 | / match self.position [INFO] [stderr] 50 | | { [INFO] [stderr] 51 | | Some(ref mut pos) => [INFO] [stderr] 52 | | { [INFO] [stderr] ... | [INFO] [stderr] 56 | | None => {}, [INFO] [stderr] 57 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 49 | if let Some(ref mut pos) = self.position { [INFO] [stderr] 50 | pos.set_max(position); [INFO] [stderr] 51 | return; [INFO] [stderr] 52 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `abstree::abs_expr::AbsExprs` [INFO] [stderr] --> src/abstree/abs_expr.rs:23:5 [INFO] [stderr] | [INFO] [stderr] 23 | / pub fn new() -> Self [INFO] [stderr] 24 | | { [INFO] [stderr] 25 | | AbsExprs{exprs : Vec::new(), abs_position : AbsPosition::new()} [INFO] [stderr] 26 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 21 | impl Default for abstree::abs_expr::AbsExprs { [INFO] [stderr] 22 | fn default() -> Self { [INFO] [stderr] 23 | Self::new() [INFO] [stderr] 24 | } [INFO] [stderr] 25 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `abstree::abs_decl::AbsDecls` [INFO] [stderr] --> src/abstree/abs_decl.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | / pub fn new() -> AbsDecls [INFO] [stderr] 21 | | { [INFO] [stderr] 22 | | AbsDecls{decls : Vec::new(), abs_position : AbsPosition::new()} [INFO] [stderr] 23 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 19 | impl Default for abstree::abs_decl::AbsDecls { [INFO] [stderr] 20 | fn default() -> Self { [INFO] [stderr] 21 | Self::new() [INFO] [stderr] 22 | } [INFO] [stderr] 23 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/abstree/print_xml.rs:31:9 [INFO] [stderr] | [INFO] [stderr] 31 | acceptor.get_position_ref().map(|position| position.to_xml(&mut self.xml)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(position) = acceptor.get_position_ref() { position.to_xml(&mut self.xml) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/abstree/print_xml.rs:39:9 [INFO] [stderr] | [INFO] [stderr] 39 | acceptor.get_position_ref().map(|position| position.to_xml(&mut self.xml)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(position) = acceptor.get_position_ref() { position.to_xml(&mut self.xml) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/abstree/print_xml.rs:47:9 [INFO] [stderr] | [INFO] [stderr] 47 | acceptor.get_position_ref().map(|position| position.to_xml(&mut self.xml)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(position) = acceptor.get_position_ref() { position.to_xml(&mut self.xml) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/abstree/print_xml.rs:48:9 [INFO] [stderr] | [INFO] [stderr] 48 | acceptor.expr.as_ref().map(|expr| expr.to_xml(&mut self.xml)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(expr) = acceptor.expr.as_ref() { expr.to_xml(&mut self.xml) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/abstree/print_xml.rs:62:9 [INFO] [stderr] | [INFO] [stderr] 62 | acceptor.get_position_ref().map(|position| position.to_xml(&mut self.xml)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(position) = acceptor.get_position_ref() { position.to_xml(&mut self.xml) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/abstree/print_xml.rs:86:9 [INFO] [stderr] | [INFO] [stderr] 86 | acceptor.get_position_ref().map(|position| position.to_xml(&mut self.xml)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(position) = acceptor.get_position_ref() { position.to_xml(&mut self.xml) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/abstree/print_xml.rs:94:9 [INFO] [stderr] | [INFO] [stderr] 94 | acceptor.get_position_ref().map(|position| position.to_xml(&mut self.xml)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(position) = acceptor.get_position_ref() { position.to_xml(&mut self.xml) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/abstree/print_xml.rs:101:9 [INFO] [stderr] | [INFO] [stderr] 101 | acceptor.get_position_ref().map(|position| position.to_xml(&mut self.xml)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(position) = acceptor.get_position_ref() { position.to_xml(&mut self.xml) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/abstree/print_xml.rs:108:9 [INFO] [stderr] | [INFO] [stderr] 108 | acceptor.get_position_ref().map(|position| position.to_xml(&mut self.xml)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(position) = acceptor.get_position_ref() { position.to_xml(&mut self.xml) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/abstree/print_xml.rs:115:9 [INFO] [stderr] | [INFO] [stderr] 115 | acceptor.get_position_ref().map(|position| position.to_xml(&mut self.xml)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(position) = acceptor.get_position_ref() { position.to_xml(&mut self.xml) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/abstree/print_xml.rs:125:9 [INFO] [stderr] | [INFO] [stderr] 125 | acceptor.get_position_ref().map(|position| position.to_xml(&mut self.xml)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(position) = acceptor.get_position_ref() { position.to_xml(&mut self.xml) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/abstree/print_xml.rs:133:9 [INFO] [stderr] | [INFO] [stderr] 133 | acceptor.get_position_ref().map(|position| position.to_xml(&mut self.xml)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(position) = acceptor.get_position_ref() { position.to_xml(&mut self.xml) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/abstree/print_xml.rs:143:9 [INFO] [stderr] | [INFO] [stderr] 143 | acceptor.get_position_ref().map(|position| position.to_xml(&mut self.xml)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(position) = acceptor.get_position_ref() { position.to_xml(&mut self.xml) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/abstree/print_xml.rs:146:9 [INFO] [stderr] | [INFO] [stderr] 146 | acceptor.else_expr.as_ref().map(|expr| expr.accept(self)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(expr) = acceptor.else_expr.as_ref() { expr.accept(self) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/abstree/print_xml.rs:152:9 [INFO] [stderr] | [INFO] [stderr] 152 | acceptor.get_position_ref().map(|position| position.to_xml(&mut self.xml)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(position) = acceptor.get_position_ref() { position.to_xml(&mut self.xml) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/abstree/print_xml.rs:159:9 [INFO] [stderr] | [INFO] [stderr] 159 | acceptor.get_position_ref().map(|position| position.to_xml(&mut self.xml)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(position) = acceptor.get_position_ref() { position.to_xml(&mut self.xml) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/abstree/print_xml.rs:166:9 [INFO] [stderr] | [INFO] [stderr] 166 | acceptor.get_position_ref().map(|position| position.to_xml(&mut self.xml)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(position) = acceptor.get_position_ref() { position.to_xml(&mut self.xml) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/abstree/print_xml.rs:174:9 [INFO] [stderr] | [INFO] [stderr] 174 | acceptor.get_position_ref().map(|position| position.to_xml(&mut self.xml)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(position) = acceptor.get_position_ref() { position.to_xml(&mut self.xml) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/abstree/print_xml.rs:188:9 [INFO] [stderr] | [INFO] [stderr] 188 | acceptor.get_position_ref().map(|position| position.to_xml(&mut self.xml)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(position) = acceptor.get_position_ref() { position.to_xml(&mut self.xml) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/abstree/print_xml.rs:195:9 [INFO] [stderr] | [INFO] [stderr] 195 | acceptor.get_position_ref().map(|position| position.to_xml(&mut self.xml)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(position) = acceptor.get_position_ref() { position.to_xml(&mut self.xml) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/abstree/print_xml.rs:203:9 [INFO] [stderr] | [INFO] [stderr] 203 | acceptor.get_position_ref().map(|position| position.to_xml(&mut self.xml)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(position) = acceptor.get_position_ref() { position.to_xml(&mut self.xml) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/abstree/print_xml.rs:211:9 [INFO] [stderr] | [INFO] [stderr] 211 | acceptor.get_position_ref().map(|position| position.to_xml(&mut self.xml)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(position) = acceptor.get_position_ref() { position.to_xml(&mut self.xml) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 2.44s [INFO] running `"docker" "inspect" "3edbb174e540deb60e2b41923228aae08ab5e19ccf664d8de4a0bfe4775e027f"` [INFO] running `"docker" "rm" "-f" "3edbb174e540deb60e2b41923228aae08ab5e19ccf664d8de4a0bfe4775e027f"` [INFO] [stdout] 3edbb174e540deb60e2b41923228aae08ab5e19ccf664d8de4a0bfe4775e027f