[INFO] updating cached repository https://github.com/marioidival/apl [INFO] running `"git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "-c" "remote.origin.fetch=refs/heads/*:refs/heads/*" "fetch" "origin" "--force" "--prune"` [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 86e37077d9c62a8ce0854b043337cc332f9ab471 [INFO] checking marioidival/apl against try#ea663bba38739867a4b75ac820991b4f5d093c3b for pr-62262-1 [INFO] running `"git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmarioidival%2Fapl" "/workspace/builds/worker-7/source"` [INFO] [stderr] Cloning into '/workspace/builds/worker-7/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/marioidival/apl on toolchain ea663bba38739867a4b75ac820991b4f5d093c3b [INFO] running `"/workspace/cargo-home/bin/cargo" "+ea663bba38739867a4b75ac820991b4f5d093c3b" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started tweaking git repo https://github.com/marioidival/apl [INFO] finished tweaking git repo https://github.com/marioidival/apl [INFO] tweaked toml for git repo https://github.com/marioidival/apl written to /workspace/builds/worker-7/source/Cargo.toml [INFO] crate git repo https://github.com/marioidival/apl already has a lockfile, it will not be regenerated [INFO] running `"/workspace/cargo-home/bin/cargo" "+ea663bba38739867a4b75ac820991b4f5d093c3b" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+ea663bba38739867a4b75ac820991b4f5d093c3b" "check" "--frozen" "--all" "--all-targets"` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 78fa7a8d1278f23c3fe6b072d056d4fa71935904eee953cff8993195281ccc51 [INFO] running `"docker" "start" "-a" "78fa7a8d1278f23c3fe6b072d056d4fa71935904eee953cff8993195281ccc51"` [INFO] [stderr] Checking itertools v0.8.0 [INFO] [stderr] Checking apl v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/tokenizer.rs:40:45 [INFO] [stderr] | [INFO] [stderr] 40 | fn advance_while(&mut self, condition: &Fn(char) -> bool) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(char) -> bool` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/tokenizer.rs:46:38 [INFO] [stderr] | [INFO] [stderr] 46 | fn peek_check(&mut self, check: &Fn(char) -> bool) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(char) -> bool` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/tokenizer.rs:55:42 [INFO] [stderr] | [INFO] [stderr] 55 | fn peek_check_two(&mut self, cond1: &Fn(char) -> bool, cond2: &Fn(char) -> bool) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(char) -> bool` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/tokenizer.rs:55:68 [INFO] [stderr] | [INFO] [stderr] 55 | fn peek_check_two(&mut self, cond1: &Fn(char) -> bool, cond2: &Fn(char) -> bool) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(char) -> bool` [INFO] [stderr] [INFO] [stderr] warning: unused import: `super::*` [INFO] [stderr] --> src/tokenizer.rs:240:9 [INFO] [stderr] | [INFO] [stderr] 240 | use super::*; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `super::*` [INFO] [stderr] --> src/tokenizer.rs:465:9 [INFO] [stderr] | [INFO] [stderr] 465 | use super::*; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::ast::Comparison::In` [INFO] [stderr] --> src/ast.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use crate::ast::Comparison::In; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `BoolOp`, `Compare` [INFO] [stderr] --> src/ast.rs:2:30 [INFO] [stderr] | [INFO] [stderr] 2 | use crate::ast::Expression::{BoolOp, Compare}; [INFO] [stderr] | ^^^^^^ ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Error`, `OperatorError` [INFO] [stderr] --> src/ast.rs:3:20 [INFO] [stderr] | [INFO] [stderr] 3 | use crate::error::{Error, OperatorError}; [INFO] [stderr] | ^^^^^ ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Primitive::*`, `Primitive` [INFO] [stderr] --> src/ast.rs:4:24 [INFO] [stderr] | [INFO] [stderr] 4 | use crate::primitive::{Primitive, Primitive::*}; [INFO] [stderr] | ^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Expression` [INFO] [stderr] --> src/parse.rs:2:48 [INFO] [stderr] | [INFO] [stderr] 2 | use crate::ast::{BooleanOperation, Comparison, Expression, Number, Operator, Statement, UnaryOperation}; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/primitive.rs:57:38 [INFO] [stderr] | [INFO] [stderr] 57 | Integer(v) => Ok(Integer((-1 * *v))), [INFO] [stderr] | ^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/primitive.rs:58:34 [INFO] [stderr] | [INFO] [stderr] 58 | Float(v) => Ok(Float((-1.0 * *v))), [INFO] [stderr] | ^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unused import: `super::*` [INFO] [stderr] --> src/primitive.rs:228:9 [INFO] [stderr] | [INFO] [stderr] 228 | use super::*; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Keyword` [INFO] [stderr] --> src/interpreter.rs:1:95 [INFO] [stderr] | [INFO] [stderr] 1 | use crate::ast::{BooleanOperation, Comparison, Expression, Operator, Program, UnaryOperation, Keyword}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `itertools::Itertools` [INFO] [stderr] --> src/interpreter.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use itertools::Itertools; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary trailing semicolon [INFO] [stderr] --> src/interpreter.rs:45:70 [INFO] [stderr] | [INFO] [stderr] 45 | Object::Primitive(Primitive::Boolean(true)) => { ; [INFO] [stderr] | ^ help: remove this semicolon [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(redundant_semicolon)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `super::*` [INFO] [stderr] --> src/object.rs:192:9 [INFO] [stderr] | [INFO] [stderr] 192 | use super::*; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/tokenizer.rs:40:45 [INFO] [stderr] | [INFO] [stderr] 40 | fn advance_while(&mut self, condition: &Fn(char) -> bool) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(char) -> bool` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/tokenizer.rs:46:38 [INFO] [stderr] | [INFO] [stderr] 46 | fn peek_check(&mut self, check: &Fn(char) -> bool) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(char) -> bool` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/tokenizer.rs:55:42 [INFO] [stderr] | [INFO] [stderr] 55 | fn peek_check_two(&mut self, cond1: &Fn(char) -> bool, cond2: &Fn(char) -> bool) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(char) -> bool` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/tokenizer.rs:55:68 [INFO] [stderr] | [INFO] [stderr] 55 | fn peek_check_two(&mut self, cond1: &Fn(char) -> bool, cond2: &Fn(char) -> bool) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(char) -> bool` [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::ast::Comparison::In` [INFO] [stderr] --> src/ast.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use crate::ast::Comparison::In; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `BoolOp`, `Compare` [INFO] [stderr] --> src/ast.rs:2:30 [INFO] [stderr] | [INFO] [stderr] 2 | use crate::ast::Expression::{BoolOp, Compare}; [INFO] [stderr] | ^^^^^^ ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Error`, `OperatorError` [INFO] [stderr] --> src/ast.rs:3:20 [INFO] [stderr] | [INFO] [stderr] 3 | use crate::error::{Error, OperatorError}; [INFO] [stderr] | ^^^^^ ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Primitive::*`, `Primitive` [INFO] [stderr] --> src/ast.rs:4:24 [INFO] [stderr] | [INFO] [stderr] 4 | use crate::primitive::{Primitive, Primitive::*}; [INFO] [stderr] | ^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Expression` [INFO] [stderr] --> src/parse.rs:2:48 [INFO] [stderr] | [INFO] [stderr] 2 | use crate::ast::{BooleanOperation, Comparison, Expression, Number, Operator, Statement, UnaryOperation}; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/primitive.rs:57:38 [INFO] [stderr] | [INFO] [stderr] 57 | Integer(v) => Ok(Integer((-1 * *v))), [INFO] [stderr] | ^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/primitive.rs:58:34 [INFO] [stderr] | [INFO] [stderr] 58 | Float(v) => Ok(Float((-1.0 * *v))), [INFO] [stderr] | ^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unused import: `Keyword` [INFO] [stderr] --> src/interpreter.rs:1:95 [INFO] [stderr] | [INFO] [stderr] 1 | use crate::ast::{BooleanOperation, Comparison, Expression, Operator, Program, UnaryOperation, Keyword}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `itertools::Itertools` [INFO] [stderr] --> src/interpreter.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use itertools::Itertools; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary trailing semicolon [INFO] [stderr] --> src/interpreter.rs:45:70 [INFO] [stderr] | [INFO] [stderr] 45 | Object::Primitive(Primitive::Boolean(true)) => { ; [INFO] [stderr] | ^ help: remove this semicolon [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(redundant_semicolon)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `Boolean` [INFO] [stderr] --> src/interpreter.rs:240:39 [INFO] [stderr] | [INFO] [stderr] 240 | use crate::primitive::Primitive::{Boolean, Float, Integer}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] error[E0308]: match arms have incompatible types [INFO] [stderr] --> src/parse.rs:142:30 [INFO] [stderr] | [INFO] [stderr] 110 | / match token { [INFO] [stderr] 111 | | Token::Less | Token::LessThan | Token::Greater | Token::GreaterThan | Token::BangEqual | Token::EqualEqual | Token::Is => { [INFO] [stderr] | __|___________________________________________________________________________________________________________________________________________- [INFO] [stderr] 112 | | | self.advance(); [INFO] [stderr] 113 | | | a = Some(ast::Expression::Compare { [INFO] [stderr] 114 | | | a: Box::new(a.unwrap()), [INFO] [stderr] ... | | [INFO] [stderr] 117 | | | }); [INFO] [stderr] 118 | | | } [INFO] [stderr] | |__|_________________- this is found to be of type `()` [INFO] [stderr] ... | [INFO] [stderr] 121 | / | if let Some(possible_factor) = a { [INFO] [stderr] 122 | | | a = Some(ast::Expression::BinOp { [INFO] [stderr] 123 | | | a: Box::new(possible_factor), [INFO] [stderr] 124 | | | op: Operator::from(token), [INFO] [stderr] ... | | [INFO] [stderr] 131 | | | }) [INFO] [stderr] 132 | | | } [INFO] [stderr] | |__|_____________________- this is found to be of type `()` [INFO] [stderr] ... | [INFO] [stderr] 136 | / | a = Some(ast::Expression::BoolOp { [INFO] [stderr] 137 | | | a: Box::new(a.unwrap()), [INFO] [stderr] 138 | | | op: BooleanOperation::from(token), [INFO] [stderr] 139 | | | b: Box::new(self.factor().unwrap()), [INFO] [stderr] 140 | | | }) [INFO] [stderr] | |__|______________________- this is found to be of type `()` [INFO] [stderr] 141 | | } [INFO] [stderr] 142 | | Token::Se => self.if_expression(), [INFO] [stderr] | | ^^^^^^^^^^^^^^^^^^^^ expected (), found enum `std::option::Option` [INFO] [stderr] ... | [INFO] [stderr] 152 | | } [INFO] [stderr] 153 | | } [INFO] [stderr] | |_____________- `match` arms have incompatible types [INFO] [stderr] | [INFO] [stderr] = note: expected type `()` [INFO] [stderr] found type `std::option::Option` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/parse.rs:215:28 [INFO] [stderr] | [INFO] [stderr] 215 | body: Box::new(body), [INFO] [stderr] | ^^^^ expected enum `ast::Expression`, found enum `ast::Statement` [INFO] [stderr] | [INFO] [stderr] = note: expected type `ast::Expression` [INFO] [stderr] found type `ast::Statement` [INFO] [stderr] [INFO] [stderr] error[E0061]: this function takes 1 parameter but 0 parameters were supplied [INFO] [stderr] --> src/parse.rs:216:21 [INFO] [stderr] | [INFO] [stderr] 216 | orelse: Box::new(), [INFO] [stderr] | ^^^^^^^^^^ expected 1 parameter [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'core::str::::trim_right_matches': superseded by `trim_end_matches` [INFO] [stderr] --> src/builtin.rs:35:42 [INFO] [stderr] | [INFO] [stderr] 35 | Ok(Object::Primitive(Str(buf.trim_right_matches("\r\n").into()))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated item: `trim_end_matches` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] [INFO] [stderr] error: aborting due to 3 previous errors [INFO] [stderr] [INFO] [stderr] Some errors have detailed explanations: E0061, E0308. [INFO] [stderr] For more information about an error, try `rustc --explain E0061`. [INFO] [stderr] error: could not compile `apl`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error[E0308]: match arms have incompatible types [INFO] [stderr] --> src/parse.rs:142:30 [INFO] [stderr] | [INFO] [stderr] 110 | / match token { [INFO] [stderr] 111 | | Token::Less | Token::LessThan | Token::Greater | Token::GreaterThan | Token::BangEqual | Token::EqualEqual | Token::Is => { [INFO] [stderr] | __|___________________________________________________________________________________________________________________________________________- [INFO] [stderr] 112 | | | self.advance(); [INFO] [stderr] 113 | | | a = Some(ast::Expression::Compare { [INFO] [stderr] 114 | | | a: Box::new(a.unwrap()), [INFO] [stderr] ... | | [INFO] [stderr] 117 | | | }); [INFO] [stderr] 118 | | | } [INFO] [stderr] | |__|_________________- this is found to be of type `()` [INFO] [stderr] ... | [INFO] [stderr] 121 | / | if let Some(possible_factor) = a { [INFO] [stderr] 122 | | | a = Some(ast::Expression::BinOp { [INFO] [stderr] 123 | | | a: Box::new(possible_factor), [INFO] [stderr] 124 | | | op: Operator::from(token), [INFO] [stderr] ... | | [INFO] [stderr] 131 | | | }) [INFO] [stderr] 132 | | | } [INFO] [stderr] | |__|_____________________- this is found to be of type `()` [INFO] [stderr] ... | [INFO] [stderr] 136 | / | a = Some(ast::Expression::BoolOp { [INFO] [stderr] 137 | | | a: Box::new(a.unwrap()), [INFO] [stderr] 138 | | | op: BooleanOperation::from(token), [INFO] [stderr] 139 | | | b: Box::new(self.factor().unwrap()), [INFO] [stderr] 140 | | | }) [INFO] [stderr] | |__|______________________- this is found to be of type `()` [INFO] [stderr] 141 | | } [INFO] [stderr] 142 | | Token::Se => self.if_expression(), [INFO] [stderr] | | ^^^^^^^^^^^^^^^^^^^^ expected (), found enum `std::option::Option` [INFO] [stderr] ... | [INFO] [stderr] 152 | | } [INFO] [stderr] 153 | | } [INFO] [stderr] | |_____________- `match` arms have incompatible types [INFO] [stderr] | [INFO] [stderr] = note: expected type `()` [INFO] [stderr] found type `std::option::Option` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/parse.rs:215:28 [INFO] [stderr] | [INFO] [stderr] 215 | body: Box::new(body), [INFO] [stderr] | ^^^^ expected enum `ast::Expression`, found enum `ast::Statement` [INFO] [stderr] | [INFO] [stderr] = note: expected type `ast::Expression` [INFO] [stderr] found type `ast::Statement` [INFO] [stderr] [INFO] [stderr] error[E0061]: this function takes 1 parameter but 0 parameters were supplied [INFO] [stderr] --> src/parse.rs:216:21 [INFO] [stderr] | [INFO] [stderr] 216 | orelse: Box::new(), [INFO] [stderr] | ^^^^^^^^^^ expected 1 parameter [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'core::str::::trim_right_matches': superseded by `trim_end_matches` [INFO] [stderr] --> src/builtin.rs:35:42 [INFO] [stderr] | [INFO] [stderr] 35 | Ok(Object::Primitive(Str(buf.trim_right_matches("\r\n").into()))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated item: `trim_end_matches` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] [INFO] [stderr] error: aborting due to 3 previous errors [INFO] [stderr] [INFO] [stderr] Some errors have detailed explanations: E0061, E0308. [INFO] [stderr] For more information about an error, try `rustc --explain E0061`. [INFO] [stderr] error: could not compile `apl`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "78fa7a8d1278f23c3fe6b072d056d4fa71935904eee953cff8993195281ccc51"` [INFO] running `"docker" "rm" "-f" "78fa7a8d1278f23c3fe6b072d056d4fa71935904eee953cff8993195281ccc51"` [INFO] [stdout] 78fa7a8d1278f23c3fe6b072d056d4fa71935904eee953cff8993195281ccc51