[INFO] updating cached repository siiptuo/minipascal [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/siiptuo/minipascal [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/siiptuo/minipascal" "work/ex/clippy-test-run/sources/stable/gh/siiptuo/minipascal"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/siiptuo/minipascal'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/siiptuo/minipascal" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/siiptuo/minipascal"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/siiptuo/minipascal'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] bb07f075a4cddee6f04887025d6436966bbeef46 [INFO] sha for GitHub repo siiptuo/minipascal: bb07f075a4cddee6f04887025d6436966bbeef46 [INFO] validating manifest of siiptuo/minipascal 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 siiptuo/minipascal 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 siiptuo/minipascal [INFO] finished frobbing siiptuo/minipascal [INFO] frobbed toml for siiptuo/minipascal written to work/ex/clippy-test-run/sources/stable/gh/siiptuo/minipascal/Cargo.toml [INFO] started frobbing siiptuo/minipascal [INFO] finished frobbing siiptuo/minipascal [INFO] frobbed toml for siiptuo/minipascal written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/siiptuo/minipascal/Cargo.toml [INFO] crate siiptuo/minipascal 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 siiptuo/minipascal against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-3/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/siiptuo/minipascal:/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] 1a6e26f77a910b4b60b5b144930fac4e4f7dc5ee2a13d643cd1bc18365214e1d [INFO] running `"docker" "start" "-a" "1a6e26f77a910b4b60b5b144930fac4e4f7dc5ee2a13d643cd1bc18365214e1d"` [INFO] [stderr] Checking minipascal v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:66:9 [INFO] [stderr] | [INFO] [stderr] 66 | write!(self.output, "{}\n", include_str!("helpers.h"))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:69:13 [INFO] [stderr] | [INFO] [stderr] 69 | write!(self.output, ";\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:71:9 [INFO] [stderr] | [INFO] [stderr] 71 | write!(self.output, "\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:75:9 [INFO] [stderr] | [INFO] [stderr] 75 | write!(self.output, "int main() {{\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:117:9 [INFO] [stderr] | [INFO] [stderr] 117 | write!(self.output, " {{\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:179:29 [INFO] [stderr] | [INFO] [stderr] 179 | / write!( [INFO] [stderr] 180 | | self.output, [INFO] [stderr] 181 | | " int _{}_{};\n", [INFO] [stderr] 182 | | self.symbols.current_scope(), [INFO] [stderr] 183 | | &ids.join(&format!(", _{}_", self.symbols.current_scope())) [INFO] [stderr] 184 | | )?; [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:187:29 [INFO] [stderr] | [INFO] [stderr] 187 | / write!( [INFO] [stderr] 188 | | self.output, [INFO] [stderr] 189 | | " float _{}_{};\n", [INFO] [stderr] 190 | | self.symbols.current_scope(), [INFO] [stderr] 191 | | &ids.join(&format!(", _{}_", self.symbols.current_scope())) [INFO] [stderr] 192 | | )?; [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:195:29 [INFO] [stderr] | [INFO] [stderr] 195 | / write!( [INFO] [stderr] 196 | | self.output, [INFO] [stderr] 197 | | " array *_{}_{};\n", [INFO] [stderr] 198 | | self.symbols.current_scope(), [INFO] [stderr] 199 | | &ids.join(&format!(", *_{}_", self.symbols.current_scope())) [INFO] [stderr] 200 | | )?; [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:207:29 [INFO] [stderr] | [INFO] [stderr] 207 | / write!( [INFO] [stderr] 208 | | self.output, [INFO] [stderr] 209 | | " array *_{}_{};\n", [INFO] [stderr] 210 | | self.symbols.current_scope(), [INFO] [stderr] 211 | | id [INFO] [stderr] 212 | | )?; [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:213:29 [INFO] [stderr] | [INFO] [stderr] 213 | / write!( [INFO] [stderr] 214 | | self.buffer, [INFO] [stderr] 215 | | " _{}_{} = array_new({}, sizeof(int));\n", // TODO: type [INFO] [stderr] 216 | | self.symbols.current_scope(), [INFO] [stderr] 217 | | id, [INFO] [stderr] 218 | | tmp_id [INFO] [stderr] 219 | | )?; [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:239:21 [INFO] [stderr] | [INFO] [stderr] 239 | write!(self.buffer, " _{}_{} = {};\n", scope_id, id, tmp_id)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:246:21 [INFO] [stderr] | [INFO] [stderr] 246 | write!(self.buffer, ",{},&{});\n", index_id, value_id)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:256:29 [INFO] [stderr] | [INFO] [stderr] 256 | write!(self.buffer, " = {}();\n", read)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:275:29 [INFO] [stderr] | [INFO] [stderr] 275 | write!(self.buffer, ", {}, &{});\n", index_id, tmp_id)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:286:29 [INFO] [stderr] | [INFO] [stderr] 286 | write!(self.buffer, " printf(\" \");\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:291:33 [INFO] [stderr] | [INFO] [stderr] 291 | write!(self.buffer, " printf(\"%d\", {});\n", tmp_id)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:294:33 [INFO] [stderr] | [INFO] [stderr] 294 | write!(self.buffer, " printf(\"%g\", {});\n", tmp_id)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:297:33 [INFO] [stderr] | [INFO] [stderr] 297 | write!(self.buffer, " write_string({});\n", tmp_id)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:327:21 [INFO] [stderr] | [INFO] [stderr] 327 | write!(self.buffer, ");\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:333:17 [INFO] [stderr] | [INFO] [stderr] 333 | write!(self.buffer, " return {};\n", tmp_id)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:335:35 [INFO] [stderr] | [INFO] [stderr] 335 | Stmt::Return(None) => write!(self.buffer, " return;\n")?, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:342:17 [INFO] [stderr] | [INFO] [stderr] 342 | write!(self.buffer, " {} = !{};\n", tmp_id, tmp_id)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:343:17 [INFO] [stderr] | [INFO] [stderr] 343 | write!(self.buffer, " if ({}) goto l{};\n", tmp_id, l0)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:345:17 [INFO] [stderr] | [INFO] [stderr] 345 | write!(self.buffer, " goto l{};\n", l1)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:346:17 [INFO] [stderr] | [INFO] [stderr] 346 | write!(self.buffer, "l{}: ;\n", l0)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:350:17 [INFO] [stderr] | [INFO] [stderr] 350 | write!(self.buffer, "l{}: ;\n", l1)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:357:17 [INFO] [stderr] | [INFO] [stderr] 357 | write!(self.buffer, "l{}: ;\n", l0)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:359:17 [INFO] [stderr] | [INFO] [stderr] 359 | write!(self.buffer, " {} = !{};\n", tmp_id, tmp_id)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:360:17 [INFO] [stderr] | [INFO] [stderr] 360 | write!(self.buffer, " if ({}) goto l{};\n", tmp_id, l1)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:369:17 [INFO] [stderr] | [INFO] [stderr] 369 | write!(self.buffer, " assert({});\n", tmp_id)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:378:9 [INFO] [stderr] | [INFO] [stderr] 378 | write!(self.output, " {} {};\n", c_ty, id)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:406:17 [INFO] [stderr] | [INFO] [stderr] 406 | write!(self.buffer, " {} = {} {} {};\n", tmp_id, lhs, op, rhs)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:416:17 [INFO] [stderr] | [INFO] [stderr] 416 | write!(self.buffer, " {} = {}{};\n", tmp_id, op, val_id)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:435:17 [INFO] [stderr] | [INFO] [stderr] 435 | write!(self.buffer, " {} = {};\n", tmp_id, id)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:440:17 [INFO] [stderr] | [INFO] [stderr] 440 | write!(self.buffer, " {} = {};\n", tmp_id, id)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:445:17 [INFO] [stderr] | [INFO] [stderr] 445 | / write!( [INFO] [stderr] 446 | | self.buffer, [INFO] [stderr] 447 | | " {} = string_new(\"{}\", strlen(\"{}\"));\n", [INFO] [stderr] 448 | | tmp_id, s, s [INFO] [stderr] 449 | | )?; [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:468:17 [INFO] [stderr] | [INFO] [stderr] 468 | write!(self.buffer, "({});\n", args_ids.join(", "))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:474:17 [INFO] [stderr] | [INFO] [stderr] 474 | write!(self.buffer, " {} = array_size({});\n", tmp_id, expr_id)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:493:17 [INFO] [stderr] | [INFO] [stderr] 493 | write!(self.buffer, ", {}));\n", index_id)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:66:9 [INFO] [stderr] | [INFO] [stderr] 66 | write!(self.output, "{}\n", include_str!("helpers.h"))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:69:13 [INFO] [stderr] | [INFO] [stderr] 69 | write!(self.output, ";\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:71:9 [INFO] [stderr] | [INFO] [stderr] 71 | write!(self.output, "\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:75:9 [INFO] [stderr] | [INFO] [stderr] 75 | write!(self.output, "int main() {{\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:117:9 [INFO] [stderr] | [INFO] [stderr] 117 | write!(self.output, " {{\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:179:29 [INFO] [stderr] | [INFO] [stderr] 179 | / write!( [INFO] [stderr] 180 | | self.output, [INFO] [stderr] 181 | | " int _{}_{};\n", [INFO] [stderr] 182 | | self.symbols.current_scope(), [INFO] [stderr] 183 | | &ids.join(&format!(", _{}_", self.symbols.current_scope())) [INFO] [stderr] 184 | | )?; [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:187:29 [INFO] [stderr] | [INFO] [stderr] 187 | / write!( [INFO] [stderr] 188 | | self.output, [INFO] [stderr] 189 | | " float _{}_{};\n", [INFO] [stderr] 190 | | self.symbols.current_scope(), [INFO] [stderr] 191 | | &ids.join(&format!(", _{}_", self.symbols.current_scope())) [INFO] [stderr] 192 | | )?; [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:195:29 [INFO] [stderr] | [INFO] [stderr] 195 | / write!( [INFO] [stderr] 196 | | self.output, [INFO] [stderr] 197 | | " array *_{}_{};\n", [INFO] [stderr] 198 | | self.symbols.current_scope(), [INFO] [stderr] 199 | | &ids.join(&format!(", *_{}_", self.symbols.current_scope())) [INFO] [stderr] 200 | | )?; [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:207:29 [INFO] [stderr] | [INFO] [stderr] 207 | / write!( [INFO] [stderr] 208 | | self.output, [INFO] [stderr] 209 | | " array *_{}_{};\n", [INFO] [stderr] 210 | | self.symbols.current_scope(), [INFO] [stderr] 211 | | id [INFO] [stderr] 212 | | )?; [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:213:29 [INFO] [stderr] | [INFO] [stderr] 213 | / write!( [INFO] [stderr] 214 | | self.buffer, [INFO] [stderr] 215 | | " _{}_{} = array_new({}, sizeof(int));\n", // TODO: type [INFO] [stderr] 216 | | self.symbols.current_scope(), [INFO] [stderr] 217 | | id, [INFO] [stderr] 218 | | tmp_id [INFO] [stderr] 219 | | )?; [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:239:21 [INFO] [stderr] | [INFO] [stderr] 239 | write!(self.buffer, " _{}_{} = {};\n", scope_id, id, tmp_id)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:246:21 [INFO] [stderr] | [INFO] [stderr] 246 | write!(self.buffer, ",{},&{});\n", index_id, value_id)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:256:29 [INFO] [stderr] | [INFO] [stderr] 256 | write!(self.buffer, " = {}();\n", read)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:275:29 [INFO] [stderr] | [INFO] [stderr] 275 | write!(self.buffer, ", {}, &{});\n", index_id, tmp_id)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:286:29 [INFO] [stderr] | [INFO] [stderr] 286 | write!(self.buffer, " printf(\" \");\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:291:33 [INFO] [stderr] | [INFO] [stderr] 291 | write!(self.buffer, " printf(\"%d\", {});\n", tmp_id)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:294:33 [INFO] [stderr] | [INFO] [stderr] 294 | write!(self.buffer, " printf(\"%g\", {});\n", tmp_id)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:297:33 [INFO] [stderr] | [INFO] [stderr] 297 | write!(self.buffer, " write_string({});\n", tmp_id)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:327:21 [INFO] [stderr] | [INFO] [stderr] 327 | write!(self.buffer, ");\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:333:17 [INFO] [stderr] | [INFO] [stderr] 333 | write!(self.buffer, " return {};\n", tmp_id)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:335:35 [INFO] [stderr] | [INFO] [stderr] 335 | Stmt::Return(None) => write!(self.buffer, " return;\n")?, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:342:17 [INFO] [stderr] | [INFO] [stderr] 342 | write!(self.buffer, " {} = !{};\n", tmp_id, tmp_id)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:343:17 [INFO] [stderr] | [INFO] [stderr] 343 | write!(self.buffer, " if ({}) goto l{};\n", tmp_id, l0)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:345:17 [INFO] [stderr] | [INFO] [stderr] 345 | write!(self.buffer, " goto l{};\n", l1)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:346:17 [INFO] [stderr] | [INFO] [stderr] 346 | write!(self.buffer, "l{}: ;\n", l0)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:350:17 [INFO] [stderr] | [INFO] [stderr] 350 | write!(self.buffer, "l{}: ;\n", l1)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:357:17 [INFO] [stderr] | [INFO] [stderr] 357 | write!(self.buffer, "l{}: ;\n", l0)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:359:17 [INFO] [stderr] | [INFO] [stderr] 359 | write!(self.buffer, " {} = !{};\n", tmp_id, tmp_id)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:360:17 [INFO] [stderr] | [INFO] [stderr] 360 | write!(self.buffer, " if ({}) goto l{};\n", tmp_id, l1)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:369:17 [INFO] [stderr] | [INFO] [stderr] 369 | write!(self.buffer, " assert({});\n", tmp_id)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:378:9 [INFO] [stderr] | [INFO] [stderr] 378 | write!(self.output, " {} {};\n", c_ty, id)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:406:17 [INFO] [stderr] | [INFO] [stderr] 406 | write!(self.buffer, " {} = {} {} {};\n", tmp_id, lhs, op, rhs)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:416:17 [INFO] [stderr] | [INFO] [stderr] 416 | write!(self.buffer, " {} = {}{};\n", tmp_id, op, val_id)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:435:17 [INFO] [stderr] | [INFO] [stderr] 435 | write!(self.buffer, " {} = {};\n", tmp_id, id)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:440:17 [INFO] [stderr] | [INFO] [stderr] 440 | write!(self.buffer, " {} = {};\n", tmp_id, id)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:445:17 [INFO] [stderr] | [INFO] [stderr] 445 | / write!( [INFO] [stderr] 446 | | self.buffer, [INFO] [stderr] 447 | | " {} = string_new(\"{}\", strlen(\"{}\"));\n", [INFO] [stderr] 448 | | tmp_id, s, s [INFO] [stderr] 449 | | )?; [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:468:17 [INFO] [stderr] | [INFO] [stderr] 468 | write!(self.buffer, "({});\n", args_ids.join(", "))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:474:17 [INFO] [stderr] | [INFO] [stderr] 474 | write!(self.buffer, " {} = array_size({});\n", tmp_id, expr_id)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/codegen.rs:493:17 [INFO] [stderr] | [INFO] [stderr] 493 | write!(self.buffer, ", {}));\n", index_id)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/parser.rs:119:17 [INFO] [stderr] | [INFO] [stderr] 119 | return Err(()); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(())` [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/parser.rs:155:17 [INFO] [stderr] | [INFO] [stderr] 155 | return Err(()); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(())` [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: unneeded return statement [INFO] [stderr] --> src/parser.rs:347:25 [INFO] [stderr] | [INFO] [stderr] 347 | return Err(()); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(())` [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: unneeded return statement [INFO] [stderr] --> src/parser.rs:415:17 [INFO] [stderr] | [INFO] [stderr] 415 | return Err(()); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(())` [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: unneeded return statement [INFO] [stderr] --> src/symbol_table.rs:46:9 [INFO] [stderr] | [INFO] [stderr] 46 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `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: unneeded return statement [INFO] [stderr] --> src/symbol_table.rs:58:9 [INFO] [stderr] | [INFO] [stderr] 58 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `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: unneeded return statement [INFO] [stderr] --> src/symbol_table.rs:63:9 [INFO] [stderr] | [INFO] [stderr] 63 | / return self.symbols [INFO] [stderr] 64 | | .get(&(*self.scope_stack.last().unwrap(), name.to_string())); [INFO] [stderr] | |_________________________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 63 | self.symbols [INFO] [stderr] 64 | .get(&(*self.scope_stack.last().unwrap(), name.to_string())) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/parser.rs:119:17 [INFO] [stderr] | [INFO] [stderr] 119 | return Err(()); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(())` [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/parser.rs:155:17 [INFO] [stderr] | [INFO] [stderr] 155 | return Err(()); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(())` [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: unneeded return statement [INFO] [stderr] --> src/parser.rs:347:25 [INFO] [stderr] | [INFO] [stderr] 347 | return Err(()); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(())` [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: unneeded return statement [INFO] [stderr] --> src/parser.rs:415:17 [INFO] [stderr] | [INFO] [stderr] 415 | return Err(()); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(())` [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: unneeded return statement [INFO] [stderr] --> src/symbol_table.rs:46:9 [INFO] [stderr] | [INFO] [stderr] 46 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `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: unneeded return statement [INFO] [stderr] --> src/symbol_table.rs:58:9 [INFO] [stderr] | [INFO] [stderr] 58 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `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: unneeded return statement [INFO] [stderr] --> src/symbol_table.rs:63:9 [INFO] [stderr] | [INFO] [stderr] 63 | / return self.symbols [INFO] [stderr] 64 | | .get(&(*self.scope_stack.last().unwrap(), name.to_string())); [INFO] [stderr] | |_________________________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 63 | self.symbols [INFO] [stderr] 64 | .get(&(*self.scope_stack.last().unwrap(), name.to_string())) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/lexer.rs:133:45 [INFO] [stderr] | [INFO] [stderr] 133 | / loop { [INFO] [stderr] 134 | | match self.it.peek() { [INFO] [stderr] 135 | | Some(&c @ '0'...'9') => { [INFO] [stderr] 136 | | buf.push(c); [INFO] [stderr] ... | [INFO] [stderr] 140 | | } [INFO] [stderr] 141 | | } [INFO] [stderr] | |_____________________________________________^ help: try: `while let Some(&c @ '0'...'9') = self.it.peek() { .. }` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parser.rs:162:9 [INFO] [stderr] | [INFO] [stderr] 162 | / match self.lexer.peek() { [INFO] [stderr] 163 | | Some(&Token::RParen) => return Ok(params), [INFO] [stderr] 164 | | _ => {} [INFO] [stderr] 165 | | } [INFO] [stderr] | |_________^ help: try this: `if let Some(&Token::RParen) = self.lexer.peek() { return Ok(params) }` [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] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parser.rs:263:38 [INFO] [stderr] | [INFO] [stderr] 263 | Some(Token::Semi) => match self.lexer.peek() { [INFO] [stderr] | ______________________________________^ [INFO] [stderr] 264 | | Some(&Token::End) => { [INFO] [stderr] 265 | | self.lexer.next(); [INFO] [stderr] 266 | | break; [INFO] [stderr] 267 | | } [INFO] [stderr] 268 | | _ => {} [INFO] [stderr] 269 | | }, [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] 263 | Some(Token::Semi) => if let Some(&Token::End) = self.lexer.peek() { [INFO] [stderr] 264 | self.lexer.next(); [INFO] [stderr] 265 | break; [INFO] [stderr] 266 | }, [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/parser.rs:422:9 [INFO] [stderr] | [INFO] [stderr] 422 | / match self.lexer.peek() { [INFO] [stderr] 423 | | Some(&Token::RParen) => return Ok(exprs), [INFO] [stderr] 424 | | _ => {} [INFO] [stderr] 425 | | } [INFO] [stderr] | |_________^ help: try this: `if let Some(&Token::RParen) = self.lexer.peek() { return Ok(exprs) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/codegen.rs:85:9 [INFO] [stderr] | [INFO] [stderr] 85 | / match param { [INFO] [stderr] 86 | | &Param::Val(ref id, ref ty) => { [INFO] [stderr] 87 | | write!( [INFO] [stderr] 88 | | self.output, [INFO] [stderr] ... | [INFO] [stderr] 109 | | } [INFO] [stderr] 110 | | } [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] 85 | match *param { [INFO] [stderr] 86 | Param::Val(ref id, ref ty) => { [INFO] [stderr] 87 | write!( [INFO] [stderr] 88 | self.output, [INFO] [stderr] 89 | "{}", [INFO] [stderr] 90 | match *ty { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/codegen.rs:251:21 [INFO] [stderr] | [INFO] [stderr] 251 | / match expr { [INFO] [stderr] 252 | | &Expr::Var(ref id) => { [INFO] [stderr] 253 | | write!(self.buffer, " ")?; [INFO] [stderr] 254 | | self.write_id(id)?; [INFO] [stderr] ... | [INFO] [stderr] 277 | | _ => panic!("expected variable"), [INFO] [stderr] 278 | | }; [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [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] 251 | match *expr { [INFO] [stderr] 252 | Expr::Var(ref id) => { [INFO] [stderr] 253 | write!(self.buffer, " ")?; [INFO] [stderr] 254 | self.write_id(id)?; [INFO] [stderr] 255 | let read = self.read_fn(id); [INFO] [stderr] 256 | write!(self.buffer, " = {}();\n", read)?; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/codegen.rs:347:17 [INFO] [stderr] | [INFO] [stderr] 347 | / if let &Some(ref alt) = alt { [INFO] [stderr] 348 | | self.visit_stmt(alt)?; [INFO] [stderr] 349 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [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] 347 | if let Some(ref alt) = *alt { [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/analyze.rs:213:21 [INFO] [stderr] | [INFO] [stderr] 213 | / if let &Param::Ref(_, _) = p { [INFO] [stderr] 214 | | true [INFO] [stderr] 215 | | } else { [INFO] [stderr] 216 | | false [INFO] [stderr] 217 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [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] 213 | if let Param::Ref(_, _) = *p { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ ^^ [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/analyze.rs:266:24 [INFO] [stderr] | [INFO] [stderr] 266 | if let Some(_) = self.symbols.get_in_current_scope(id) { [INFO] [stderr] | _________________- ^^^^^^^ [INFO] [stderr] 267 | | self.errors [INFO] [stderr] 268 | | .push(format!("variable {} is already declared in same scope", id)); [INFO] [stderr] 269 | | } else { [INFO] [stderr] 270 | | let ty = self.find_type(ty).unwrap(); [INFO] [stderr] 271 | | self.symbols.insert(id, Category::Var(ty, false)); [INFO] [stderr] 272 | | } [INFO] [stderr] | |_________________- help: try this: `if self.symbols.get_in_current_scope(id).is_some()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/analyze.rs:356:25 [INFO] [stderr] | [INFO] [stderr] 356 | / if let &Some(ref expr) = expr { [INFO] [stderr] 357 | | let actual = self.type_check(expr); [INFO] [stderr] 358 | | if actual != expected { [INFO] [stderr] 359 | | self.errors.push(format!( [INFO] [stderr] ... | [INFO] [stderr] 367 | | .push("return with no value in function".to_string()); [INFO] [stderr] 368 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [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] 356 | if let Some(ref expr) = *expr { [INFO] [stderr] | ^^^^^^^^^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/analyze.rs:376:17 [INFO] [stderr] | [INFO] [stderr] 376 | / if let &Some(ref alt) = alt { [INFO] [stderr] 377 | | self.visit_stmt(alt); [INFO] [stderr] 378 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [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] 376 | if let Some(ref alt) = *alt { [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^^ [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `symbol_table::SymbolTable` [INFO] [stderr] --> src/symbol_table.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | / pub fn new() -> Self { [INFO] [stderr] 17 | | Self { [INFO] [stderr] 18 | | symbols: HashMap::new(), [INFO] [stderr] 19 | | scope_id: 0, [INFO] [stderr] 20 | | scope_stack: vec![0], [INFO] [stderr] 21 | | } [INFO] [stderr] 22 | | } [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] 9 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/lexer.rs:133:45 [INFO] [stderr] | [INFO] [stderr] 133 | / loop { [INFO] [stderr] 134 | | match self.it.peek() { [INFO] [stderr] 135 | | Some(&c @ '0'...'9') => { [INFO] [stderr] 136 | | buf.push(c); [INFO] [stderr] ... | [INFO] [stderr] 140 | | } [INFO] [stderr] 141 | | } [INFO] [stderr] | |_____________________________________________^ help: try: `while let Some(&c @ '0'...'9') = self.it.peek() { .. }` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parser.rs:162:9 [INFO] [stderr] | [INFO] [stderr] 162 | / match self.lexer.peek() { [INFO] [stderr] 163 | | Some(&Token::RParen) => return Ok(params), [INFO] [stderr] 164 | | _ => {} [INFO] [stderr] 165 | | } [INFO] [stderr] | |_________^ help: try this: `if let Some(&Token::RParen) = self.lexer.peek() { return Ok(params) }` [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] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parser.rs:263:38 [INFO] [stderr] | [INFO] [stderr] 263 | Some(Token::Semi) => match self.lexer.peek() { [INFO] [stderr] | ______________________________________^ [INFO] [stderr] 264 | | Some(&Token::End) => { [INFO] [stderr] 265 | | self.lexer.next(); [INFO] [stderr] 266 | | break; [INFO] [stderr] 267 | | } [INFO] [stderr] 268 | | _ => {} [INFO] [stderr] 269 | | }, [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] 263 | Some(Token::Semi) => if let Some(&Token::End) = self.lexer.peek() { [INFO] [stderr] 264 | self.lexer.next(); [INFO] [stderr] 265 | break; [INFO] [stderr] 266 | }, [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/parser.rs:422:9 [INFO] [stderr] | [INFO] [stderr] 422 | / match self.lexer.peek() { [INFO] [stderr] 423 | | Some(&Token::RParen) => return Ok(exprs), [INFO] [stderr] 424 | | _ => {} [INFO] [stderr] 425 | | } [INFO] [stderr] | |_________^ help: try this: `if let Some(&Token::RParen) = self.lexer.peek() { return Ok(exprs) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/codegen.rs:85:9 [INFO] [stderr] | [INFO] [stderr] 85 | / match param { [INFO] [stderr] 86 | | &Param::Val(ref id, ref ty) => { [INFO] [stderr] 87 | | write!( [INFO] [stderr] 88 | | self.output, [INFO] [stderr] ... | [INFO] [stderr] 109 | | } [INFO] [stderr] 110 | | } [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] 85 | match *param { [INFO] [stderr] 86 | Param::Val(ref id, ref ty) => { [INFO] [stderr] 87 | write!( [INFO] [stderr] 88 | self.output, [INFO] [stderr] 89 | "{}", [INFO] [stderr] 90 | match *ty { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/codegen.rs:251:21 [INFO] [stderr] | [INFO] [stderr] 251 | / match expr { [INFO] [stderr] 252 | | &Expr::Var(ref id) => { [INFO] [stderr] 253 | | write!(self.buffer, " ")?; [INFO] [stderr] 254 | | self.write_id(id)?; [INFO] [stderr] ... | [INFO] [stderr] 277 | | _ => panic!("expected variable"), [INFO] [stderr] 278 | | }; [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [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] 251 | match *expr { [INFO] [stderr] 252 | Expr::Var(ref id) => { [INFO] [stderr] 253 | write!(self.buffer, " ")?; [INFO] [stderr] 254 | self.write_id(id)?; [INFO] [stderr] 255 | let read = self.read_fn(id); [INFO] [stderr] 256 | write!(self.buffer, " = {}();\n", read)?; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/codegen.rs:347:17 [INFO] [stderr] | [INFO] [stderr] 347 | / if let &Some(ref alt) = alt { [INFO] [stderr] 348 | | self.visit_stmt(alt)?; [INFO] [stderr] 349 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [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] 347 | if let Some(ref alt) = *alt { [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/analyze.rs:213:21 [INFO] [stderr] | [INFO] [stderr] 213 | / if let &Param::Ref(_, _) = p { [INFO] [stderr] 214 | | true [INFO] [stderr] 215 | | } else { [INFO] [stderr] 216 | | false [INFO] [stderr] 217 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [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] 213 | if let Param::Ref(_, _) = *p { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ ^^ [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/analyze.rs:266:24 [INFO] [stderr] | [INFO] [stderr] 266 | if let Some(_) = self.symbols.get_in_current_scope(id) { [INFO] [stderr] | _________________- ^^^^^^^ [INFO] [stderr] 267 | | self.errors [INFO] [stderr] 268 | | .push(format!("variable {} is already declared in same scope", id)); [INFO] [stderr] 269 | | } else { [INFO] [stderr] 270 | | let ty = self.find_type(ty).unwrap(); [INFO] [stderr] 271 | | self.symbols.insert(id, Category::Var(ty, false)); [INFO] [stderr] 272 | | } [INFO] [stderr] | |_________________- help: try this: `if self.symbols.get_in_current_scope(id).is_some()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/analyze.rs:356:25 [INFO] [stderr] | [INFO] [stderr] 356 | / if let &Some(ref expr) = expr { [INFO] [stderr] 357 | | let actual = self.type_check(expr); [INFO] [stderr] 358 | | if actual != expected { [INFO] [stderr] 359 | | self.errors.push(format!( [INFO] [stderr] ... | [INFO] [stderr] 367 | | .push("return with no value in function".to_string()); [INFO] [stderr] 368 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [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] 356 | if let Some(ref expr) = *expr { [INFO] [stderr] | ^^^^^^^^^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/analyze.rs:376:17 [INFO] [stderr] | [INFO] [stderr] 376 | / if let &Some(ref alt) = alt { [INFO] [stderr] 377 | | self.visit_stmt(alt); [INFO] [stderr] 378 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [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] 376 | if let Some(ref alt) = *alt { [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^^ [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `symbol_table::SymbolTable` [INFO] [stderr] --> src/symbol_table.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | / pub fn new() -> Self { [INFO] [stderr] 17 | | Self { [INFO] [stderr] 18 | | symbols: HashMap::new(), [INFO] [stderr] 19 | | scope_id: 0, [INFO] [stderr] 20 | | scope_stack: vec![0], [INFO] [stderr] 21 | | } [INFO] [stderr] 22 | | } [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] 9 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 2.17s [INFO] running `"docker" "inspect" "1a6e26f77a910b4b60b5b144930fac4e4f7dc5ee2a13d643cd1bc18365214e1d"` [INFO] running `"docker" "rm" "-f" "1a6e26f77a910b4b60b5b144930fac4e4f7dc5ee2a13d643cd1bc18365214e1d"` [INFO] [stdout] 1a6e26f77a910b4b60b5b144930fac4e4f7dc5ee2a13d643cd1bc18365214e1d