[INFO] updating cached repository ki-foobar/lomias [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/ki-foobar/lomias [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/ki-foobar/lomias" "work/ex/clippy-test-run/sources/stable/gh/ki-foobar/lomias"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/ki-foobar/lomias'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/ki-foobar/lomias" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/ki-foobar/lomias"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/ki-foobar/lomias'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] bb97702830913d563e528d8744407d6bbfb35ba6 [INFO] sha for GitHub repo ki-foobar/lomias: bb97702830913d563e528d8744407d6bbfb35ba6 [INFO] validating manifest of ki-foobar/lomias 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 ki-foobar/lomias 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 ki-foobar/lomias [INFO] finished frobbing ki-foobar/lomias [INFO] frobbed toml for ki-foobar/lomias written to work/ex/clippy-test-run/sources/stable/gh/ki-foobar/lomias/Cargo.toml [INFO] started frobbing ki-foobar/lomias [INFO] finished frobbing ki-foobar/lomias [INFO] frobbed toml for ki-foobar/lomias written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/ki-foobar/lomias/Cargo.toml [INFO] crate ki-foobar/lomias 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 ki-foobar/lomias against stable+rustflags=-Dclippy::into_iter_on_array for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-4/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/ki-foobar/lomias:/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 -Dclippy::into_iter_on_array" "-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] 18e2ad33633bccba719e5c261a4106c2266c1822e1dcf530c34654785df42bc2 [INFO] running `"docker" "start" "-a" "18e2ad33633bccba719e5c261a4106c2266c1822e1dcf530c34654785df42bc2"` [INFO] [stderr] Checking lomias v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lomias/source.rs:22:13 [INFO] [stderr] | [INFO] [stderr] 22 | buffer: buffer, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `buffer` [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/lomias/source.rs:70:13 [INFO] [stderr] | [INFO] [stderr] 70 | filename: filename, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `filename` [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/lomias/source.rs:71:13 [INFO] [stderr] | [INFO] [stderr] 71 | line: line, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `line` [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/lomias/source.rs:72:13 [INFO] [stderr] | [INFO] [stderr] 72 | column: column, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `column` [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/lomias/token.rs:65:13 [INFO] [stderr] | [INFO] [stderr] 65 | kind: kind, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `kind` [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/lomias/token.rs:66:13 [INFO] [stderr] | [INFO] [stderr] 66 | location: location, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `location` [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/lomias/source.rs:22:13 [INFO] [stderr] | [INFO] [stderr] 22 | buffer: buffer, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `buffer` [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/lomias/source.rs:70:13 [INFO] [stderr] | [INFO] [stderr] 70 | filename: filename, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `filename` [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/lomias/source.rs:71:13 [INFO] [stderr] | [INFO] [stderr] 71 | line: line, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `line` [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/lomias/source.rs:72:13 [INFO] [stderr] | [INFO] [stderr] 72 | column: column, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `column` [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/lomias/token.rs:65:13 [INFO] [stderr] | [INFO] [stderr] 65 | kind: kind, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `kind` [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/lomias/token.rs:66:13 [INFO] [stderr] | [INFO] [stderr] 66 | location: location, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `location` [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: unneeded unit expression [INFO] [stderr] --> src/lomias/astprinter.rs:39:25 [INFO] [stderr] | [INFO] [stderr] 39 | () [INFO] [stderr] | ^^ help: remove the final `()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unused_unit)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit expression [INFO] [stderr] --> src/lomias/astprinter.rs:39:25 [INFO] [stderr] | [INFO] [stderr] 39 | () [INFO] [stderr] | ^^ help: remove the final `()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unused_unit)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: field is never used: `filename` [INFO] [stderr] --> src/lomias/source.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | filename: String, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 35 [INFO] [stderr] --> src/lomias/lexer.rs:73:5 [INFO] [stderr] | [INFO] [stderr] 73 | / fn lex(&mut self) -> Token<'a> { [INFO] [stderr] 74 | | self.skip_whitespaces(); [INFO] [stderr] 75 | | if self.source.eof() { [INFO] [stderr] 76 | | return Token::new(Kind::EndOfFile); [INFO] [stderr] ... | [INFO] [stderr] 240 | | } [INFO] [stderr] 241 | | } [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: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lomias/lexer.rs:192:34 [INFO] [stderr] | [INFO] [stderr] 192 | from_u32(self.source.get() as u32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.source.get())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lomias/lexer.rs:238:60 [INFO] [stderr] | [INFO] [stderr] 238 | panic!("Unknown character: {:?}", from_u32(c as u32)); [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(c)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: field is never used: `filename` [INFO] [stderr] --> src/lomias/source.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | filename: String, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/lomias/lexer.rs:328:53 [INFO] [stderr] | [INFO] [stderr] 328 | Token::new(Kind::IntegerLiteral(b'\\' as i32)) [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(b'\\')` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/lomias/lexer.rs:333:53 [INFO] [stderr] | [INFO] [stderr] 333 | Token::new(Kind::IntegerLiteral(b'\'' as i32)) [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(b'\'')` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/lomias/lexer.rs:338:53 [INFO] [stderr] | [INFO] [stderr] 338 | Token::new(Kind::IntegerLiteral(b'\r' as i32)) [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(b'\r')` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/lomias/lexer.rs:343:53 [INFO] [stderr] | [INFO] [stderr] 343 | Token::new(Kind::IntegerLiteral(b'\n' as i32)) [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(b'\n')` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/lomias/lexer.rs:348:53 [INFO] [stderr] | [INFO] [stderr] 348 | Token::new(Kind::IntegerLiteral(b'\t' as i32)) [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(b'\t')` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lomias/lexer.rs:352:30 [INFO] [stderr] | [INFO] [stderr] 352 | from_u32(self.source.get() as u32).unwrap() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.source.get())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/lomias/lexer.rs:357:45 [INFO] [stderr] | [INFO] [stderr] 357 | Token::new(Kind::IntegerLiteral(c as i32)) [INFO] [stderr] | ^^^^^^^^ help: try: `i32::from(c)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/lomias/lexer.rs:516:14 [INFO] [stderr] | [INFO] [stderr] 516 | Some((c - b'0') as i32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `i32::from(c - b'0')` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/lomias/lexer.rs:519:18 [INFO] [stderr] | [INFO] [stderr] 519 | Some((c - b'A') as i32 + 10) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `i32::from(c - b'A')` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/lomias/lexer.rs:521:18 [INFO] [stderr] | [INFO] [stderr] 521 | Some((c - b'a') as i32 + 10) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `i32::from(c - b'a')` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/lomias/parser.rs:179:9 [INFO] [stderr] | [INFO] [stderr] 179 | / let mut false_stmt = Box::new(AST::None); [INFO] [stderr] 180 | | if self.lexer.get().kind == Kind::KElse { [INFO] [stderr] 181 | | self.lexer.next(); [INFO] [stderr] 182 | | false_stmt = Box::new(self.parse_stmt()); [INFO] [stderr] 183 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let false_stmt = if self.lexer.get().kind == Kind::KElse { ..; Box::new(self.parse_stmt()) } else { Box::new(AST::None) };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [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/lomias/parser.rs:216:9 [INFO] [stderr] | [INFO] [stderr] 216 | / match self.lexer.get().kind { [INFO] [stderr] 217 | | Kind::ParenL => { [INFO] [stderr] 218 | | self.lexer.next(); [INFO] [stderr] 219 | | let params = self.parse_parameter_list(Kind::ParenR); [INFO] [stderr] ... | [INFO] [stderr] 223 | | _ => (), [INFO] [stderr] 224 | | } [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] 216 | if let Kind::ParenL = self.lexer.get().kind { [INFO] [stderr] 217 | self.lexer.next(); [INFO] [stderr] 218 | let params = self.parse_parameter_list(Kind::ParenR); [INFO] [stderr] 219 | self.lexer.next(); [INFO] [stderr] 220 | lhs = Box::new(AST::FuncCall(lhs, params)) [INFO] [stderr] 221 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 35 [INFO] [stderr] --> src/lomias/lexer.rs:73:5 [INFO] [stderr] | [INFO] [stderr] 73 | / fn lex(&mut self) -> Token<'a> { [INFO] [stderr] 74 | | self.skip_whitespaces(); [INFO] [stderr] 75 | | if self.source.eof() { [INFO] [stderr] 76 | | return Token::new(Kind::EndOfFile); [INFO] [stderr] ... | [INFO] [stderr] 240 | | } [INFO] [stderr] 241 | | } [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: this loop could be written as a `while let` loop [INFO] [stderr] --> src/lomias/parser.rs:350:9 [INFO] [stderr] | [INFO] [stderr] 350 | / loop { [INFO] [stderr] 351 | | match self.lexer.get().kind { [INFO] [stderr] 352 | | Kind::ParenL => { [INFO] [stderr] 353 | | self.lexer.next(); [INFO] [stderr] ... | [INFO] [stderr] 359 | | } [INFO] [stderr] 360 | | } [INFO] [stderr] | |_________^ help: try: `while let Kind::ParenL = self.lexer.get().kind { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lomias/lexer.rs:192:34 [INFO] [stderr] | [INFO] [stderr] 192 | from_u32(self.source.get() as u32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.source.get())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lomias/source.rs:53:26 [INFO] [stderr] | [INFO] [stderr] 53 | from_u32(c as u32).unwrap(), [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(c)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lomias/source.rs:54:26 [INFO] [stderr] | [INFO] [stderr] 54 | from_u32(self.get() as u32).unwrap() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.get())` [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lomias/lexer.rs:238:60 [INFO] [stderr] | [INFO] [stderr] 238 | panic!("Unknown character: {:?}", from_u32(c as u32)); [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(c)` [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/lomias/lexer.rs:328:53 [INFO] [stderr] | [INFO] [stderr] 328 | Token::new(Kind::IntegerLiteral(b'\\' as i32)) [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(b'\\')` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/lomias/lexer.rs:333:53 [INFO] [stderr] | [INFO] [stderr] 333 | Token::new(Kind::IntegerLiteral(b'\'' as i32)) [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(b'\'')` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/lomias/lexer.rs:338:53 [INFO] [stderr] | [INFO] [stderr] 338 | Token::new(Kind::IntegerLiteral(b'\r' as i32)) [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(b'\r')` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/lomias/lexer.rs:343:53 [INFO] [stderr] | [INFO] [stderr] 343 | Token::new(Kind::IntegerLiteral(b'\n' as i32)) [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(b'\n')` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/lomias/lexer.rs:348:53 [INFO] [stderr] | [INFO] [stderr] 348 | Token::new(Kind::IntegerLiteral(b'\t' as i32)) [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(b'\t')` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lomias/lexer.rs:352:30 [INFO] [stderr] | [INFO] [stderr] 352 | from_u32(self.source.get() as u32).unwrap() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.source.get())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/lomias/lexer.rs:357:45 [INFO] [stderr] | [INFO] [stderr] 357 | Token::new(Kind::IntegerLiteral(c as i32)) [INFO] [stderr] | ^^^^^^^^ help: try: `i32::from(c)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/lomias/lexer.rs:516:14 [INFO] [stderr] | [INFO] [stderr] 516 | Some((c - b'0') as i32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `i32::from(c - b'0')` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/lomias/lexer.rs:519:18 [INFO] [stderr] | [INFO] [stderr] 519 | Some((c - b'A') as i32 + 10) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `i32::from(c - b'A')` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/lomias/lexer.rs:521:18 [INFO] [stderr] | [INFO] [stderr] 521 | Some((c - b'a') as i32 + 10) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `i32::from(c - b'a')` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/lomias/parser.rs:179:9 [INFO] [stderr] | [INFO] [stderr] 179 | / let mut false_stmt = Box::new(AST::None); [INFO] [stderr] 180 | | if self.lexer.get().kind == Kind::KElse { [INFO] [stderr] 181 | | self.lexer.next(); [INFO] [stderr] 182 | | false_stmt = Box::new(self.parse_stmt()); [INFO] [stderr] 183 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let false_stmt = if self.lexer.get().kind == Kind::KElse { ..; Box::new(self.parse_stmt()) } else { Box::new(AST::None) };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [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/lomias/parser.rs:216:9 [INFO] [stderr] | [INFO] [stderr] 216 | / match self.lexer.get().kind { [INFO] [stderr] 217 | | Kind::ParenL => { [INFO] [stderr] 218 | | self.lexer.next(); [INFO] [stderr] 219 | | let params = self.parse_parameter_list(Kind::ParenR); [INFO] [stderr] ... | [INFO] [stderr] 223 | | _ => (), [INFO] [stderr] 224 | | } [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] 216 | if let Kind::ParenL = self.lexer.get().kind { [INFO] [stderr] 217 | self.lexer.next(); [INFO] [stderr] 218 | let params = self.parse_parameter_list(Kind::ParenR); [INFO] [stderr] 219 | self.lexer.next(); [INFO] [stderr] 220 | lhs = Box::new(AST::FuncCall(lhs, params)) [INFO] [stderr] 221 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/lomias/parser.rs:350:9 [INFO] [stderr] | [INFO] [stderr] 350 | / loop { [INFO] [stderr] 351 | | match self.lexer.get().kind { [INFO] [stderr] 352 | | Kind::ParenL => { [INFO] [stderr] 353 | | self.lexer.next(); [INFO] [stderr] ... | [INFO] [stderr] 359 | | } [INFO] [stderr] 360 | | } [INFO] [stderr] | |_________^ help: try: `while let Kind::ParenL = self.lexer.get().kind { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lomias/source.rs:53:26 [INFO] [stderr] | [INFO] [stderr] 53 | from_u32(c as u32).unwrap(), [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(c)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lomias/source.rs:54:26 [INFO] [stderr] | [INFO] [stderr] 54 | from_u32(self.get() as u32).unwrap() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `u32::from(self.get())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 0.96s [INFO] running `"docker" "inspect" "18e2ad33633bccba719e5c261a4106c2266c1822e1dcf530c34654785df42bc2"` [INFO] running `"docker" "rm" "-f" "18e2ad33633bccba719e5c261a4106c2266c1822e1dcf530c34654785df42bc2"` [INFO] [stdout] 18e2ad33633bccba719e5c261a4106c2266c1822e1dcf530c34654785df42bc2