[INFO] updating cached repository evmar/j8t [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/evmar/j8t [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/evmar/j8t" "work/ex/clippy-test-run/sources/stable/gh/evmar/j8t"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/evmar/j8t'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/evmar/j8t" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/evmar/j8t"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/evmar/j8t'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 04705fca9ab2544d47802c0c2569992566ed8139 [INFO] sha for GitHub repo evmar/j8t: 04705fca9ab2544d47802c0c2569992566ed8139 [INFO] validating manifest of evmar/j8t 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 evmar/j8t 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 evmar/j8t [INFO] finished frobbing evmar/j8t [INFO] frobbed toml for evmar/j8t written to work/ex/clippy-test-run/sources/stable/gh/evmar/j8t/Cargo.toml [INFO] started frobbing evmar/j8t [INFO] finished frobbing evmar/j8t [INFO] frobbed toml for evmar/j8t written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/evmar/j8t/Cargo.toml [INFO] crate evmar/j8t 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 evmar/j8t 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/evmar/j8t:/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] 5de13f50c656400f86904be50d4e571429cb3a5fcfe2fd6da5e273087454e81e [INFO] running `"docker" "start" "-a" "5de13f50c656400f86904be50d4e571429cb3a5fcfe2fd6da5e273087454e81e"` [INFO] [stderr] Checking j8t v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/ast.rs:55:13 [INFO] [stderr] | [INFO] [stderr] 55 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/ast.rs:202:13 [INFO] [stderr] | [INFO] [stderr] 202 | span: span, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `span` [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/ast.rs:203:13 [INFO] [stderr] | [INFO] [stderr] 203 | expr: expr, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `expr` [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/lex/lexer.rs:36:13 [INFO] [stderr] | [INFO] [stderr] 36 | start: start, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `start` [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/lex/lexer.rs:37:13 [INFO] [stderr] | [INFO] [stderr] 37 | end: end, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `end` [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/lex/lexer.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | tok: tok, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `tok` [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/lex/lexer.rs:89:17 [INFO] [stderr] | [INFO] [stderr] 89 | saw_newline: saw_newline, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `saw_newline` [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/lex/lexer.rs:90:17 [INFO] [stderr] | [INFO] [stderr] 90 | data: data, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [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/lex/lexer.rs:86:21 [INFO] [stderr] | [INFO] [stderr] 86 | start: start, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `start` [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/lex/lexer.rs:87:21 [INFO] [stderr] | [INFO] [stderr] 87 | end: end, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `end` [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/lex/lexer.rs:133:13 [INFO] [stderr] | [INFO] [stderr] 133 | start: start, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `start` [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/lex/lexer.rs:134:13 [INFO] [stderr] | [INFO] [stderr] 134 | end: end, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `end` [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/lex/scanner.rs:43:13 [INFO] [stderr] | [INFO] [stderr] 43 | input: input, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `input` [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/lex/scanner.rs:94:9 [INFO] [stderr] | [INFO] [stderr] 94 | input: input, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `input` [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/lex/scanner.rs:120:9 [INFO] [stderr] | [INFO] [stderr] 120 | 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/lex/scanner.rs:121:9 [INFO] [stderr] | [INFO] [stderr] 121 | col: col, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `col` [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: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/parse.rs:57:9 [INFO] [stderr] | [INFO] [stderr] 57 | write!(msg, "ERROR:{}:{}: {}\n", line, col, self.msg).unwrap(); [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/parse.rs:58:9 [INFO] [stderr] | [INFO] [stderr] 58 | write!(msg, "{}\n", std::str::from_utf8(source_line).unwrap()).unwrap(); [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: redundant field names in struct initialization [INFO] [stderr] --> src/parse.rs:104:69 [INFO] [stderr] | [INFO] [stderr] 104 | ast::BindingPattern::Object(ast::ObjectBindingPattern { props: props }) [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `props` [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/parse.rs:111:67 [INFO] [stderr] | [INFO] [stderr] 111 | ast::BindingPattern::Array(ast::ArrayBindingPattern { elems: elems }) [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `elems` [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/parse.rs:355:25 [INFO] [stderr] | [INFO] [stderr] 355 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/parse.rs:364:25 [INFO] [stderr] | [INFO] [stderr] 364 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/parse.rs:378:29 [INFO] [stderr] | [INFO] [stderr] 378 | span: span, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `span` [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/parse.rs:384:25 [INFO] [stderr] | [INFO] [stderr] 384 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/parse.rs:385:25 [INFO] [stderr] | [INFO] [stderr] 385 | value: value, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `value` [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/parse.rs:401:32 [INFO] [stderr] | [INFO] [stderr] 401 | Ok((end, ast::Object { props: props })) [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `props` [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/parse.rs:544:25 [INFO] [stderr] | [INFO] [stderr] 544 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/parse.rs:545:25 [INFO] [stderr] | [INFO] [stderr] 545 | is_static: is_static, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `is_static` [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/parse.rs:553:13 [INFO] [stderr] | [INFO] [stderr] 553 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/parse.rs:554:13 [INFO] [stderr] | [INFO] [stderr] 554 | extends: extends, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `extends` [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/parse.rs:555:13 [INFO] [stderr] | [INFO] [stderr] 555 | methods: methods, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `methods` [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/parse.rs:596:73 [INFO] [stderr] | [INFO] [stderr] 596 | ast::BindingPattern::Object(ast::ObjectBindingPattern { props: props }) [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `props` [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/parse.rs:620:71 [INFO] [stderr] | [INFO] [stderr] 620 | ast::BindingPattern::Array(ast::ArrayBindingPattern { elems: elems }) [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `elems` [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/parse.rs:640:13 [INFO] [stderr] | [INFO] [stderr] 640 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/parse.rs:682:13 [INFO] [stderr] | [INFO] [stderr] 682 | params: params, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `params` [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/parse.rs:683:13 [INFO] [stderr] | [INFO] [stderr] 683 | body: body, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `body` [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/parse.rs:704:17 [INFO] [stderr] | [INFO] [stderr] 704 | func: func, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `func` [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/parse.rs:764:29 [INFO] [stderr] | [INFO] [stderr] 764 | rhs: rhs, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rhs` [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/parse.rs:795:29 [INFO] [stderr] | [INFO] [stderr] 795 | rhs: rhs, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rhs` [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/parse.rs:818:29 [INFO] [stderr] | [INFO] [stderr] 818 | params: params, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `params` [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/parse.rs:819:29 [INFO] [stderr] | [INFO] [stderr] 819 | body: body, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `body` [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/parse.rs:831:29 [INFO] [stderr] | [INFO] [stderr] 831 | iftrue: iftrue, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `iftrue` [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/parse.rs:832:29 [INFO] [stderr] | [INFO] [stderr] 832 | iffalse: iffalse, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `iffalse` [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/parse.rs:843:29 [INFO] [stderr] | [INFO] [stderr] 843 | rhs: rhs, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rhs` [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/parse.rs:854:29 [INFO] [stderr] | [INFO] [stderr] 854 | rhs: rhs, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rhs` [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/parse.rs:865:29 [INFO] [stderr] | [INFO] [stderr] 865 | rhs: rhs, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rhs` [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/parse.rs:876:29 [INFO] [stderr] | [INFO] [stderr] 876 | rhs: rhs, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rhs` [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/parse.rs:887:29 [INFO] [stderr] | [INFO] [stderr] 887 | rhs: rhs, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rhs` [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/parse.rs:898:29 [INFO] [stderr] | [INFO] [stderr] 898 | rhs: rhs, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rhs` [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/parse.rs:911:29 [INFO] [stderr] | [INFO] [stderr] 911 | rhs: rhs, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rhs` [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/parse.rs:922:29 [INFO] [stderr] | [INFO] [stderr] 922 | rhs: rhs, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rhs` [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/parse.rs:933:29 [INFO] [stderr] | [INFO] [stderr] 933 | rhs: rhs, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rhs` [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/parse.rs:944:29 [INFO] [stderr] | [INFO] [stderr] 944 | rhs: rhs, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rhs` [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/parse.rs:1003:17 [INFO] [stderr] | [INFO] [stderr] 1003 | pattern: pattern, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `pattern` [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/parse.rs:1004:17 [INFO] [stderr] | [INFO] [stderr] 1004 | init: init, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `init` [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/parse.rs:1029:13 [INFO] [stderr] | [INFO] [stderr] 1029 | cond: cond, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `cond` [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/parse.rs:1030:13 [INFO] [stderr] | [INFO] [stderr] 1030 | iftrue: iftrue, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `iftrue` [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/parse.rs:1031:13 [INFO] [stderr] | [INFO] [stderr] 1031 | else_: else_, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `else_` [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/parse.rs:1041:13 [INFO] [stderr] | [INFO] [stderr] 1041 | cond: cond, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `cond` [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/parse.rs:1042:13 [INFO] [stderr] | [INFO] [stderr] 1042 | body: body, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `body` [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/parse.rs:1054:13 [INFO] [stderr] | [INFO] [stderr] 1054 | cond: cond, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `cond` [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/parse.rs:1055:13 [INFO] [stderr] | [INFO] [stderr] 1055 | body: body, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `body` [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/parse.rs:1078:21 [INFO] [stderr] | [INFO] [stderr] 1078 | decls: decls, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `decls` [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/parse.rs:1117:25 [INFO] [stderr] | [INFO] [stderr] 1117 | in_of: in_of, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `in_of` [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/parse.rs:1126:25 [INFO] [stderr] | [INFO] [stderr] 1126 | loop_var: loop_var, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `loop_var` [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/parse.rs:1127:25 [INFO] [stderr] | [INFO] [stderr] 1127 | in_of: in_of, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `in_of` [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/parse.rs:1164:17 [INFO] [stderr] | [INFO] [stderr] 1164 | loop_var: loop_var, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `loop_var` [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/parse.rs:1189:13 [INFO] [stderr] | [INFO] [stderr] 1189 | init: init, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `init` [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/parse.rs:1192:13 [INFO] [stderr] | [INFO] [stderr] 1192 | body: body, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `body` [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/parse.rs:1211:25 [INFO] [stderr] | [INFO] [stderr] 1211 | stmts: stmts, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `stmts` [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/parse.rs:1220:25 [INFO] [stderr] | [INFO] [stderr] 1220 | stmts: stmts, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `stmts` [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/parse.rs:1230:13 [INFO] [stderr] | [INFO] [stderr] 1230 | expr: expr, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `expr` [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/parse.rs:1231:13 [INFO] [stderr] | [INFO] [stderr] 1231 | cases: cases, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `cases` [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/parse.rs:1258:13 [INFO] [stderr] | [INFO] [stderr] 1258 | block: block, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `block` [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/parse.rs:1259:13 [INFO] [stderr] | [INFO] [stderr] 1259 | catch: catch, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `catch` [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/parse.rs:1260:13 [INFO] [stderr] | [INFO] [stderr] 1260 | finally: finally, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `finally` [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/parse.rs:1314:21 [INFO] [stderr] | [INFO] [stderr] 1314 | typ: typ, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `typ` [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/parse.rs:1315:21 [INFO] [stderr] | [INFO] [stderr] 1315 | decls: decls, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `decls` [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/parse.rs:1364:25 [INFO] [stderr] | [INFO] [stderr] 1364 | label: label, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `label` [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/parse.rs:1365:25 [INFO] [stderr] | [INFO] [stderr] 1365 | stmt: stmt, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `stmt` [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/parse.rs:1400:13 [INFO] [stderr] | [INFO] [stderr] 1400 | stmts: stmts, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `stmts` [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/parse.rs:1409:13 [INFO] [stderr] | [INFO] [stderr] 1409 | stmts: stmts, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `stmts` [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/rename.rs:124:21 [INFO] [stderr] | [INFO] [stderr] 124 | gen: gen, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `gen` [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/rename.rs:125:21 [INFO] [stderr] | [INFO] [stderr] 125 | debug: debug, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `debug` [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/rename.rs:138:17 [INFO] [stderr] | [INFO] [stderr] 138 | gen: gen, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `gen` [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/rename.rs:139:17 [INFO] [stderr] | [INFO] [stderr] 139 | debug: debug, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `debug` [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/eval.rs:64:13 [INFO] [stderr] | [INFO] [stderr] 64 | decls: decls, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `decls` [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/eval.rs:70:13 [INFO] [stderr] | [INFO] [stderr] 70 | scope: scope, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `scope` [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/gen.rs:132:13 [INFO] [stderr] | [INFO] [stderr] 132 | w: w, [INFO] [stderr] | ^^^^ help: replace it with: `w` [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/run.rs:47:13 [INFO] [stderr] | [INFO] [stderr] 47 | log: log, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `log` [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/run.rs:49:13 [INFO] [stderr] | [INFO] [stderr] 49 | clock: clock, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `clock` [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/ast.rs:55:13 [INFO] [stderr] | [INFO] [stderr] 55 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/ast.rs:202:13 [INFO] [stderr] | [INFO] [stderr] 202 | span: span, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `span` [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/ast.rs:203:13 [INFO] [stderr] | [INFO] [stderr] 203 | expr: expr, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `expr` [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/lex/lexer.rs:36:13 [INFO] [stderr] | [INFO] [stderr] 36 | start: start, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `start` [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/lex/lexer.rs:37:13 [INFO] [stderr] | [INFO] [stderr] 37 | end: end, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `end` [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/lex/lexer.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | tok: tok, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `tok` [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/lex/lexer.rs:89:17 [INFO] [stderr] | [INFO] [stderr] 89 | saw_newline: saw_newline, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `saw_newline` [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/lex/lexer.rs:90:17 [INFO] [stderr] | [INFO] [stderr] 90 | data: data, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [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/lex/lexer.rs:86:21 [INFO] [stderr] | [INFO] [stderr] 86 | start: start, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `start` [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/lex/lexer.rs:87:21 [INFO] [stderr] | [INFO] [stderr] 87 | end: end, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `end` [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/lex/lexer.rs:133:13 [INFO] [stderr] | [INFO] [stderr] 133 | start: start, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `start` [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/lex/lexer.rs:134:13 [INFO] [stderr] | [INFO] [stderr] 134 | end: end, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `end` [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/lex/scanner.rs:43:13 [INFO] [stderr] | [INFO] [stderr] 43 | input: input, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `input` [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/lex/scanner.rs:94:9 [INFO] [stderr] | [INFO] [stderr] 94 | input: input, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `input` [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/lex/scanner.rs:120:9 [INFO] [stderr] | [INFO] [stderr] 120 | 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/lex/scanner.rs:121:9 [INFO] [stderr] | [INFO] [stderr] 121 | col: col, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `col` [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: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/parse.rs:57:9 [INFO] [stderr] | [INFO] [stderr] 57 | write!(msg, "ERROR:{}:{}: {}\n", line, col, self.msg).unwrap(); [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/parse.rs:58:9 [INFO] [stderr] | [INFO] [stderr] 58 | write!(msg, "{}\n", std::str::from_utf8(source_line).unwrap()).unwrap(); [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: redundant field names in struct initialization [INFO] [stderr] --> src/parse.rs:104:69 [INFO] [stderr] | [INFO] [stderr] 104 | ast::BindingPattern::Object(ast::ObjectBindingPattern { props: props }) [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `props` [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/parse.rs:111:67 [INFO] [stderr] | [INFO] [stderr] 111 | ast::BindingPattern::Array(ast::ArrayBindingPattern { elems: elems }) [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `elems` [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/parse.rs:355:25 [INFO] [stderr] | [INFO] [stderr] 355 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/parse.rs:364:25 [INFO] [stderr] | [INFO] [stderr] 364 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/parse.rs:378:29 [INFO] [stderr] | [INFO] [stderr] 378 | span: span, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `span` [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/parse.rs:384:25 [INFO] [stderr] | [INFO] [stderr] 384 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/parse.rs:385:25 [INFO] [stderr] | [INFO] [stderr] 385 | value: value, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `value` [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/parse.rs:401:32 [INFO] [stderr] | [INFO] [stderr] 401 | Ok((end, ast::Object { props: props })) [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `props` [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/parse.rs:544:25 [INFO] [stderr] | [INFO] [stderr] 544 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/parse.rs:545:25 [INFO] [stderr] | [INFO] [stderr] 545 | is_static: is_static, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `is_static` [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/parse.rs:553:13 [INFO] [stderr] | [INFO] [stderr] 553 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/parse.rs:554:13 [INFO] [stderr] | [INFO] [stderr] 554 | extends: extends, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `extends` [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/parse.rs:555:13 [INFO] [stderr] | [INFO] [stderr] 555 | methods: methods, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `methods` [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/parse.rs:596:73 [INFO] [stderr] | [INFO] [stderr] 596 | ast::BindingPattern::Object(ast::ObjectBindingPattern { props: props }) [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `props` [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/parse.rs:620:71 [INFO] [stderr] | [INFO] [stderr] 620 | ast::BindingPattern::Array(ast::ArrayBindingPattern { elems: elems }) [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `elems` [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/parse.rs:640:13 [INFO] [stderr] | [INFO] [stderr] 640 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/parse.rs:682:13 [INFO] [stderr] | [INFO] [stderr] 682 | params: params, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `params` [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/parse.rs:683:13 [INFO] [stderr] | [INFO] [stderr] 683 | body: body, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `body` [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/parse.rs:704:17 [INFO] [stderr] | [INFO] [stderr] 704 | func: func, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `func` [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/parse.rs:764:29 [INFO] [stderr] | [INFO] [stderr] 764 | rhs: rhs, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rhs` [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/parse.rs:795:29 [INFO] [stderr] | [INFO] [stderr] 795 | rhs: rhs, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rhs` [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/parse.rs:818:29 [INFO] [stderr] | [INFO] [stderr] 818 | params: params, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `params` [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/parse.rs:819:29 [INFO] [stderr] | [INFO] [stderr] 819 | body: body, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `body` [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/parse.rs:831:29 [INFO] [stderr] | [INFO] [stderr] 831 | iftrue: iftrue, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `iftrue` [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/parse.rs:832:29 [INFO] [stderr] | [INFO] [stderr] 832 | iffalse: iffalse, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `iffalse` [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/parse.rs:843:29 [INFO] [stderr] | [INFO] [stderr] 843 | rhs: rhs, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rhs` [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/parse.rs:854:29 [INFO] [stderr] | [INFO] [stderr] 854 | rhs: rhs, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rhs` [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/parse.rs:865:29 [INFO] [stderr] | [INFO] [stderr] 865 | rhs: rhs, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rhs` [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/parse.rs:876:29 [INFO] [stderr] | [INFO] [stderr] 876 | rhs: rhs, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rhs` [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/parse.rs:887:29 [INFO] [stderr] | [INFO] [stderr] 887 | rhs: rhs, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rhs` [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/parse.rs:898:29 [INFO] [stderr] | [INFO] [stderr] 898 | rhs: rhs, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rhs` [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/parse.rs:911:29 [INFO] [stderr] | [INFO] [stderr] 911 | rhs: rhs, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rhs` [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/parse.rs:922:29 [INFO] [stderr] | [INFO] [stderr] 922 | rhs: rhs, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rhs` [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/parse.rs:933:29 [INFO] [stderr] | [INFO] [stderr] 933 | rhs: rhs, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rhs` [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/parse.rs:944:29 [INFO] [stderr] | [INFO] [stderr] 944 | rhs: rhs, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rhs` [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/parse.rs:1003:17 [INFO] [stderr] | [INFO] [stderr] 1003 | pattern: pattern, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `pattern` [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/parse.rs:1004:17 [INFO] [stderr] | [INFO] [stderr] 1004 | init: init, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `init` [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/parse.rs:1029:13 [INFO] [stderr] | [INFO] [stderr] 1029 | cond: cond, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `cond` [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/parse.rs:1030:13 [INFO] [stderr] | [INFO] [stderr] 1030 | iftrue: iftrue, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `iftrue` [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/parse.rs:1031:13 [INFO] [stderr] | [INFO] [stderr] 1031 | else_: else_, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `else_` [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/parse.rs:1041:13 [INFO] [stderr] | [INFO] [stderr] 1041 | cond: cond, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `cond` [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/parse.rs:1042:13 [INFO] [stderr] | [INFO] [stderr] 1042 | body: body, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `body` [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/parse.rs:1054:13 [INFO] [stderr] | [INFO] [stderr] 1054 | cond: cond, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `cond` [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/parse.rs:1055:13 [INFO] [stderr] | [INFO] [stderr] 1055 | body: body, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `body` [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/parse.rs:1078:21 [INFO] [stderr] | [INFO] [stderr] 1078 | decls: decls, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `decls` [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/parse.rs:1117:25 [INFO] [stderr] | [INFO] [stderr] 1117 | in_of: in_of, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `in_of` [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/parse.rs:1126:25 [INFO] [stderr] | [INFO] [stderr] 1126 | loop_var: loop_var, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `loop_var` [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/parse.rs:1127:25 [INFO] [stderr] | [INFO] [stderr] 1127 | in_of: in_of, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `in_of` [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/parse.rs:1164:17 [INFO] [stderr] | [INFO] [stderr] 1164 | loop_var: loop_var, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `loop_var` [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/parse.rs:1189:13 [INFO] [stderr] | [INFO] [stderr] 1189 | init: init, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `init` [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/parse.rs:1192:13 [INFO] [stderr] | [INFO] [stderr] 1192 | body: body, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `body` [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/parse.rs:1211:25 [INFO] [stderr] | [INFO] [stderr] 1211 | stmts: stmts, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `stmts` [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/parse.rs:1220:25 [INFO] [stderr] | [INFO] [stderr] 1220 | stmts: stmts, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `stmts` [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/parse.rs:1230:13 [INFO] [stderr] | [INFO] [stderr] 1230 | expr: expr, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `expr` [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/parse.rs:1231:13 [INFO] [stderr] | [INFO] [stderr] 1231 | cases: cases, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `cases` [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/parse.rs:1258:13 [INFO] [stderr] | [INFO] [stderr] 1258 | block: block, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `block` [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/parse.rs:1259:13 [INFO] [stderr] | [INFO] [stderr] 1259 | catch: catch, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `catch` [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/parse.rs:1260:13 [INFO] [stderr] | [INFO] [stderr] 1260 | finally: finally, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `finally` [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/parse.rs:1314:21 [INFO] [stderr] | [INFO] [stderr] 1314 | typ: typ, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `typ` [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/parse.rs:1315:21 [INFO] [stderr] | [INFO] [stderr] 1315 | decls: decls, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `decls` [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/parse.rs:1364:25 [INFO] [stderr] | [INFO] [stderr] 1364 | label: label, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `label` [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/parse.rs:1365:25 [INFO] [stderr] | [INFO] [stderr] 1365 | stmt: stmt, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `stmt` [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/parse.rs:1400:13 [INFO] [stderr] | [INFO] [stderr] 1400 | stmts: stmts, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `stmts` [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/parse.rs:1409:13 [INFO] [stderr] | [INFO] [stderr] 1409 | stmts: stmts, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `stmts` [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/rename.rs:124:21 [INFO] [stderr] | [INFO] [stderr] 124 | gen: gen, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `gen` [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/rename.rs:125:21 [INFO] [stderr] | [INFO] [stderr] 125 | debug: debug, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `debug` [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/rename.rs:138:17 [INFO] [stderr] | [INFO] [stderr] 138 | gen: gen, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `gen` [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/rename.rs:139:17 [INFO] [stderr] | [INFO] [stderr] 139 | debug: debug, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `debug` [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/eval.rs:64:13 [INFO] [stderr] | [INFO] [stderr] 64 | decls: decls, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `decls` [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/eval.rs:70:13 [INFO] [stderr] | [INFO] [stderr] 70 | scope: scope, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `scope` [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/gen.rs:132:13 [INFO] [stderr] | [INFO] [stderr] 132 | w: w, [INFO] [stderr] | ^^^^ help: replace it with: `w` [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/run.rs:47:13 [INFO] [stderr] | [INFO] [stderr] 47 | log: log, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `log` [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/run.rs:49:13 [INFO] [stderr] | [INFO] [stderr] 49 | clock: clock, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `clock` [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 return statement [INFO] [stderr] --> src/lex/scan.rs:541:5 [INFO] [stderr] | [INFO] [stderr] 541 | return Tok::Ident; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Tok::Ident` [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/lex/scanner.rs:88:9 [INFO] [stderr] | [INFO] [stderr] 88 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [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/lex/scanner.rs:118:5 [INFO] [stderr] | [INFO] [stderr] 118 | / return Context { [INFO] [stderr] 119 | | source_line: &input[line_start..line_end], [INFO] [stderr] 120 | | line: line, [INFO] [stderr] 121 | | col: col, [INFO] [stderr] 122 | | }; [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] 118 | Context { [INFO] [stderr] 119 | source_line: &input[line_start..line_end], [INFO] [stderr] 120 | line: line, [INFO] [stderr] 121 | col: col, [INFO] [stderr] 122 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/rename.rs:20:27 [INFO] [stderr] | [INFO] [stderr] 20 | const NAME_GEN_ALPHABET: &'static [u8] = b"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_$"; [INFO] [stderr] | -^^^^^^^----- help: consider removing `'static`: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/rename.rs:51:9 [INFO] [stderr] | [INFO] [stderr] 51 | return String::from_utf8_lossy(&name).into(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `String::from_utf8_lossy(&name).into()` [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/bind.rs:22:17 [INFO] [stderr] | [INFO] [stderr] 22 | const EXTERNS: &'static str = r#" [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/bind.rs:101:5 [INFO] [stderr] | [INFO] [stderr] 101 | return scope; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `scope` [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/eval.rs:75:5 [INFO] [stderr] | [INFO] [stderr] 75 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [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/lex/scan.rs:541:5 [INFO] [stderr] | [INFO] [stderr] 541 | return Tok::Ident; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Tok::Ident` [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/lex/scanner.rs:88:9 [INFO] [stderr] | [INFO] [stderr] 88 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [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/lex/scanner.rs:118:5 [INFO] [stderr] | [INFO] [stderr] 118 | / return Context { [INFO] [stderr] 119 | | source_line: &input[line_start..line_end], [INFO] [stderr] 120 | | line: line, [INFO] [stderr] 121 | | col: col, [INFO] [stderr] 122 | | }; [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] 118 | Context { [INFO] [stderr] 119 | source_line: &input[line_start..line_end], [INFO] [stderr] 120 | line: line, [INFO] [stderr] 121 | col: col, [INFO] [stderr] 122 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/rename.rs:20:27 [INFO] [stderr] | [INFO] [stderr] 20 | const NAME_GEN_ALPHABET: &'static [u8] = b"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_$"; [INFO] [stderr] | -^^^^^^^----- help: consider removing `'static`: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/rename.rs:51:9 [INFO] [stderr] | [INFO] [stderr] 51 | return String::from_utf8_lossy(&name).into(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `String::from_utf8_lossy(&name).into()` [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/bind.rs:22:17 [INFO] [stderr] | [INFO] [stderr] 22 | const EXTERNS: &'static str = r#" [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/bind.rs:101:5 [INFO] [stderr] | [INFO] [stderr] 101 | return scope; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `scope` [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/eval.rs:75:5 [INFO] [stderr] | [INFO] [stderr] 75 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [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: you should consider deriving a `Default` implementation for `ast::SymGen` [INFO] [stderr] --> src/ast.rs:47:5 [INFO] [stderr] | [INFO] [stderr] 47 | / pub fn new() -> SymGen { [INFO] [stderr] 48 | | SymGen { next: 1 } [INFO] [stderr] 49 | | } [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] 42 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/ast.rs:56:32 [INFO] [stderr] | [INFO] [stderr] 56 | name: RefCell::new(String::from(name.into())), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `name.into()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `ast::Scope` [INFO] [stderr] --> src/ast.rs:72:5 [INFO] [stderr] | [INFO] [stderr] 72 | / pub fn new() -> Scope { [INFO] [stderr] 73 | | Scope { [INFO] [stderr] 74 | | bindings: HashMap::new(), [INFO] [stderr] 75 | | } [INFO] [stderr] 76 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [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] 68 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/ast.rs:83:9 [INFO] [stderr] | [INFO] [stderr] 83 | self.bindings.get(name).map(|s| s.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.bindings.get(name).cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/ast.rs:92:34 [INFO] [stderr] | [INFO] [stderr] 92 | let prune: Vec = self.iter() [INFO] [stderr] | __________________________________^ [INFO] [stderr] 93 | | .filter(|sym| std::rc::Rc::strong_count(sym) == 1) [INFO] [stderr] 94 | | .map(|sym| sym.clone()) [INFO] [stderr] | |___________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] help: Consider calling the dedicated `cloned` method [INFO] [stderr] | [INFO] [stderr] 92 | let prune: Vec = self.iter() [INFO] [stderr] 93 | .filter(|sym| std::rc::Rc::strong_count(sym) == 1).cloned() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `ast::SmallScope` [INFO] [stderr] --> src/ast.rs:108:5 [INFO] [stderr] | [INFO] [stderr] 108 | / pub fn new() -> SmallScope { [INFO] [stderr] 109 | | SmallScope { [INFO] [stderr] 110 | | bindings: Vec::new(), [INFO] [stderr] 111 | | } [INFO] [stderr] 112 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [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] 103 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/ast.rs:116:9 [INFO] [stderr] | [INFO] [stderr] 116 | / self.bindings [INFO] [stderr] 117 | | .iter() [INFO] [stderr] 118 | | .find(|s| *s.name.borrow() == *sym.name.borrow()) [INFO] [stderr] 119 | | .map(|t| t.clone()) [INFO] [stderr] | |_______________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] help: Consider calling the dedicated `cloned` method [INFO] [stderr] | [INFO] [stderr] 116 | self.bindings [INFO] [stderr] 117 | .iter() [INFO] [stderr] 118 | .find(|s| *s.name.borrow() == *sym.name.borrow()).cloned() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ast.rs:407:22 [INFO] [stderr] | [INFO] [stderr] 407 | pub fn to_string(&self) -> &'static str { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ast.rs:408:9 [INFO] [stderr] | [INFO] [stderr] 408 | / match self { [INFO] [stderr] 409 | | &VarDeclType::Var => "var", [INFO] [stderr] 410 | | &VarDeclType::Const => "const", [INFO] [stderr] 411 | | &VarDeclType::Let => "let", [INFO] [stderr] 412 | | } [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] 408 | match *self { [INFO] [stderr] 409 | VarDeclType::Var => "var", [INFO] [stderr] 410 | VarDeclType::Const => "const", [INFO] [stderr] 411 | VarDeclType::Let => "let", [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/lex/hand.rs:71:26 [INFO] [stderr] | [INFO] [stderr] 71 | '0'...'9' => c - '0' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::char_lit_as_u8)] on by default [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'0' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/lex/hand.rs:72:31 [INFO] [stderr] | [INFO] [stderr] 72 | 'A'...'F' => 10 + c - 'A' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'A' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/lex/hand.rs:73:31 [INFO] [stderr] | [INFO] [stderr] 73 | 'a'...'f' => 10 + c - 'a' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'a' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/lex/hand.rs:83:24 [INFO] [stderr] | [INFO] [stderr] 83 | Some(d) => d as u64, [INFO] [stderr] | ^^^^^^^^ help: try: `u64::from(d)` [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/lex/hand.rs:147:28 [INFO] [stderr] | [INFO] [stderr] 147 | Some(d) => d as u32, [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(d)` [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/lex/hand.rs:159:32 [INFO] [stderr] | [INFO] [stderr] 159 | Some(d) => d as u32, [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(d)` [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/lex/hand.rs:176:20 [INFO] [stderr] | [INFO] [stderr] 176 | Some(d) => d as u32, [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(d)` [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/lex/hand.rs:180:20 [INFO] [stderr] | [INFO] [stderr] 180 | Some(d) => d as u32, [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(d)` [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 character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/lex/hand.rs:201:37 [INFO] [stderr] | [INFO] [stderr] 201 | 'n' => str.push('\n' as u8), [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'\n' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/lex/hand.rs:202:37 [INFO] [stderr] | [INFO] [stderr] 202 | 'r' => str.push('\r' as u8), [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'\r' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/lex/hand.rs:203:37 [INFO] [stderr] | [INFO] [stderr] 203 | 't' => str.push('\t' as u8), [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'\t' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/lex/hand.rs:210:38 [INFO] [stderr] | [INFO] [stderr] 210 | str.push('?' as u8); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'?' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/lex/hand.rs:220:38 [INFO] [stderr] | [INFO] [stderr] 220 | str.push('?' as u8); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'?' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/lex/hand.rs:223:37 [INFO] [stderr] | [INFO] [stderr] 223 | '"' => str.push('"' as u8), [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'"' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/lex/hand.rs:224:38 [INFO] [stderr] | [INFO] [stderr] 224 | '\'' => str.push('\'' as u8), [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'\'' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/lex/hand.rs:225:38 [INFO] [stderr] | [INFO] [stderr] 225 | '\\' => str.push('\\' as u8), [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'\\' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/lex/hand.rs:226:37 [INFO] [stderr] | [INFO] [stderr] 226 | '0' => str.push('\0' as u8), [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'\0' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/lex/hand.rs:228:37 [INFO] [stderr] | [INFO] [stderr] 228 | '/' => str.push('/' as u8), [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'/' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lex/scan.rs:117:18 [INFO] [stderr] | [INFO] [stderr] 117 | pub fn is_kw(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lex/scan.rs:118:9 [INFO] [stderr] | [INFO] [stderr] 118 | / match self { [INFO] [stderr] 119 | | &Tok::EOF => false, [INFO] [stderr] 120 | | &Tok::LBrace => false, [INFO] [stderr] 121 | | &Tok::LParen => false, [INFO] [stderr] ... | [INFO] [stderr] 211 | | &Tok::Template => false, [INFO] [stderr] 212 | | } [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] 118 | match *self { [INFO] [stderr] 119 | Tok::EOF => false, [INFO] [stderr] 120 | Tok::LBrace => false, [INFO] [stderr] 121 | Tok::LParen => false, [INFO] [stderr] 122 | Tok::RParen => false, [INFO] [stderr] 123 | Tok::LSquare => false, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:419:24 [INFO] [stderr] | [INFO] [stderr] 419 | if text == "do".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"do"` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::string_lit_as_bytes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:422:24 [INFO] [stderr] | [INFO] [stderr] 422 | if text == "if".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"if"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:425:24 [INFO] [stderr] | [INFO] [stderr] 425 | if text == "in".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"in"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:428:24 [INFO] [stderr] | [INFO] [stderr] 428 | if text == "of".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"of"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:433:24 [INFO] [stderr] | [INFO] [stderr] 433 | if text == "for".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"for"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:436:24 [INFO] [stderr] | [INFO] [stderr] 436 | if text == "let".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"let"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:439:24 [INFO] [stderr] | [INFO] [stderr] 439 | if text == "new".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"new"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:442:24 [INFO] [stderr] | [INFO] [stderr] 442 | if text == "try".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"try"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:445:24 [INFO] [stderr] | [INFO] [stderr] 445 | if text == "var".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"var"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:450:24 [INFO] [stderr] | [INFO] [stderr] 450 | if text == "case".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"case"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:453:24 [INFO] [stderr] | [INFO] [stderr] 453 | if text == "else".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"else"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:456:24 [INFO] [stderr] | [INFO] [stderr] 456 | if text == "this".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"this"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:459:24 [INFO] [stderr] | [INFO] [stderr] 459 | if text == "void".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"void"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:462:24 [INFO] [stderr] | [INFO] [stderr] 462 | if text == "with".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"with"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:467:24 [INFO] [stderr] | [INFO] [stderr] 467 | if text == "await".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"await"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:470:24 [INFO] [stderr] | [INFO] [stderr] 470 | if text == "break".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"break"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:473:24 [INFO] [stderr] | [INFO] [stderr] 473 | if text == "catch".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"catch"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:476:24 [INFO] [stderr] | [INFO] [stderr] 476 | if text == "class".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"class"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:479:24 [INFO] [stderr] | [INFO] [stderr] 479 | if text == "const".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"const"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:482:24 [INFO] [stderr] | [INFO] [stderr] 482 | if text == "throw".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"throw"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:485:24 [INFO] [stderr] | [INFO] [stderr] 485 | if text == "while".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"while"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:488:24 [INFO] [stderr] | [INFO] [stderr] 488 | if text == "yield".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"yield"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:493:24 [INFO] [stderr] | [INFO] [stderr] 493 | if text == "delete".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"delete"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:496:24 [INFO] [stderr] | [INFO] [stderr] 496 | if text == "export".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"export"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:499:24 [INFO] [stderr] | [INFO] [stderr] 499 | if text == "import".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"import"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:502:24 [INFO] [stderr] | [INFO] [stderr] 502 | if text == "return".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"return"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:505:24 [INFO] [stderr] | [INFO] [stderr] 505 | if text == "switch".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"switch"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:508:24 [INFO] [stderr] | [INFO] [stderr] 508 | if text == "typeof".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"typeof"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:513:24 [INFO] [stderr] | [INFO] [stderr] 513 | if text == "default".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"default"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:516:24 [INFO] [stderr] | [INFO] [stderr] 516 | if text == "extends".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"extends"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:519:24 [INFO] [stderr] | [INFO] [stderr] 519 | if text == "finally".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"finally"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:524:24 [INFO] [stderr] | [INFO] [stderr] 524 | if text == "continue".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"continue"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:527:24 [INFO] [stderr] | [INFO] [stderr] 527 | if text == "debugger".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"debugger"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:530:24 [INFO] [stderr] | [INFO] [stderr] 530 | if text == "function".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"function"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:535:24 [INFO] [stderr] | [INFO] [stderr] 535 | if text == "instanceof".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"instanceof"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ops.rs:37:21 [INFO] [stderr] | [INFO] [stderr] 37 | f.write_str(match self { [INFO] [stderr] | _____________________^ [INFO] [stderr] 38 | | &UnOp::Not => "!", [INFO] [stderr] 39 | | &UnOp::BNot => "~", [INFO] [stderr] 40 | | &UnOp::PlusPlus => "++", [INFO] [stderr] ... | [INFO] [stderr] 49 | | &UnOp::Void => "void", [INFO] [stderr] 50 | | }) [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] 37 | f.write_str(match *self { [INFO] [stderr] 38 | UnOp::Not => "!", [INFO] [stderr] 39 | UnOp::BNot => "~", [INFO] [stderr] 40 | UnOp::PlusPlus => "++", [INFO] [stderr] 41 | UnOp::MinusMinus => "--", [INFO] [stderr] 42 | UnOp::Minus => "-", [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ops.rs:113:21 [INFO] [stderr] | [INFO] [stderr] 113 | f.write_str(match self { [INFO] [stderr] | _____________________^ [INFO] [stderr] 114 | | &BinOp::Eq => "=", [INFO] [stderr] 115 | | &BinOp::LT => "<", [INFO] [stderr] 116 | | &BinOp::GT => ">", [INFO] [stderr] ... | [INFO] [stderr] 151 | | &BinOp::InstanceOf => "instanceof", [INFO] [stderr] 152 | | }) [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] 113 | f.write_str(match *self { [INFO] [stderr] 114 | BinOp::Eq => "=", [INFO] [stderr] 115 | BinOp::LT => "<", [INFO] [stderr] 116 | BinOp::GT => ">", [INFO] [stderr] 117 | BinOp::LTE => "<=", [INFO] [stderr] 118 | BinOp::GTE => ">=", [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/parse.rs:115:22 [INFO] [stderr] | [INFO] [stderr] 115 | msg: format!("couldn't convert expr into binding"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"couldn't convert expr into binding".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parse.rs:146:5 [INFO] [stderr] | [INFO] [stderr] 146 | / match call.func.expr { [INFO] [stderr] 147 | | ast::Expr::Ident(ref s) => { [INFO] [stderr] 148 | | if *s.name.borrow() == "async" { [INFO] [stderr] 149 | | return true; [INFO] [stderr] ... | [INFO] [stderr] 152 | | _ => {} [INFO] [stderr] 153 | | } [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] 146 | if let ast::Expr::Ident(ref s) = call.func.expr { [INFO] [stderr] 147 | if *s.name.borrow() == "async" { [INFO] [stderr] 148 | return true; [INFO] [stderr] 149 | } [INFO] [stderr] 150 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/parse.rs:211:22 [INFO] [stderr] | [INFO] [stderr] 211 | msg: format!("couldn't convert left side of arrow into parameter list"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"couldn't convert left side of arrow into parameter list".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/parse.rs:583:21 [INFO] [stderr] | [INFO] [stderr] 583 | / let mut init: Option = None; [INFO] [stderr] 584 | | if self.lex_peek()? == Tok::Eq { [INFO] [stderr] 585 | | self.lex_read()?; [INFO] [stderr] 586 | | init = Some(self.expr_prec(3 /* assignment expr */)?); [INFO] [stderr] 587 | | } [INFO] [stderr] | |_____________________^ help: it is more idiomatic to write: `let init = if self.lex_peek()? == Tok::Eq { ..; Some(self.expr_prec(3 /* assignment expr */)?) } else { 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: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/parse.rs:607:21 [INFO] [stderr] | [INFO] [stderr] 607 | / let mut init: Option = None; [INFO] [stderr] 608 | | if self.lex_peek()? == Tok::Eq { [INFO] [stderr] 609 | | self.lex_read()?; [INFO] [stderr] 610 | | init = Some(self.expr_prec(3 /* assignment expr */)?); [INFO] [stderr] 611 | | } [INFO] [stderr] | |_____________________^ help: it is more idiomatic to write: `let init = if self.lex_peek()? == Tok::Eq { ..; Some(self.expr_prec(3 /* assignment expr */)?) } else { None };` [INFO] [stderr] | [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: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/parse.rs:657:13 [INFO] [stderr] | [INFO] [stderr] 657 | / let mut init: Option = None; [INFO] [stderr] 658 | | if self.lex_peek()? == Tok::Eq { [INFO] [stderr] 659 | | self.lex_read()?; [INFO] [stderr] 660 | | init = Some(self.expr_prec(3 /* assignment expr */)?); [INFO] [stderr] 661 | | } [INFO] [stderr] | |_____________^ help: it is more idiomatic to write: `let init = if self.lex_peek()? == Tok::Eq { ..; Some(self.expr_prec(3 /* assignment expr */)?) } else { None };` [INFO] [stderr] | [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: the function has a cyclomatic complexity of 58 [INFO] [stderr] --> src/parse.rs:710:5 [INFO] [stderr] | [INFO] [stderr] 710 | / fn expr_prec(&mut self, prec: usize) -> ParseResult { [INFO] [stderr] 711 | | // prec is precedence: [INFO] [stderr] 712 | | // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence [INFO] [stderr] 713 | | [INFO] [stderr] ... | [INFO] [stderr] 985 | | } [INFO] [stderr] 986 | | } [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] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/parse.rs:757:31 [INFO] [stderr] | [INFO] [stderr] 757 | Tok::Comma if prec <= 0 => { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::absurd_extreme_comparisons)] on by default [INFO] [stderr] = help: because 0 is the minimum value for this type, the case where the two sides are not equal never occurs, consider using prec == 0 instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `ast::SymGen` [INFO] [stderr] --> src/ast.rs:47:5 [INFO] [stderr] | [INFO] [stderr] 47 | / pub fn new() -> SymGen { [INFO] [stderr] 48 | | SymGen { next: 1 } [INFO] [stderr] 49 | | } [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] 42 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/ast.rs:56:32 [INFO] [stderr] | [INFO] [stderr] 56 | name: RefCell::new(String::from(name.into())), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `name.into()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `ast::Scope` [INFO] [stderr] --> src/ast.rs:72:5 [INFO] [stderr] | [INFO] [stderr] 72 | / pub fn new() -> Scope { [INFO] [stderr] 73 | | Scope { [INFO] [stderr] 74 | | bindings: HashMap::new(), [INFO] [stderr] 75 | | } [INFO] [stderr] 76 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [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] 68 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/ast.rs:83:9 [INFO] [stderr] | [INFO] [stderr] 83 | self.bindings.get(name).map(|s| s.clone()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.bindings.get(name).cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/ast.rs:92:34 [INFO] [stderr] | [INFO] [stderr] 92 | let prune: Vec = self.iter() [INFO] [stderr] | __________________________________^ [INFO] [stderr] 93 | | .filter(|sym| std::rc::Rc::strong_count(sym) == 1) [INFO] [stderr] 94 | | .map(|sym| sym.clone()) [INFO] [stderr] | |___________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] help: Consider calling the dedicated `cloned` method [INFO] [stderr] | [INFO] [stderr] 92 | let prune: Vec = self.iter() [INFO] [stderr] 93 | .filter(|sym| std::rc::Rc::strong_count(sym) == 1).cloned() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `ast::SmallScope` [INFO] [stderr] --> src/ast.rs:108:5 [INFO] [stderr] | [INFO] [stderr] 108 | / pub fn new() -> SmallScope { [INFO] [stderr] 109 | | SmallScope { [INFO] [stderr] 110 | | bindings: Vec::new(), [INFO] [stderr] 111 | | } [INFO] [stderr] 112 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [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] 103 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/ast.rs:116:9 [INFO] [stderr] | [INFO] [stderr] 116 | / self.bindings [INFO] [stderr] 117 | | .iter() [INFO] [stderr] 118 | | .find(|s| *s.name.borrow() == *sym.name.borrow()) [INFO] [stderr] 119 | | .map(|t| t.clone()) [INFO] [stderr] | |_______________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] help: Consider calling the dedicated `cloned` method [INFO] [stderr] | [INFO] [stderr] 116 | self.bindings [INFO] [stderr] 117 | .iter() [INFO] [stderr] 118 | .find(|s| *s.name.borrow() == *sym.name.borrow()).cloned() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ast.rs:407:22 [INFO] [stderr] | [INFO] [stderr] 407 | pub fn to_string(&self) -> &'static str { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ast.rs:408:9 [INFO] [stderr] | [INFO] [stderr] 408 | / match self { [INFO] [stderr] 409 | | &VarDeclType::Var => "var", [INFO] [stderr] 410 | | &VarDeclType::Const => "const", [INFO] [stderr] 411 | | &VarDeclType::Let => "let", [INFO] [stderr] 412 | | } [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] 408 | match *self { [INFO] [stderr] 409 | VarDeclType::Var => "var", [INFO] [stderr] 410 | VarDeclType::Const => "const", [INFO] [stderr] 411 | VarDeclType::Let => "let", [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/lex/hand.rs:71:26 [INFO] [stderr] | [INFO] [stderr] 71 | '0'...'9' => c - '0' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::char_lit_as_u8)] on by default [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'0' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/lex/hand.rs:72:31 [INFO] [stderr] | [INFO] [stderr] 72 | 'A'...'F' => 10 + c - 'A' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'A' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/lex/hand.rs:73:31 [INFO] [stderr] | [INFO] [stderr] 73 | 'a'...'f' => 10 + c - 'a' as u8, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'a' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/lex/hand.rs:83:24 [INFO] [stderr] | [INFO] [stderr] 83 | Some(d) => d as u64, [INFO] [stderr] | ^^^^^^^^ help: try: `u64::from(d)` [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/lex/hand.rs:147:28 [INFO] [stderr] | [INFO] [stderr] 147 | Some(d) => d as u32, [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(d)` [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/lex/hand.rs:159:32 [INFO] [stderr] | [INFO] [stderr] 159 | Some(d) => d as u32, [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(d)` [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/lex/hand.rs:176:20 [INFO] [stderr] | [INFO] [stderr] 176 | Some(d) => d as u32, [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(d)` [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/lex/hand.rs:180:20 [INFO] [stderr] | [INFO] [stderr] 180 | Some(d) => d as u32, [INFO] [stderr] | ^^^^^^^^ help: try: `u32::from(d)` [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 character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/lex/hand.rs:201:37 [INFO] [stderr] | [INFO] [stderr] 201 | 'n' => str.push('\n' as u8), [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'\n' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/lex/hand.rs:202:37 [INFO] [stderr] | [INFO] [stderr] 202 | 'r' => str.push('\r' as u8), [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'\r' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/lex/hand.rs:203:37 [INFO] [stderr] | [INFO] [stderr] 203 | 't' => str.push('\t' as u8), [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'\t' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/lex/hand.rs:210:38 [INFO] [stderr] | [INFO] [stderr] 210 | str.push('?' as u8); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'?' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/lex/hand.rs:220:38 [INFO] [stderr] | [INFO] [stderr] 220 | str.push('?' as u8); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'?' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/lex/hand.rs:223:37 [INFO] [stderr] | [INFO] [stderr] 223 | '"' => str.push('"' as u8), [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'"' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/lex/hand.rs:224:38 [INFO] [stderr] | [INFO] [stderr] 224 | '\'' => str.push('\'' as u8), [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'\'' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/lex/hand.rs:225:38 [INFO] [stderr] | [INFO] [stderr] 225 | '\\' => str.push('\\' as u8), [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'\\' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/lex/hand.rs:226:37 [INFO] [stderr] | [INFO] [stderr] 226 | '0' => str.push('\0' as u8), [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'\0' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/lex/hand.rs:228:37 [INFO] [stderr] | [INFO] [stderr] 228 | '/' => str.push('/' as u8), [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'/' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/hand.rs:313:34 [INFO] [stderr] | [INFO] [stderr] 313 | let mut s = Scanner::new("/*//***/".as_bytes()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"/*//***/"` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::string_lit_as_bytes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/lex/hand.rs:330:9 [INFO] [stderr] | [INFO] [stderr] 330 | assert_eq!(parse_number("1"), 1.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/lex/hand.rs:330:9 [INFO] [stderr] | [INFO] [stderr] 330 | assert_eq!(parse_number("1"), 1.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/lex/hand.rs:331:9 [INFO] [stderr] | [INFO] [stderr] 331 | assert_eq!(parse_number("1.1"), 1.1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/lex/hand.rs:331:9 [INFO] [stderr] | [INFO] [stderr] 331 | assert_eq!(parse_number("1.1"), 1.1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/lex/hand.rs:332:9 [INFO] [stderr] | [INFO] [stderr] 332 | assert_eq!(parse_number("0xb"), 11.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/lex/hand.rs:332:9 [INFO] [stderr] | [INFO] [stderr] 332 | assert_eq!(parse_number("0xb"), 11.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/lex/hand.rs:333:9 [INFO] [stderr] | [INFO] [stderr] 333 | assert_eq!(parse_number("1e3"), 1000.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/lex/hand.rs:333:9 [INFO] [stderr] | [INFO] [stderr] 333 | assert_eq!(parse_number("1e3"), 1000.0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/lex/hand.rs:334:9 [INFO] [stderr] | [INFO] [stderr] 334 | assert_eq!(parse_number("1e-3"), 0.001); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/lex/hand.rs:334:9 [INFO] [stderr] | [INFO] [stderr] 334 | assert_eq!(parse_number("1e-3"), 0.001); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [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/bind.rs:131:38 [INFO] [stderr] | [INFO] [stderr] 131 | ast::Stmt::Var(ref decls) => match decls.typ { [INFO] [stderr] | ______________________________________^ [INFO] [stderr] 132 | | ast::VarDeclType::Var => { [INFO] [stderr] 133 | | for decl in decls.decls.iter() { [INFO] [stderr] 134 | | pattern_declared_names(&decl.pattern, scope); [INFO] [stderr] ... | [INFO] [stderr] 137 | | _ => {} [INFO] [stderr] 138 | | }, [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] 131 | ast::Stmt::Var(ref decls) => if let ast::VarDeclType::Var = decls.typ { [INFO] [stderr] 132 | for decl in decls.decls.iter() { [INFO] [stderr] 133 | pattern_declared_names(&decl.pattern, scope); [INFO] [stderr] 134 | } [INFO] [stderr] 135 | }, [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/bind.rs:219:5 [INFO] [stderr] | [INFO] [stderr] 219 | / match *stmt { [INFO] [stderr] 220 | | ast::Stmt::Var(ref decls) => match decls.typ { [INFO] [stderr] 221 | | ast::VarDeclType::Const | ast::VarDeclType::Let => { [INFO] [stderr] 222 | | for decl in decls.decls.iter() { [INFO] [stderr] ... | [INFO] [stderr] 228 | | _ => {} [INFO] [stderr] 229 | | } [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] 219 | if let ast::Stmt::Var(ref decls) = *stmt { match decls.typ { [INFO] [stderr] 220 | ast::VarDeclType::Const | ast::VarDeclType::Let => { [INFO] [stderr] 221 | for decl in decls.decls.iter() { [INFO] [stderr] 222 | pattern_declared_names(&decl.pattern, scope); [INFO] [stderr] 223 | } [INFO] [stderr] 224 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lex/scan.rs:117:18 [INFO] [stderr] | [INFO] [stderr] 117 | pub fn is_kw(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lex/scan.rs:118:9 [INFO] [stderr] | [INFO] [stderr] 118 | / match self { [INFO] [stderr] 119 | | &Tok::EOF => false, [INFO] [stderr] 120 | | &Tok::LBrace => false, [INFO] [stderr] 121 | | &Tok::LParen => false, [INFO] [stderr] ... | [INFO] [stderr] 211 | | &Tok::Template => false, [INFO] [stderr] 212 | | } [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] 118 | match *self { [INFO] [stderr] 119 | Tok::EOF => false, [INFO] [stderr] 120 | Tok::LBrace => false, [INFO] [stderr] 121 | Tok::LParen => false, [INFO] [stderr] 122 | Tok::RParen => false, [INFO] [stderr] 123 | Tok::LSquare => false, [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/dead.rs:68:9 [INFO] [stderr] | [INFO] [stderr] 68 | / match *stmt { [INFO] [stderr] 69 | | ast::Stmt::Function(ref f) => { [INFO] [stderr] 70 | | if let Some(ref name) = f.name { [INFO] [stderr] 71 | | //println!("{:?}", f.name); [INFO] [stderr] ... | [INFO] [stderr] 77 | | _ => {} [INFO] [stderr] 78 | | }; [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] 68 | if let ast::Stmt::Function(ref f) = *stmt { [INFO] [stderr] 69 | if let Some(ref name) = f.name { [INFO] [stderr] 70 | //println!("{:?}", f.name); [INFO] [stderr] 71 | if self.is_dead(name) { [INFO] [stderr] 72 | return Some(ast::Stmt::Empty); [INFO] [stderr] 73 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/gen.rs:87:17 [INFO] [stderr] | [INFO] [stderr] 87 | self.w.write(b";")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:419:24 [INFO] [stderr] | [INFO] [stderr] 419 | if text == "do".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"do"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:422:24 [INFO] [stderr] | [INFO] [stderr] 422 | if text == "if".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"if"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:425:24 [INFO] [stderr] | [INFO] [stderr] 425 | if text == "in".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"in"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:428:24 [INFO] [stderr] | [INFO] [stderr] 428 | if text == "of".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"of"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:433:24 [INFO] [stderr] | [INFO] [stderr] 433 | if text == "for".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"for"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:436:24 [INFO] [stderr] | [INFO] [stderr] 436 | if text == "let".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"let"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:439:24 [INFO] [stderr] | [INFO] [stderr] 439 | if text == "new".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"new"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:442:24 [INFO] [stderr] | [INFO] [stderr] 442 | if text == "try".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"try"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:445:24 [INFO] [stderr] | [INFO] [stderr] 445 | if text == "var".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"var"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:450:24 [INFO] [stderr] | [INFO] [stderr] 450 | if text == "case".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"case"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:453:24 [INFO] [stderr] | [INFO] [stderr] 453 | if text == "else".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"else"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:456:24 [INFO] [stderr] | [INFO] [stderr] 456 | if text == "this".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"this"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:459:24 [INFO] [stderr] | [INFO] [stderr] 459 | if text == "void".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"void"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:462:24 [INFO] [stderr] | [INFO] [stderr] 462 | if text == "with".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"with"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:467:24 [INFO] [stderr] | [INFO] [stderr] 467 | if text == "await".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"await"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:470:24 [INFO] [stderr] | [INFO] [stderr] 470 | if text == "break".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"break"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:473:24 [INFO] [stderr] | [INFO] [stderr] 473 | if text == "catch".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"catch"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:476:24 [INFO] [stderr] | [INFO] [stderr] 476 | if text == "class".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"class"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:479:24 [INFO] [stderr] | [INFO] [stderr] 479 | if text == "const".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"const"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:482:24 [INFO] [stderr] | [INFO] [stderr] 482 | if text == "throw".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"throw"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:485:24 [INFO] [stderr] | [INFO] [stderr] 485 | if text == "while".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"while"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:488:24 [INFO] [stderr] | [INFO] [stderr] 488 | if text == "yield".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"yield"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:493:24 [INFO] [stderr] | [INFO] [stderr] 493 | if text == "delete".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"delete"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:496:24 [INFO] [stderr] | [INFO] [stderr] 496 | if text == "export".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"export"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:499:24 [INFO] [stderr] | [INFO] [stderr] 499 | if text == "import".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"import"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:502:24 [INFO] [stderr] | [INFO] [stderr] 502 | if text == "return".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"return"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:505:24 [INFO] [stderr] | [INFO] [stderr] 505 | if text == "switch".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"switch"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:508:24 [INFO] [stderr] | [INFO] [stderr] 508 | if text == "typeof".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"typeof"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:513:24 [INFO] [stderr] | [INFO] [stderr] 513 | if text == "default".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"default"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:516:24 [INFO] [stderr] | [INFO] [stderr] 516 | if text == "extends".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"extends"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:519:24 [INFO] [stderr] | [INFO] [stderr] 519 | if text == "finally".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"finally"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/gen.rs:126:5 [INFO] [stderr] | [INFO] [stderr] 126 | name.len() == 0 || name.bytes().any(|c| class(c) != CharClass::Letter) [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `name.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] --> src/lex/scan.rs:524:24 [INFO] [stderr] | [INFO] [stderr] 524 | if text == "continue".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"continue"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:527:24 [INFO] [stderr] | [INFO] [stderr] 527 | if text == "debugger".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"debugger"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:530:24 [INFO] [stderr] | [INFO] [stderr] 530 | if text == "function".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"function"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/lex/scan.rs:535:24 [INFO] [stderr] | [INFO] [stderr] 535 | if text == "instanceof".as_bytes() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"instanceof"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/gen.rs:146:30 [INFO] [stderr] | [INFO] [stderr] 146 | self.last_char = ';' as u8; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b';' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/gen.rs:163:9 [INFO] [stderr] | [INFO] [stderr] 163 | self.write(t.as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ops.rs:37:21 [INFO] [stderr] | [INFO] [stderr] 37 | f.write_str(match self { [INFO] [stderr] | _____________________^ [INFO] [stderr] 38 | | &UnOp::Not => "!", [INFO] [stderr] 39 | | &UnOp::BNot => "~", [INFO] [stderr] 40 | | &UnOp::PlusPlus => "++", [INFO] [stderr] ... | [INFO] [stderr] 49 | | &UnOp::Void => "void", [INFO] [stderr] 50 | | }) [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] 37 | f.write_str(match *self { [INFO] [stderr] 38 | UnOp::Not => "!", [INFO] [stderr] 39 | UnOp::BNot => "~", [INFO] [stderr] 40 | UnOp::PlusPlus => "++", [INFO] [stderr] 41 | UnOp::MinusMinus => "--", [INFO] [stderr] 42 | UnOp::Minus => "-", [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/gen.rs:308:9 [INFO] [stderr] | [INFO] [stderr] 308 | self.write(template.literal.as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ops.rs:113:21 [INFO] [stderr] | [INFO] [stderr] 113 | f.write_str(match self { [INFO] [stderr] | _____________________^ [INFO] [stderr] 114 | | &BinOp::Eq => "=", [INFO] [stderr] 115 | | &BinOp::LT => "<", [INFO] [stderr] 116 | | &BinOp::GT => ">", [INFO] [stderr] ... | [INFO] [stderr] 151 | | &BinOp::InstanceOf => "instanceof", [INFO] [stderr] 152 | | }) [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] 113 | f.write_str(match *self { [INFO] [stderr] 114 | BinOp::Eq => "=", [INFO] [stderr] 115 | BinOp::LT => "<", [INFO] [stderr] 116 | BinOp::GT => ">", [INFO] [stderr] 117 | BinOp::LTE => "<=", [INFO] [stderr] 118 | BinOp::GTE => ">=", [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/parse.rs:115:22 [INFO] [stderr] | [INFO] [stderr] 115 | msg: format!("couldn't convert expr into binding"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"couldn't convert expr into binding".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parse.rs:146:5 [INFO] [stderr] | [INFO] [stderr] 146 | / match call.func.expr { [INFO] [stderr] 147 | | ast::Expr::Ident(ref s) => { [INFO] [stderr] 148 | | if *s.name.borrow() == "async" { [INFO] [stderr] 149 | | return true; [INFO] [stderr] ... | [INFO] [stderr] 152 | | _ => {} [INFO] [stderr] 153 | | } [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] 146 | if let ast::Expr::Ident(ref s) = call.func.expr { [INFO] [stderr] 147 | if *s.name.borrow() == "async" { [INFO] [stderr] 148 | return true; [INFO] [stderr] 149 | } [INFO] [stderr] 150 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/parse.rs:211:22 [INFO] [stderr] | [INFO] [stderr] 211 | msg: format!("couldn't convert left side of arrow into parameter list"), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"couldn't convert left side of arrow into parameter list".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/gen.rs:567:32 [INFO] [stderr] | [INFO] [stderr] 567 | if decls.decls.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!decls.decls.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/gen.rs:618:17 [INFO] [stderr] | [INFO] [stderr] 618 | / if let &Some(ref label) = label { [INFO] [stderr] 619 | | self.token(label)?; [INFO] [stderr] 620 | | } [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] 618 | if let Some(ref label) = *label { [INFO] [stderr] | ^^^^^^^^^^^^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/gen.rs:625:17 [INFO] [stderr] | [INFO] [stderr] 625 | / if let &Some(ref label) = label { [INFO] [stderr] 626 | | self.token(label)?; [INFO] [stderr] 627 | | } [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] 625 | if let Some(ref label) = *label { [INFO] [stderr] | ^^^^^^^^^^^^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/gen.rs:632:17 [INFO] [stderr] | [INFO] [stderr] 632 | / if let &Some(ref expr) = expr { [INFO] [stderr] 633 | | self.expr(expr, -1)?; [INFO] [stderr] 634 | | } [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] 632 | if let Some(ref expr) = *expr { [INFO] [stderr] | ^^^^^^^^^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/gen.rs:680:13 [INFO] [stderr] | [INFO] [stderr] 680 | self.write(b"/*\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/gen.rs:682:17 [INFO] [stderr] | [INFO] [stderr] 682 | self.write(format!("{}\n", b.name.borrow()).as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/gen.rs:684:13 [INFO] [stderr] | [INFO] [stderr] 684 | self.write(b"*/\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/run.rs:42:46 [INFO] [stderr] | [INFO] [stderr] 42 | (dur.as_secs() * 1000 + (dur.subsec_nanos() as u64 / 1_000_000)) as usize [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(dur.subsec_nanos())` [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] error: aborting due to 7 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `j8t`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/parse.rs:583:21 [INFO] [stderr] | [INFO] [stderr] 583 | / let mut init: Option = None; [INFO] [stderr] 584 | | if self.lex_peek()? == Tok::Eq { [INFO] [stderr] 585 | | self.lex_read()?; [INFO] [stderr] 586 | | init = Some(self.expr_prec(3 /* assignment expr */)?); [INFO] [stderr] 587 | | } [INFO] [stderr] | |_____________________^ help: it is more idiomatic to write: `let init = if self.lex_peek()? == Tok::Eq { ..; Some(self.expr_prec(3 /* assignment expr */)?) } else { 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: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/parse.rs:607:21 [INFO] [stderr] | [INFO] [stderr] 607 | / let mut init: Option = None; [INFO] [stderr] 608 | | if self.lex_peek()? == Tok::Eq { [INFO] [stderr] 609 | | self.lex_read()?; [INFO] [stderr] 610 | | init = Some(self.expr_prec(3 /* assignment expr */)?); [INFO] [stderr] 611 | | } [INFO] [stderr] | |_____________________^ help: it is more idiomatic to write: `let init = if self.lex_peek()? == Tok::Eq { ..; Some(self.expr_prec(3 /* assignment expr */)?) } else { None };` [INFO] [stderr] | [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: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/parse.rs:657:13 [INFO] [stderr] | [INFO] [stderr] 657 | / let mut init: Option = None; [INFO] [stderr] 658 | | if self.lex_peek()? == Tok::Eq { [INFO] [stderr] 659 | | self.lex_read()?; [INFO] [stderr] 660 | | init = Some(self.expr_prec(3 /* assignment expr */)?); [INFO] [stderr] 661 | | } [INFO] [stderr] | |_____________^ help: it is more idiomatic to write: `let init = if self.lex_peek()? == Tok::Eq { ..; Some(self.expr_prec(3 /* assignment expr */)?) } else { None };` [INFO] [stderr] | [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: the function has a cyclomatic complexity of 58 [INFO] [stderr] --> src/parse.rs:710:5 [INFO] [stderr] | [INFO] [stderr] 710 | / fn expr_prec(&mut self, prec: usize) -> ParseResult { [INFO] [stderr] 711 | | // prec is precedence: [INFO] [stderr] 712 | | // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence [INFO] [stderr] 713 | | [INFO] [stderr] ... | [INFO] [stderr] 985 | | } [INFO] [stderr] 986 | | } [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] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/parse.rs:757:31 [INFO] [stderr] | [INFO] [stderr] 757 | Tok::Comma if prec <= 0 => { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::absurd_extreme_comparisons)] on by default [INFO] [stderr] = help: because 0 is the minimum value for this type, the case where the two sides are not equal never occurs, consider using prec == 0 instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [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/bind.rs:131:38 [INFO] [stderr] | [INFO] [stderr] 131 | ast::Stmt::Var(ref decls) => match decls.typ { [INFO] [stderr] | ______________________________________^ [INFO] [stderr] 132 | | ast::VarDeclType::Var => { [INFO] [stderr] 133 | | for decl in decls.decls.iter() { [INFO] [stderr] 134 | | pattern_declared_names(&decl.pattern, scope); [INFO] [stderr] ... | [INFO] [stderr] 137 | | _ => {} [INFO] [stderr] 138 | | }, [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] 131 | ast::Stmt::Var(ref decls) => if let ast::VarDeclType::Var = decls.typ { [INFO] [stderr] 132 | for decl in decls.decls.iter() { [INFO] [stderr] 133 | pattern_declared_names(&decl.pattern, scope); [INFO] [stderr] 134 | } [INFO] [stderr] 135 | }, [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/bind.rs:219:5 [INFO] [stderr] | [INFO] [stderr] 219 | / match *stmt { [INFO] [stderr] 220 | | ast::Stmt::Var(ref decls) => match decls.typ { [INFO] [stderr] 221 | | ast::VarDeclType::Const | ast::VarDeclType::Let => { [INFO] [stderr] 222 | | for decl in decls.decls.iter() { [INFO] [stderr] ... | [INFO] [stderr] 228 | | _ => {} [INFO] [stderr] 229 | | } [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] 219 | if let ast::Stmt::Var(ref decls) = *stmt { match decls.typ { [INFO] [stderr] 220 | ast::VarDeclType::Const | ast::VarDeclType::Let => { [INFO] [stderr] 221 | for decl in decls.decls.iter() { [INFO] [stderr] 222 | pattern_declared_names(&decl.pattern, scope); [INFO] [stderr] 223 | } [INFO] [stderr] 224 | } [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/dead.rs:68:9 [INFO] [stderr] | [INFO] [stderr] 68 | / match *stmt { [INFO] [stderr] 69 | | ast::Stmt::Function(ref f) => { [INFO] [stderr] 70 | | if let Some(ref name) = f.name { [INFO] [stderr] 71 | | //println!("{:?}", f.name); [INFO] [stderr] ... | [INFO] [stderr] 77 | | _ => {} [INFO] [stderr] 78 | | }; [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] 68 | if let ast::Stmt::Function(ref f) = *stmt { [INFO] [stderr] 69 | if let Some(ref name) = f.name { [INFO] [stderr] 70 | //println!("{:?}", f.name); [INFO] [stderr] 71 | if self.is_dead(name) { [INFO] [stderr] 72 | return Some(ast::Stmt::Empty); [INFO] [stderr] 73 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/gen.rs:87:17 [INFO] [stderr] | [INFO] [stderr] 87 | self.w.write(b";")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/gen.rs:126:5 [INFO] [stderr] | [INFO] [stderr] 126 | name.len() == 0 || name.bytes().any(|c| class(c) != CharClass::Letter) [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `name.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/gen.rs:146:30 [INFO] [stderr] | [INFO] [stderr] 146 | self.last_char = ';' as u8; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b';' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/gen.rs:163:9 [INFO] [stderr] | [INFO] [stderr] 163 | self.write(t.as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/gen.rs:308:9 [INFO] [stderr] | [INFO] [stderr] 308 | self.write(template.literal.as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/gen.rs:567:32 [INFO] [stderr] | [INFO] [stderr] 567 | if decls.decls.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!decls.decls.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/gen.rs:618:17 [INFO] [stderr] | [INFO] [stderr] 618 | / if let &Some(ref label) = label { [INFO] [stderr] 619 | | self.token(label)?; [INFO] [stderr] 620 | | } [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] 618 | if let Some(ref label) = *label { [INFO] [stderr] | ^^^^^^^^^^^^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/gen.rs:625:17 [INFO] [stderr] | [INFO] [stderr] 625 | / if let &Some(ref label) = label { [INFO] [stderr] 626 | | self.token(label)?; [INFO] [stderr] 627 | | } [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] 625 | if let Some(ref label) = *label { [INFO] [stderr] | ^^^^^^^^^^^^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/gen.rs:632:17 [INFO] [stderr] | [INFO] [stderr] 632 | / if let &Some(ref expr) = expr { [INFO] [stderr] 633 | | self.expr(expr, -1)?; [INFO] [stderr] 634 | | } [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] 632 | if let Some(ref expr) = *expr { [INFO] [stderr] | ^^^^^^^^^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/gen.rs:680:13 [INFO] [stderr] | [INFO] [stderr] 680 | self.write(b"/*\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/gen.rs:682:17 [INFO] [stderr] | [INFO] [stderr] 682 | self.write(format!("{}\n", b.name.borrow()).as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/gen.rs:684:13 [INFO] [stderr] | [INFO] [stderr] 684 | self.write(b"*/\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/run.rs:42:46 [INFO] [stderr] | [INFO] [stderr] 42 | (dur.as_secs() * 1000 + (dur.subsec_nanos() as u64 / 1_000_000)) as usize [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(dur.subsec_nanos())` [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] error: aborting due to 12 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `j8t`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "5de13f50c656400f86904be50d4e571429cb3a5fcfe2fd6da5e273087454e81e"` [INFO] running `"docker" "rm" "-f" "5de13f50c656400f86904be50d4e571429cb3a5fcfe2fd6da5e273087454e81e"` [INFO] [stdout] 5de13f50c656400f86904be50d4e571429cb3a5fcfe2fd6da5e273087454e81e