[INFO] updating cached repository angusholder/go-compiler [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/angusholder/go-compiler [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/angusholder/go-compiler" "work/ex/clippy-test-run/sources/stable/gh/angusholder/go-compiler"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/angusholder/go-compiler'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/angusholder/go-compiler" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/angusholder/go-compiler"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/angusholder/go-compiler'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 935c8fe29219a50c69594745adc17db4521583de [INFO] sha for GitHub repo angusholder/go-compiler: 935c8fe29219a50c69594745adc17db4521583de [INFO] validating manifest of angusholder/go-compiler 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 angusholder/go-compiler 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 angusholder/go-compiler [INFO] finished frobbing angusholder/go-compiler [INFO] frobbed toml for angusholder/go-compiler written to work/ex/clippy-test-run/sources/stable/gh/angusholder/go-compiler/Cargo.toml [INFO] started frobbing angusholder/go-compiler [INFO] finished frobbing angusholder/go-compiler [INFO] frobbed toml for angusholder/go-compiler written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/angusholder/go-compiler/Cargo.toml [INFO] crate angusholder/go-compiler 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 angusholder/go-compiler against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-2/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/angusholder/go-compiler:/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] 1b829e697640d54a456a7178e9e92c09e12697a0bc4f724a1ba0dc29edf8895b [INFO] running `"docker" "start" "-a" "1b829e697640d54a456a7178e9e92c09e12697a0bc4f724a1ba0dc29edf8895b"` [INFO] [stderr] Checking string-interner v0.6.3 [INFO] [stderr] Checking go-compiler v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/parser.rs:601:12 [INFO] [stderr] | [INFO] [stderr] 601 | } else { [INFO] [stderr] | ____________^ [INFO] [stderr] 602 | | if let Some(right) = right { [INFO] [stderr] 603 | | p.expect_token(TokenKind::RBracket)?; [INFO] [stderr] 604 | | let span = p.span_from(&left); [INFO] [stderr] ... | [INFO] [stderr] 608 | | } [INFO] [stderr] 609 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 601 | } else if let Some(right) = right { [INFO] [stderr] 602 | p.expect_token(TokenKind::RBracket)?; [INFO] [stderr] 603 | let span = p.span_from(&left); [INFO] [stderr] 604 | Ok(p.make_expr(ExprKind::Index { left: P(left), right: P(right) }, span)) [INFO] [stderr] 605 | } else { [INFO] [stderr] 606 | err!(token, "expected expression") [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/compiler.rs:851:44 [INFO] [stderr] | [INFO] [stderr] 851 | const INVALID: JumpOffset = JumpOffset(0xDEADBEEF); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xDEAD_BEEF` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/parser.rs:601:12 [INFO] [stderr] | [INFO] [stderr] 601 | } else { [INFO] [stderr] | ____________^ [INFO] [stderr] 602 | | if let Some(right) = right { [INFO] [stderr] 603 | | p.expect_token(TokenKind::RBracket)?; [INFO] [stderr] 604 | | let span = p.span_from(&left); [INFO] [stderr] ... | [INFO] [stderr] 608 | | } [INFO] [stderr] 609 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 601 | } else if let Some(right) = right { [INFO] [stderr] 602 | p.expect_token(TokenKind::RBracket)?; [INFO] [stderr] 603 | let span = p.span_from(&left); [INFO] [stderr] 604 | Ok(p.make_expr(ExprKind::Index { left: P(left), right: P(right) }, span)) [INFO] [stderr] 605 | } else { [INFO] [stderr] 606 | err!(token, "expected expression") [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/compiler.rs:851:44 [INFO] [stderr] | [INFO] [stderr] 851 | const INVALID: JumpOffset = JumpOffset(0xDEADBEEF); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xDEAD_BEEF` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/utils/result.rs:134:50 [INFO] [stderr] | [INFO] [stderr] 134 | for (line, line_num) in lines.iter().zip(start_line..end_line + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `start_line..=end_line` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/utils/result.rs:194:16 [INFO] [stderr] | [INFO] [stderr] 194 | pub fn len(&self) -> usize { [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/token.rs:37:19 [INFO] [stderr] | [INFO] [stderr] 37 | pub fn as_str(&self) -> &'static str { [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/token.rs:124:19 [INFO] [stderr] | [INFO] [stderr] 124 | pub fn as_str(&self) -> &'static str { [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: an inclusive range would be more readable [INFO] [stderr] --> src/utils/result.rs:134:50 [INFO] [stderr] | [INFO] [stderr] 134 | for (line, line_num) in lines.iter().zip(start_line..end_line + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `start_line..=end_line` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/lexer.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | / pub fn new<'a>(src: &'a str) -> Lexer<'a> { [INFO] [stderr] 23 | | let mut lexer = Lexer { [INFO] [stderr] 24 | | iter: PeekableCharIndices::new(src), [INFO] [stderr] 25 | | src, [INFO] [stderr] ... | [INFO] [stderr] 30 | | lexer [INFO] [stderr] 31 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 31 [INFO] [stderr] --> src/lexer.rs:33:5 [INFO] [stderr] | [INFO] [stderr] 33 | / pub fn next(&mut self) -> CompileResult { [INFO] [stderr] 34 | | if self.insert_semicolon { [INFO] [stderr] 35 | | self.insert_semicolon = false; [INFO] [stderr] 36 | | return Ok(Token { [INFO] [stderr] ... | [INFO] [stderr] 234 | | Ok(Token { kind, span }) [INFO] [stderr] 235 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/utils/result.rs:194:16 [INFO] [stderr] | [INFO] [stderr] 194 | pub fn len(&self) -> usize { [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/token.rs:37:19 [INFO] [stderr] | [INFO] [stderr] 37 | pub fn as_str(&self) -> &'static str { [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/token.rs:124:19 [INFO] [stderr] | [INFO] [stderr] 124 | pub fn as_str(&self) -> &'static str { [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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/lexer.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | / pub fn new<'a>(src: &'a str) -> Lexer<'a> { [INFO] [stderr] 23 | | let mut lexer = Lexer { [INFO] [stderr] 24 | | iter: PeekableCharIndices::new(src), [INFO] [stderr] 25 | | src, [INFO] [stderr] ... | [INFO] [stderr] 30 | | lexer [INFO] [stderr] 31 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 31 [INFO] [stderr] --> src/lexer.rs:33:5 [INFO] [stderr] | [INFO] [stderr] 33 | / pub fn next(&mut self) -> CompileResult { [INFO] [stderr] 34 | | if self.insert_semicolon { [INFO] [stderr] 35 | | self.insert_semicolon = false; [INFO] [stderr] 36 | | return Ok(Token { [INFO] [stderr] ... | [INFO] [stderr] 234 | | Ok(Token { kind, span }) [INFO] [stderr] 235 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/parser.rs:331:12 [INFO] [stderr] | [INFO] [stderr] 331 | if param_decls.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `param_decls.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: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/parser.rs:588:9 [INFO] [stderr] | [INFO] [stderr] 588 | / let mut max: Option = None; [INFO] [stderr] 589 | | if p.match_token(TokenKind::Colon)? { [INFO] [stderr] 590 | | max = p.parse_opt_expr()?; [INFO] [stderr] 591 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let max = if p.match_token(TokenKind::Colon)? { p.parse_opt_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: redundant closure found [INFO] [stderr] --> src/parser.rs:780:44 [INFO] [stderr] | [INFO] [stderr] 780 | self.parse_left(min_rbp, node).map(|e| Some(e)) [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/parser.rs:331:12 [INFO] [stderr] | [INFO] [stderr] 331 | if param_decls.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `param_decls.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: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/parser.rs:588:9 [INFO] [stderr] | [INFO] [stderr] 588 | / let mut max: Option = None; [INFO] [stderr] 589 | | if p.match_token(TokenKind::Colon)? { [INFO] [stderr] 590 | | max = p.parse_opt_expr()?; [INFO] [stderr] 591 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let max = if p.match_token(TokenKind::Colon)? { p.parse_opt_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: redundant closure found [INFO] [stderr] --> src/parser.rs:780:44 [INFO] [stderr] | [INFO] [stderr] 780 | self.parse_left(min_rbp, node).map(|e| Some(e)) [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/parser.rs:1194:12 [INFO] [stderr] | [INFO] [stderr] 1194 | Ok(result.into()) [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider removing `.into()`: `result` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/types.rs:160:23 [INFO] [stderr] | [INFO] [stderr] 160 | pub fn as_type_id(&self) -> TypeId { [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: identical conversion [INFO] [stderr] --> src/parser.rs:1194:12 [INFO] [stderr] | [INFO] [stderr] 1194 | Ok(result.into()) [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider removing `.into()`: `result` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/types.rs:160:23 [INFO] [stderr] | [INFO] [stderr] 160 | pub fn as_type_id(&self) -> TypeId { [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: this boolean expression can be simplified [INFO] [stderr] --> src/vm.rs:96:31 [INFO] [stderr] | [INFO] [stderr] 96 | LogNot => T::from(!(a == T::one()) as u8).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `a != T::one()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] error: casting from `*const ()` to a more-strictly-aligned pointer (`*const u16`) [INFO] [stderr] --> src/vm.rs:158:46 [INFO] [stderr] | [INFO] [stderr] 158 | U16 => Primitive { u16: read(ptr as *const u16) }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::cast_ptr_alignment)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*const ()` to a more-strictly-aligned pointer (`*const u32`) [INFO] [stderr] --> src/vm.rs:159:46 [INFO] [stderr] | [INFO] [stderr] 159 | U32 => Primitive { u32: read(ptr as *const u32) }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*const ()` to a more-strictly-aligned pointer (`*const u64`) [INFO] [stderr] --> src/vm.rs:160:46 [INFO] [stderr] | [INFO] [stderr] 160 | U64 => Primitive { u64: read(ptr as *const u64) }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*const ()` to a more-strictly-aligned pointer (`*const i16`) [INFO] [stderr] --> src/vm.rs:163:46 [INFO] [stderr] | [INFO] [stderr] 163 | I16 => Primitive { i16: read(ptr as *const i16) }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*const ()` to a more-strictly-aligned pointer (`*const i32`) [INFO] [stderr] --> src/vm.rs:164:46 [INFO] [stderr] | [INFO] [stderr] 164 | I32 => Primitive { i32: read(ptr as *const i32) }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*const ()` to a more-strictly-aligned pointer (`*const i64`) [INFO] [stderr] --> src/vm.rs:165:46 [INFO] [stderr] | [INFO] [stderr] 165 | I64 => Primitive { i64: read(ptr as *const i64) }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/vm.rs:170:18 [INFO] [stderr] | [INFO] [stderr] 170 | pub fn store(&self, ptr: *mut (), ty: PrimitiveType) { [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] error: casting from `*mut ()` to a more-strictly-aligned pointer (`*mut u16`) [INFO] [stderr] --> src/vm.rs:183:30 [INFO] [stderr] | [INFO] [stderr] 183 | U16 => write(ptr as *mut u16, self.u16), [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*mut ()` to a more-strictly-aligned pointer (`*mut u32`) [INFO] [stderr] --> src/vm.rs:184:30 [INFO] [stderr] | [INFO] [stderr] 184 | U32 => write(ptr as *mut u32, self.u32), [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*mut ()` to a more-strictly-aligned pointer (`*mut u64`) [INFO] [stderr] --> src/vm.rs:185:30 [INFO] [stderr] | [INFO] [stderr] 185 | U64 => write(ptr as *mut u64, self.u64), [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*mut ()` to a more-strictly-aligned pointer (`*mut i16`) [INFO] [stderr] --> src/vm.rs:188:30 [INFO] [stderr] | [INFO] [stderr] 188 | I16 => write(ptr as *mut i16, self.i16), [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*mut ()` to a more-strictly-aligned pointer (`*mut i32`) [INFO] [stderr] --> src/vm.rs:189:30 [INFO] [stderr] | [INFO] [stderr] 189 | I32 => write(ptr as *mut i32, self.i32), [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*mut ()` to a more-strictly-aligned pointer (`*mut i64`) [INFO] [stderr] --> src/vm.rs:190:30 [INFO] [stderr] | [INFO] [stderr] 190 | I64 => write(ptr as *mut i64, self.i64), [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/vm.rs:96:31 [INFO] [stderr] | [INFO] [stderr] 96 | LogNot => T::from(!(a == T::one()) as u8).unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `a != T::one()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] error: casting from `*const ()` to a more-strictly-aligned pointer (`*const u16`) [INFO] [stderr] --> src/vm.rs:158:46 [INFO] [stderr] | [INFO] [stderr] 158 | U16 => Primitive { u16: read(ptr as *const u16) }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::cast_ptr_alignment)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*const ()` to a more-strictly-aligned pointer (`*const u32`) [INFO] [stderr] --> src/vm.rs:159:46 [INFO] [stderr] | [INFO] [stderr] 159 | U32 => Primitive { u32: read(ptr as *const u32) }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*const ()` to a more-strictly-aligned pointer (`*const u64`) [INFO] [stderr] --> src/vm.rs:160:46 [INFO] [stderr] | [INFO] [stderr] 160 | U64 => Primitive { u64: read(ptr as *const u64) }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*const ()` to a more-strictly-aligned pointer (`*const i16`) [INFO] [stderr] --> src/vm.rs:163:46 [INFO] [stderr] | [INFO] [stderr] 163 | I16 => Primitive { i16: read(ptr as *const i16) }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*const ()` to a more-strictly-aligned pointer (`*const i32`) [INFO] [stderr] --> src/vm.rs:164:46 [INFO] [stderr] | [INFO] [stderr] 164 | I32 => Primitive { i32: read(ptr as *const i32) }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*const ()` to a more-strictly-aligned pointer (`*const i64`) [INFO] [stderr] --> src/vm.rs:165:46 [INFO] [stderr] | [INFO] [stderr] 165 | I64 => Primitive { i64: read(ptr as *const i64) }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/vm.rs:170:18 [INFO] [stderr] | [INFO] [stderr] 170 | pub fn store(&self, ptr: *mut (), ty: PrimitiveType) { [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] error: casting from `*mut ()` to a more-strictly-aligned pointer (`*mut u16`) [INFO] [stderr] --> src/vm.rs:183:30 [INFO] [stderr] | [INFO] [stderr] 183 | U16 => write(ptr as *mut u16, self.u16), [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*mut ()` to a more-strictly-aligned pointer (`*mut u32`) [INFO] [stderr] --> src/vm.rs:184:30 [INFO] [stderr] | [INFO] [stderr] 184 | U32 => write(ptr as *mut u32, self.u32), [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*mut ()` to a more-strictly-aligned pointer (`*mut u64`) [INFO] [stderr] --> src/vm.rs:185:30 [INFO] [stderr] | [INFO] [stderr] 185 | U64 => write(ptr as *mut u64, self.u64), [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*mut ()` to a more-strictly-aligned pointer (`*mut i16`) [INFO] [stderr] --> src/vm.rs:188:30 [INFO] [stderr] | [INFO] [stderr] 188 | I16 => write(ptr as *mut i16, self.i16), [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*mut ()` to a more-strictly-aligned pointer (`*mut i32`) [INFO] [stderr] --> src/vm.rs:189:30 [INFO] [stderr] | [INFO] [stderr] 189 | I32 => write(ptr as *mut i32, self.i32), [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*mut ()` to a more-strictly-aligned pointer (`*mut i64`) [INFO] [stderr] --> src/vm.rs:190:30 [INFO] [stderr] | [INFO] [stderr] 190 | I64 => write(ptr as *mut i64, self.i64), [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: aborting due to 12 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `go-compiler`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: aborting due to 12 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `go-compiler`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "1b829e697640d54a456a7178e9e92c09e12697a0bc4f724a1ba0dc29edf8895b"` [INFO] running `"docker" "rm" "-f" "1b829e697640d54a456a7178e9e92c09e12697a0bc4f724a1ba0dc29edf8895b"` [INFO] [stdout] 1b829e697640d54a456a7178e9e92c09e12697a0bc4f724a1ba0dc29edf8895b