[INFO] cloning repository https://github.com/Jengamon/Kobold [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Jengamon/Kobold" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJengamon%2FKobold", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJengamon%2FKobold'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] dd47af29c5303ab4a099441929f6a81541cff1d8 [INFO] testing Jengamon/Kobold against beta-2022-04-10 for beta-1.61-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJengamon%2FKobold" "/workspace/builds/worker-97/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-97/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/Jengamon/Kobold on toolchain beta-2022-04-10 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2022-04-10" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/Jengamon/Kobold [INFO] finished tweaking git repo https://github.com/Jengamon/Kobold [INFO] tweaked toml for git repo https://github.com/Jengamon/Kobold written to /workspace/builds/worker-97/source/Cargo.toml [INFO] crate git repo https://github.com/Jengamon/Kobold already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2022-04-10" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-97/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-97/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" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] be85593bdbe6b620cd2bb7810a373ff55067d465df6aa9d8d135288c3f0cf33c [INFO] running `Command { std: "docker" "start" "-a" "be85593bdbe6b620cd2bb7810a373ff55067d465df6aa9d8d135288c3f0cf33c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "be85593bdbe6b620cd2bb7810a373ff55067d465df6aa9d8d135288c3f0cf33c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "be85593bdbe6b620cd2bb7810a373ff55067d465df6aa9d8d135288c3f0cf33c", kill_on_drop: false }` [INFO] [stdout] be85593bdbe6b620cd2bb7810a373ff55067d465df6aa9d8d135288c3f0cf33c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-97/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-97/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" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 26be71928cd9b03b3d2e0d102ff54c4e196ccc4b0b00bdc60d55395f432d3c39 [INFO] running `Command { std: "docker" "start" "-a" "26be71928cd9b03b3d2e0d102ff54c4e196ccc4b0b00bdc60d55395f432d3c39", kill_on_drop: false }` [INFO] [stderr] Compiling argparse v0.2.1 [INFO] [stderr] Compiling kobold v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/compiler/lexer.rs:101:32 [INFO] [stdout] | [INFO] [stdout] 101 | ... 'a'...'z' => {data.push(c); state = LexerState::Identifier;}, [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/compiler/lexer.rs:102:32 [INFO] [stdout] | [INFO] [stdout] 102 | ... 'A'...'Z' => {data.push(c); state = LexerState::StructIdentifier;}, [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/compiler/lexer.rs:103:32 [INFO] [stdout] | [INFO] [stdout] 103 | ... '0'...'9' => {data.push(c); state = LexerState::Integer;}, [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/compiler/lexer.rs:130:32 [INFO] [stdout] | [INFO] [stdout] 130 | ... 'a'...'z' | 'A'...'Z' | '0'...'9' | '_' | '!' | '?' => data.push(c), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/compiler/lexer.rs:130:44 [INFO] [stdout] | [INFO] [stdout] 130 | ... 'a'...'z' | 'A'...'Z' | '0'...'9' | '_' | '!' | '?' => data.push(c), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/compiler/lexer.rs:130:56 [INFO] [stdout] | [INFO] [stdout] 130 | ... 'a'...'z' | 'A'...'Z' | '0'...'9' | '_' | '!' | '?' => data.push(c), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/compiler/lexer.rs:145:32 [INFO] [stdout] | [INFO] [stdout] 145 | ... 'a'...'z' | 'A'...'Z' | '0'...'9' | '_' => data.push(c), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/compiler/lexer.rs:145:44 [INFO] [stdout] | [INFO] [stdout] 145 | ... 'a'...'z' | 'A'...'Z' | '0'...'9' | '_' => data.push(c), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/compiler/lexer.rs:145:56 [INFO] [stdout] | [INFO] [stdout] 145 | ... 'a'...'z' | 'A'...'Z' | '0'...'9' | '_' => data.push(c), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/compiler/lexer.rs:197:32 [INFO] [stdout] | [INFO] [stdout] 197 | ... '0'...'9' => data.push(c), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/compiler/lexer.rs:205:32 [INFO] [stdout] | [INFO] [stdout] 205 | ... '0'...'9' => data.push(c), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/main.rs:24:8 [INFO] [stdout] | [INFO] [stdout] 24 | if try!(fs::metadata(dir)).is_dir() { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/main.rs:25:22 [INFO] [stdout] | [INFO] [stdout] 25 | for entry in try!(fs::read_dir(dir)) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/main.rs:26:25 [INFO] [stdout] | [INFO] [stdout] 26 | let entry = try!(entry); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/main.rs:27:16 [INFO] [stdout] | [INFO] [stdout] 27 | if try!(fs::metadata(entry.path())).is_dir() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary braces around method argument [INFO] [stdout] --> src/main.rs:128:57 [INFO] [stdout] | [INFO] [stdout] 128 | let excludes: Vec<&Path> = opts.excludes.iter().map({|a| Path::new(&*a)}).collect(); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_braces)]` on by default [INFO] [stdout] help: remove these braces [INFO] [stdout] | [INFO] [stdout] 128 - let excludes: Vec<&Path> = opts.excludes.iter().map({|a| Path::new(&*a)}).collect(); [INFO] [stdout] 128 + let excludes: Vec<&Path> = opts.excludes.iter().map(|a| Path::new(&*a)).collect(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary braces around method argument [INFO] [stdout] --> src/main.rs:132:59 [INFO] [stdout] | [INFO] [stdout] 132 | let classpath: Vec<&Path> = opts.classpath.iter().map({|a| Path::new(&*a)}).collect(); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these braces [INFO] [stdout] | [INFO] [stdout] 132 - let classpath: Vec<&Path> = opts.classpath.iter().map({|a| Path::new(&*a)}).collect(); [INFO] [stdout] 132 + let classpath: Vec<&Path> = opts.classpath.iter().map(|a| Path::new(&*a)).collect(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/compiler/parser.rs:12:37 [INFO] [stdout] | [INFO] [stdout] 12 | prefixs: HashMap>, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 12 - prefixs: HashMap>, [INFO] [stdout] 12 + prefixs: HashMap>, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/compiler/parser.rs:13:36 [INFO] [stdout] | [INFO] [stdout] 13 | infixs: HashMap>, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 13 - infixs: HashMap>, [INFO] [stdout] 13 + infixs: HashMap>, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/compiler/trie.rs:15:20 [INFO] [stdout] | [INFO] [stdout] 15 | index: Arc<&'a Fn(char) -> i32> [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 15 - index: Arc<&'a Fn(char) -> i32> [INFO] [stdout] 15 + index: Arc<&'a dyn Fn(char) -> i32> [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/compiler/trie.rs:38:35 [INFO] [stdout] | [INFO] [stdout] 38 | pub fn new(hspace: usize, f: &Fn(char) -> i32) -> Trie { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 38 - pub fn new(hspace: usize, f: &Fn(char) -> i32) -> Trie { [INFO] [stdout] 38 + pub fn new(hspace: usize, f: &dyn Fn(char) -> i32) -> Trie { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/compiler/trie.rs:50:44 [INFO] [stdout] | [INFO] [stdout] 50 | fn new_with_arc(hspace: usize, f: Arc<&Fn(char) -> i32>) -> Trie { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 50 - fn new_with_arc(hspace: usize, f: Arc<&Fn(char) -> i32>) -> Trie { [INFO] [stdout] 50 + fn new_with_arc(hspace: usize, f: Arc<&dyn Fn(char) -> i32>) -> Trie { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/compiler/parser.rs:140:57 [INFO] [stdout] | [INFO] [stdout] 140 | fn register_prefix(&mut self, tt: TokenType, p: Box) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 140 - fn register_prefix(&mut self, tt: TokenType, p: Box) { [INFO] [stdout] 140 + fn register_prefix(&mut self, tt: TokenType, p: Box) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/compiler/parser.rs:148:56 [INFO] [stdout] | [INFO] [stdout] 148 | fn register_infix(&mut self, tt: TokenType, p: Box) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 148 - fn register_infix(&mut self, tt: TokenType, p: Box) { [INFO] [stdout] 148 + fn register_infix(&mut self, tt: TokenType, p: Box) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/compiler/parslets/mod.rs:10:26 [INFO] [stdout] | [INFO] [stdout] 10 | fn dup(&self) -> Box; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 10 - fn dup(&self) -> Box; [INFO] [stdout] 10 + fn dup(&self) -> Box; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/compiler/parslets/mod.rs:15:26 [INFO] [stdout] | [INFO] [stdout] 15 | fn dup(&self) -> Box; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 15 - fn dup(&self) -> Box; [INFO] [stdout] 15 + fn dup(&self) -> Box; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/compiler/parslets/literal.rs:12:26 [INFO] [stdout] | [INFO] [stdout] 12 | fn dup(&self) -> Box { Box::new(IntegerParslet) } [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 12 - fn dup(&self) -> Box { Box::new(IntegerParslet) } [INFO] [stdout] 12 + fn dup(&self) -> Box { Box::new(IntegerParslet) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/compiler/parslets/literal.rs:22:26 [INFO] [stdout] | [INFO] [stdout] 22 | fn dup(&self) -> Box { Box::new(FloatParslet) } [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 22 - fn dup(&self) -> Box { Box::new(FloatParslet) } [INFO] [stdout] 22 + fn dup(&self) -> Box { Box::new(FloatParslet) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/compiler/parslets/operator.rs:22:26 [INFO] [stdout] | [INFO] [stdout] 22 | fn dup(&self) -> Box { Box::new(PrefixOpParslet::new(self.precedence)) } [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 22 - fn dup(&self) -> Box { Box::new(PrefixOpParslet::new(self.precedence)) } [INFO] [stdout] 22 + fn dup(&self) -> Box { Box::new(PrefixOpParslet::new(self.precedence)) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/compiler/parslets/operator.rs:47:26 [INFO] [stdout] | [INFO] [stdout] 47 | fn dup(&self) -> Box { return Box::new(BinaryParslet::new(self.precedence, self.left_rec)) } [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 47 - fn dup(&self) -> Box { return Box::new(BinaryParslet::new(self.precedence, self.left_rec)) } [INFO] [stdout] 47 + fn dup(&self) -> Box { return Box::new(BinaryParslet::new(self.precedence, self.left_rec)) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/compiler/parser.rs:154:37 [INFO] [stdout] | [INFO] [stdout] 154 | let mut parslet: Option> = None; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 154 - let mut parslet: Option> = None; [INFO] [stdout] 154 + let mut parslet: Option> = None; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/compiler/parser.rs:165:42 [INFO] [stdout] | [INFO] [stdout] 165 | let mut nparslet: Option> = None; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 165 - let mut nparslet: Option> = None; [INFO] [stdout] 165 + let mut nparslet: Option> = None; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/compiler/module.rs:82:31 [INFO] [stdout] | [INFO] [stdout] 82 | pub fn find_module(&self, s: &str) -> Option { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `local_name` [INFO] [stdout] --> src/compiler/module.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | local_name: String, // Struct partial name [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] note: `Module` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] --> src/compiler/module.rs:5:10 [INFO] [stdout] | [INFO] [stdout] 5 | #[derive(Clone, Debug)] [INFO] [stdout] | ^^^^^ ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Clone` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `module_code` [INFO] [stdout] --> src/compiler/module.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | module_code: Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: `Module` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] --> src/compiler/module.rs:5:10 [INFO] [stdout] | [INFO] [stdout] 5 | #[derive(Clone, Debug)] [INFO] [stdout] | ^^^^^ ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Clone` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `find_module` [INFO] [stdout] --> src/compiler/module.rs:82:12 [INFO] [stdout] | [INFO] [stdout] 82 | pub fn find_module(&self, s: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 36 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 3.85s [INFO] running `Command { std: "docker" "inspect" "26be71928cd9b03b3d2e0d102ff54c4e196ccc4b0b00bdc60d55395f432d3c39", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "26be71928cd9b03b3d2e0d102ff54c4e196ccc4b0b00bdc60d55395f432d3c39", kill_on_drop: false }` [INFO] [stdout] 26be71928cd9b03b3d2e0d102ff54c4e196ccc4b0b00bdc60d55395f432d3c39 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-97/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-97/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" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] e7c3ac5badb09940fa4ca1f7e6a8bdd1948e0d3bc137ee57e13e66aacf031da5 [INFO] running `Command { std: "docker" "start" "-a" "e7c3ac5badb09940fa4ca1f7e6a8bdd1948e0d3bc137ee57e13e66aacf031da5", kill_on_drop: false }` [INFO] [stderr] Compiling kobold v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/compiler/lexer.rs:101:32 [INFO] [stdout] | [INFO] [stdout] 101 | ... 'a'...'z' => {data.push(c); state = LexerState::Identifier;}, [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/compiler/lexer.rs:102:32 [INFO] [stdout] | [INFO] [stdout] 102 | ... 'A'...'Z' => {data.push(c); state = LexerState::StructIdentifier;}, [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/compiler/lexer.rs:103:32 [INFO] [stdout] | [INFO] [stdout] 103 | ... '0'...'9' => {data.push(c); state = LexerState::Integer;}, [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/compiler/lexer.rs:130:32 [INFO] [stdout] | [INFO] [stdout] 130 | ... 'a'...'z' | 'A'...'Z' | '0'...'9' | '_' | '!' | '?' => data.push(c), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/compiler/lexer.rs:130:44 [INFO] [stdout] | [INFO] [stdout] 130 | ... 'a'...'z' | 'A'...'Z' | '0'...'9' | '_' | '!' | '?' => data.push(c), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/compiler/lexer.rs:130:56 [INFO] [stdout] | [INFO] [stdout] 130 | ... 'a'...'z' | 'A'...'Z' | '0'...'9' | '_' | '!' | '?' => data.push(c), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/compiler/lexer.rs:145:32 [INFO] [stdout] | [INFO] [stdout] 145 | ... 'a'...'z' | 'A'...'Z' | '0'...'9' | '_' => data.push(c), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/compiler/lexer.rs:145:44 [INFO] [stdout] | [INFO] [stdout] 145 | ... 'a'...'z' | 'A'...'Z' | '0'...'9' | '_' => data.push(c), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/compiler/lexer.rs:145:56 [INFO] [stdout] | [INFO] [stdout] 145 | ... 'a'...'z' | 'A'...'Z' | '0'...'9' | '_' => data.push(c), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/compiler/lexer.rs:197:32 [INFO] [stdout] | [INFO] [stdout] 197 | ... '0'...'9' => data.push(c), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/compiler/lexer.rs:205:32 [INFO] [stdout] | [INFO] [stdout] 205 | ... '0'...'9' => data.push(c), [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/tests/mod.rs:7:16 [INFO] [stdout] | [INFO] [stdout] 7 | e @ 'a'...'z' => e as i32 - 'a' as i32, [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/main.rs:24:8 [INFO] [stdout] | [INFO] [stdout] 24 | if try!(fs::metadata(dir)).is_dir() { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/main.rs:25:22 [INFO] [stdout] | [INFO] [stdout] 25 | for entry in try!(fs::read_dir(dir)) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/main.rs:26:25 [INFO] [stdout] | [INFO] [stdout] 26 | let entry = try!(entry); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/main.rs:27:16 [INFO] [stdout] | [INFO] [stdout] 27 | if try!(fs::metadata(entry.path())).is_dir() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary braces around method argument [INFO] [stdout] --> src/main.rs:128:57 [INFO] [stdout] | [INFO] [stdout] 128 | let excludes: Vec<&Path> = opts.excludes.iter().map({|a| Path::new(&*a)}).collect(); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_braces)]` on by default [INFO] [stdout] help: remove these braces [INFO] [stdout] | [INFO] [stdout] 128 - let excludes: Vec<&Path> = opts.excludes.iter().map({|a| Path::new(&*a)}).collect(); [INFO] [stdout] 128 + let excludes: Vec<&Path> = opts.excludes.iter().map(|a| Path::new(&*a)).collect(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary braces around method argument [INFO] [stdout] --> src/main.rs:132:59 [INFO] [stdout] | [INFO] [stdout] 132 | let classpath: Vec<&Path> = opts.classpath.iter().map({|a| Path::new(&*a)}).collect(); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these braces [INFO] [stdout] | [INFO] [stdout] 132 - let classpath: Vec<&Path> = opts.classpath.iter().map({|a| Path::new(&*a)}).collect(); [INFO] [stdout] 132 + let classpath: Vec<&Path> = opts.classpath.iter().map(|a| Path::new(&*a)).collect(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/compiler/parser.rs:12:37 [INFO] [stdout] | [INFO] [stdout] 12 | prefixs: HashMap>, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 12 - prefixs: HashMap>, [INFO] [stdout] 12 + prefixs: HashMap>, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/compiler/parser.rs:13:36 [INFO] [stdout] | [INFO] [stdout] 13 | infixs: HashMap>, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 13 - infixs: HashMap>, [INFO] [stdout] 13 + infixs: HashMap>, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/compiler/trie.rs:15:20 [INFO] [stdout] | [INFO] [stdout] 15 | index: Arc<&'a Fn(char) -> i32> [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 15 - index: Arc<&'a Fn(char) -> i32> [INFO] [stdout] 15 + index: Arc<&'a dyn Fn(char) -> i32> [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/compiler/trie.rs:38:35 [INFO] [stdout] | [INFO] [stdout] 38 | pub fn new(hspace: usize, f: &Fn(char) -> i32) -> Trie { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 38 - pub fn new(hspace: usize, f: &Fn(char) -> i32) -> Trie { [INFO] [stdout] 38 + pub fn new(hspace: usize, f: &dyn Fn(char) -> i32) -> Trie { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/compiler/trie.rs:50:44 [INFO] [stdout] | [INFO] [stdout] 50 | fn new_with_arc(hspace: usize, f: Arc<&Fn(char) -> i32>) -> Trie { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 50 - fn new_with_arc(hspace: usize, f: Arc<&Fn(char) -> i32>) -> Trie { [INFO] [stdout] 50 + fn new_with_arc(hspace: usize, f: Arc<&dyn Fn(char) -> i32>) -> Trie { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/compiler/parser.rs:140:57 [INFO] [stdout] | [INFO] [stdout] 140 | fn register_prefix(&mut self, tt: TokenType, p: Box) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 140 - fn register_prefix(&mut self, tt: TokenType, p: Box) { [INFO] [stdout] 140 + fn register_prefix(&mut self, tt: TokenType, p: Box) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/compiler/parser.rs:148:56 [INFO] [stdout] | [INFO] [stdout] 148 | fn register_infix(&mut self, tt: TokenType, p: Box) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 148 - fn register_infix(&mut self, tt: TokenType, p: Box) { [INFO] [stdout] 148 + fn register_infix(&mut self, tt: TokenType, p: Box) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/compiler/parslets/mod.rs:10:26 [INFO] [stdout] | [INFO] [stdout] 10 | fn dup(&self) -> Box; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 10 - fn dup(&self) -> Box; [INFO] [stdout] 10 + fn dup(&self) -> Box; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/compiler/parslets/mod.rs:15:26 [INFO] [stdout] | [INFO] [stdout] 15 | fn dup(&self) -> Box; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 15 - fn dup(&self) -> Box; [INFO] [stdout] 15 + fn dup(&self) -> Box; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/compiler/parslets/literal.rs:12:26 [INFO] [stdout] | [INFO] [stdout] 12 | fn dup(&self) -> Box { Box::new(IntegerParslet) } [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 12 - fn dup(&self) -> Box { Box::new(IntegerParslet) } [INFO] [stdout] 12 + fn dup(&self) -> Box { Box::new(IntegerParslet) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/compiler/parslets/literal.rs:22:26 [INFO] [stdout] | [INFO] [stdout] 22 | fn dup(&self) -> Box { Box::new(FloatParslet) } [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 22 - fn dup(&self) -> Box { Box::new(FloatParslet) } [INFO] [stdout] 22 + fn dup(&self) -> Box { Box::new(FloatParslet) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/compiler/parslets/operator.rs:22:26 [INFO] [stdout] | [INFO] [stdout] 22 | fn dup(&self) -> Box { Box::new(PrefixOpParslet::new(self.precedence)) } [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 22 - fn dup(&self) -> Box { Box::new(PrefixOpParslet::new(self.precedence)) } [INFO] [stdout] 22 + fn dup(&self) -> Box { Box::new(PrefixOpParslet::new(self.precedence)) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/compiler/parslets/operator.rs:47:26 [INFO] [stdout] | [INFO] [stdout] 47 | fn dup(&self) -> Box { return Box::new(BinaryParslet::new(self.precedence, self.left_rec)) } [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 47 - fn dup(&self) -> Box { return Box::new(BinaryParslet::new(self.precedence, self.left_rec)) } [INFO] [stdout] 47 + fn dup(&self) -> Box { return Box::new(BinaryParslet::new(self.precedence, self.left_rec)) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/compiler/parser.rs:154:37 [INFO] [stdout] | [INFO] [stdout] 154 | let mut parslet: Option> = None; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 154 - let mut parslet: Option> = None; [INFO] [stdout] 154 + let mut parslet: Option> = None; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/compiler/parser.rs:165:42 [INFO] [stdout] | [INFO] [stdout] 165 | let mut nparslet: Option> = None; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 165 - let mut nparslet: Option> = None; [INFO] [stdout] 165 + let mut nparslet: Option> = None; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/compiler/module.rs:82:31 [INFO] [stdout] | [INFO] [stdout] 82 | pub fn find_module(&self, s: &str) -> Option { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `local_name` [INFO] [stdout] --> src/compiler/module.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | local_name: String, // Struct partial name [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] note: `Module` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] --> src/compiler/module.rs:5:10 [INFO] [stdout] | [INFO] [stdout] 5 | #[derive(Clone, Debug)] [INFO] [stdout] | ^^^^^ ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Clone` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `module_code` [INFO] [stdout] --> src/compiler/module.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | module_code: Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: `Module` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] --> src/compiler/module.rs:5:10 [INFO] [stdout] | [INFO] [stdout] 5 | #[derive(Clone, Debug)] [INFO] [stdout] | ^^^^^ ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Clone` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `find_module` [INFO] [stdout] --> src/compiler/module.rs:82:12 [INFO] [stdout] | [INFO] [stdout] 82 | pub fn find_module(&self, s: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 37 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 11.03s [INFO] [stderr] Executable unittests src/main.rs (/opt/rustwide/target/debug/deps/kobold-098ee6c6aba6c110) [INFO] running `Command { std: "docker" "inspect" "e7c3ac5badb09940fa4ca1f7e6a8bdd1948e0d3bc137ee57e13e66aacf031da5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e7c3ac5badb09940fa4ca1f7e6a8bdd1948e0d3bc137ee57e13e66aacf031da5", kill_on_drop: false }` [INFO] [stdout] e7c3ac5badb09940fa4ca1f7e6a8bdd1948e0d3bc137ee57e13e66aacf031da5 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-97/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-97/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" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 0aa0aeab33ddb304e38b1d2c390c186e4ed12ea6597b514287b2f1c7843d807f [INFO] running `Command { std: "docker" "start" "-a" "0aa0aeab33ddb304e38b1d2c390c186e4ed12ea6597b514287b2f1c7843d807f", kill_on_drop: false }` [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/compiler/lexer.rs:101:32 [INFO] [stderr] | [INFO] [stderr] 101 | ... 'a'...'z' => {data.push(c); state = LexerState::Identifier;}, [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/compiler/lexer.rs:102:32 [INFO] [stderr] | [INFO] [stderr] 102 | ... 'A'...'Z' => {data.push(c); state = LexerState::StructIdentifier;}, [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/compiler/lexer.rs:103:32 [INFO] [stderr] | [INFO] [stderr] 103 | ... '0'...'9' => {data.push(c); state = LexerState::Integer;}, [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/compiler/lexer.rs:130:32 [INFO] [stderr] | [INFO] [stderr] 130 | ... 'a'...'z' | 'A'...'Z' | '0'...'9' | '_' | '!' | '?' => data.push(c), [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/compiler/lexer.rs:130:44 [INFO] [stderr] | [INFO] [stderr] 130 | ... 'a'...'z' | 'A'...'Z' | '0'...'9' | '_' | '!' | '?' => data.push(c), [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/compiler/lexer.rs:130:56 [INFO] [stderr] | [INFO] [stderr] 130 | ... 'a'...'z' | 'A'...'Z' | '0'...'9' | '_' | '!' | '?' => data.push(c), [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/compiler/lexer.rs:145:32 [INFO] [stderr] | [INFO] [stderr] 145 | ... 'a'...'z' | 'A'...'Z' | '0'...'9' | '_' => data.push(c), [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/compiler/lexer.rs:145:44 [INFO] [stderr] | [INFO] [stderr] 145 | ... 'a'...'z' | 'A'...'Z' | '0'...'9' | '_' => data.push(c), [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/compiler/lexer.rs:145:56 [INFO] [stderr] | [INFO] [stderr] 145 | ... 'a'...'z' | 'A'...'Z' | '0'...'9' | '_' => data.push(c), [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/compiler/lexer.rs:197:32 [INFO] [stderr] | [INFO] [stderr] 197 | ... '0'...'9' => data.push(c), [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/compiler/lexer.rs:205:32 [INFO] [stderr] | [INFO] [stderr] 205 | ... '0'...'9' => data.push(c), [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> src/tests/mod.rs:7:16 [INFO] [stderr] | [INFO] [stderr] 7 | e @ 'a'...'z' => e as i32 - 'a' as i32, [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/main.rs:24:8 [INFO] [stderr] | [INFO] [stderr] 24 | if try!(fs::metadata(dir)).is_dir() { [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/main.rs:25:22 [INFO] [stderr] | [INFO] [stderr] 25 | for entry in try!(fs::read_dir(dir)) { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/main.rs:26:25 [INFO] [stderr] | [INFO] [stderr] 26 | let entry = try!(entry); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stderr] --> src/main.rs:27:16 [INFO] [stderr] | [INFO] [stderr] 27 | if try!(fs::metadata(entry.path())).is_dir() { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary braces around method argument [INFO] [stderr] --> src/main.rs:128:57 [INFO] [stderr] | [INFO] [stderr] 128 | let excludes: Vec<&Path> = opts.excludes.iter().map({|a| Path::new(&*a)}).collect(); [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_braces)]` on by default [INFO] [stderr] help: remove these braces [INFO] [stderr] | [INFO] [stderr] 128 - let excludes: Vec<&Path> = opts.excludes.iter().map({|a| Path::new(&*a)}).collect(); [INFO] [stderr] 128 + let excludes: Vec<&Path> = opts.excludes.iter().map(|a| Path::new(&*a)).collect(); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary braces around method argument [INFO] [stderr] --> src/main.rs:132:59 [INFO] [stderr] | [INFO] [stderr] 132 | let classpath: Vec<&Path> = opts.classpath.iter().map({|a| Path::new(&*a)}).collect(); [INFO] [stderr] | ^ ^ [INFO] [stderr] | [INFO] [stderr] help: remove these braces [INFO] [stderr] | [INFO] [stderr] 132 - let classpath: Vec<&Path> = opts.classpath.iter().map({|a| Path::new(&*a)}).collect(); [INFO] [stderr] 132 + let classpath: Vec<&Path> = opts.classpath.iter().map(|a| Path::new(&*a)).collect(); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/compiler/parser.rs:12:37 [INFO] [stderr] | [INFO] [stderr] 12 | prefixs: HashMap>, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 12 - prefixs: HashMap>, [INFO] [stderr] 12 + prefixs: HashMap>, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/compiler/parser.rs:13:36 [INFO] [stderr] | [INFO] [stderr] 13 | infixs: HashMap>, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 13 - infixs: HashMap>, [INFO] [stderr] 13 + infixs: HashMap>, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/compiler/trie.rs:15:20 [INFO] [stderr] | [INFO] [stderr] 15 | index: Arc<&'a Fn(char) -> i32> [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 15 - index: Arc<&'a Fn(char) -> i32> [INFO] [stderr] 15 + index: Arc<&'a dyn Fn(char) -> i32> [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/compiler/trie.rs:38:35 [INFO] [stderr] | [INFO] [stderr] 38 | pub fn new(hspace: usize, f: &Fn(char) -> i32) -> Trie { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 38 - pub fn new(hspace: usize, f: &Fn(char) -> i32) -> Trie { [INFO] [stderr] 38 + pub fn new(hspace: usize, f: &dyn Fn(char) -> i32) -> Trie { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/compiler/trie.rs:50:44 [INFO] [stderr] | [INFO] [stderr] 50 | fn new_with_arc(hspace: usize, f: Arc<&Fn(char) -> i32>) -> Trie { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 50 - fn new_with_arc(hspace: usize, f: Arc<&Fn(char) -> i32>) -> Trie { [INFO] [stderr] 50 + fn new_with_arc(hspace: usize, f: Arc<&dyn Fn(char) -> i32>) -> Trie { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/compiler/parser.rs:140:57 [INFO] [stderr] | [INFO] [stderr] 140 | fn register_prefix(&mut self, tt: TokenType, p: Box) { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 140 - fn register_prefix(&mut self, tt: TokenType, p: Box) { [INFO] [stderr] 140 + fn register_prefix(&mut self, tt: TokenType, p: Box) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/compiler/parser.rs:148:56 [INFO] [stderr] | [INFO] [stderr] 148 | fn register_infix(&mut self, tt: TokenType, p: Box) { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 148 - fn register_infix(&mut self, tt: TokenType, p: Box) { [INFO] [stderr] 148 + fn register_infix(&mut self, tt: TokenType, p: Box) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/compiler/parslets/mod.rs:10:26 [INFO] [stderr] | [INFO] [stderr] 10 | fn dup(&self) -> Box; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 10 - fn dup(&self) -> Box; [INFO] [stderr] 10 + fn dup(&self) -> Box; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/compiler/parslets/mod.rs:15:26 [INFO] [stderr] | [INFO] [stderr] 15 | fn dup(&self) -> Box; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 15 - fn dup(&self) -> Box; [INFO] [stderr] 15 + fn dup(&self) -> Box; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/compiler/parslets/literal.rs:12:26 [INFO] [stderr] | [INFO] [stderr] 12 | fn dup(&self) -> Box { Box::new(IntegerParslet) } [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 12 - fn dup(&self) -> Box { Box::new(IntegerParslet) } [INFO] [stderr] 12 + fn dup(&self) -> Box { Box::new(IntegerParslet) } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/compiler/parslets/literal.rs:22:26 [INFO] [stderr] | [INFO] [stderr] 22 | fn dup(&self) -> Box { Box::new(FloatParslet) } [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 22 - fn dup(&self) -> Box { Box::new(FloatParslet) } [INFO] [stderr] 22 + fn dup(&self) -> Box { Box::new(FloatParslet) } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/compiler/parslets/operator.rs:22:26 [INFO] [stderr] | [INFO] [stderr] 22 | fn dup(&self) -> Box { Box::new(PrefixOpParslet::new(self.precedence)) } [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 22 - fn dup(&self) -> Box { Box::new(PrefixOpParslet::new(self.precedence)) } [INFO] [stderr] 22 + fn dup(&self) -> Box { Box::new(PrefixOpParslet::new(self.precedence)) } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/compiler/parslets/operator.rs:47:26 [INFO] [stderr] | [INFO] [stderr] 47 | fn dup(&self) -> Box { return Box::new(BinaryParslet::new(self.precedence, self.left_rec)) } [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 47 - fn dup(&self) -> Box { return Box::new(BinaryParslet::new(self.precedence, self.left_rec)) } [INFO] [stderr] 47 + fn dup(&self) -> Box { return Box::new(BinaryParslet::new(self.precedence, self.left_rec)) } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/compiler/parser.rs:154:37 [INFO] [stderr] | [INFO] [stderr] 154 | let mut parslet: Option> = None; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 154 - let mut parslet: Option> = None; [INFO] [stderr] 154 + let mut parslet: Option> = None; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/compiler/parser.rs:165:42 [INFO] [stderr] | [INFO] [stderr] 165 | let mut nparslet: Option> = None; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 165 - let mut nparslet: Option> = None; [INFO] [stderr] 165 + let mut nparslet: Option> = None; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused variable: `s` [INFO] [stderr] --> src/compiler/module.rs:82:31 [INFO] [stderr] | [INFO] [stderr] 82 | pub fn find_module(&self, s: &str) -> Option { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: field is never read: `local_name` [INFO] [stderr] --> src/compiler/module.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | local_name: String, // Struct partial name [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] note: `Module` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stderr] --> src/compiler/module.rs:5:10 [INFO] [stderr] | [INFO] [stderr] 5 | #[derive(Clone, Debug)] [INFO] [stderr] | ^^^^^ ^^^^^ [INFO] [stderr] = note: this warning originates in the derive macro `Clone` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: field is never read: `module_code` [INFO] [stderr] --> src/compiler/module.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | module_code: Vec>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: `Module` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stderr] --> src/compiler/module.rs:5:10 [INFO] [stderr] | [INFO] [stderr] 5 | #[derive(Clone, Debug)] [INFO] [stderr] | ^^^^^ ^^^^^ [INFO] [stderr] = note: this warning originates in the derive macro `Clone` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `find_module` [INFO] [stderr] --> src/compiler/module.rs:82:12 [INFO] [stderr] | [INFO] [stderr] 82 | pub fn find_module(&self, s: &str) -> Option { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `kobold` (bin "kobold" test) generated 37 warnings [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.23s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/kobold-098ee6c6aba6c110) [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test tests::test_trie ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "0aa0aeab33ddb304e38b1d2c390c186e4ed12ea6597b514287b2f1c7843d807f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0aa0aeab33ddb304e38b1d2c390c186e4ed12ea6597b514287b2f1c7843d807f", kill_on_drop: false }` [INFO] [stdout] 0aa0aeab33ddb304e38b1d2c390c186e4ed12ea6597b514287b2f1c7843d807f