[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] checking Jengamon/Kobold against try#f47dd4da3ae8c32c9e65d307bfe640b143e674df for pr-77526 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJengamon%2FKobold" "/workspace/builds/worker-0/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/Jengamon/Kobold on toolchain f47dd4da3ae8c32c9e65d307bfe640b143e674df [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+f47dd4da3ae8c32c9e65d307bfe640b143e674df" "read-manifest" "--manifest-path" "Cargo.toml", 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-0/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" "+f47dd4da3ae8c32c9e65d307bfe640b143e674df" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] error: the lock file /workspace/builds/worker-0/source/Cargo.lock needs to be updated but --locked was passed to prevent this [INFO] [stderr] If you want to try to generate the lock file without accessing the network, use the --offline flag. [INFO] the lockfile is outdated, regenerating it [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+f47dd4da3ae8c32c9e65d307bfe640b143e674df" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }` [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+f47dd4da3ae8c32c9e65d307bfe640b143e674df" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/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" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+f47dd4da3ae8c32c9e65d307bfe640b143e674df" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] ad87ccf99b8b09ed39333b0876625dcd602f20d97f927dcd0e04eab544145afc [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "ad87ccf99b8b09ed39333b0876625dcd602f20d97f927dcd0e04eab544145afc", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "ad87ccf99b8b09ed39333b0876625dcd602f20d97f927dcd0e04eab544145afc", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ad87ccf99b8b09ed39333b0876625dcd602f20d97f927dcd0e04eab544145afc", kill_on_drop: false }` [INFO] [stdout] ad87ccf99b8b09ed39333b0876625dcd602f20d97f927dcd0e04eab544145afc [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/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=forbid" "-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" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+f47dd4da3ae8c32c9e65d307bfe640b143e674df" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] bf6008f884199845fdd8fee99e37c82309d8d9c4fd4dda60e546aed84226b91e [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "bf6008f884199845fdd8fee99e37c82309d8d9c4fd4dda60e546aed84226b91e", kill_on_drop: false }` [INFO] [stderr] Checking argparse v0.2.2 [INFO] [stderr] Checking kobold v0.1.0 (/opt/rustwide/workdir) [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: `...` 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] [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] [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] [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] [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] [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] [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] [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] [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] [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] [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] [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] | ^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(char) -> i32` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [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] | ^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(char) -> i32` [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] | ^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(char) -> i32` [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] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn PrefixParslet` [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] | ^^^^^^^^^^^^ help: use `dyn`: `dyn InfixParslet` [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] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn PrefixParslet` [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] | ^^^^^^^^^^^^ help: use `dyn`: `dyn InfixParslet` [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] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn PrefixParslet` [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] | ^^^^^^^^^^^^ help: use `dyn`: `dyn InfixParslet` [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] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn PrefixParslet` [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] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn PrefixParslet` [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] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn PrefixParslet` [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] | ^^^^^^^^^^^^ help: use `dyn`: `dyn InfixParslet` [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] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn PrefixParslet` [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] | ^^^^^^^^^^^^ help: use `dyn`: `dyn InfixParslet` [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] [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] | ^^^^^^^^^^^^^^^^^^^^ help: remove these braces [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_braces)]` on by default [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] | ^^^^^^^^^^^^^^^^^^^^ help: remove these braces [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: `...` 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] [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] [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] [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] [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] [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] [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] [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] [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] [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] [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] [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] | ^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(char) -> i32` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [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] | ^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(char) -> i32` [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] | ^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(char) -> i32` [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] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn PrefixParslet` [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] | ^^^^^^^^^^^^ help: use `dyn`: `dyn InfixParslet` [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] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn PrefixParslet` [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] | ^^^^^^^^^^^^ help: use `dyn`: `dyn InfixParslet` [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] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn PrefixParslet` [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] | ^^^^^^^^^^^^ help: use `dyn`: `dyn InfixParslet` [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] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn PrefixParslet` [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] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn PrefixParslet` [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] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn PrefixParslet` [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] | ^^^^^^^^^^^^ help: use `dyn`: `dyn InfixParslet` [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] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn PrefixParslet` [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] | ^^^^^^^^^^^^ help: use `dyn`: `dyn InfixParslet` [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] | ^^^^^^^^^^^^^^^^^^^^ help: remove these braces [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_braces)]` on by default [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] | ^^^^^^^^^^^^^^^^^^^^ help: remove these braces [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: 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] = note: `#[warn(dead_code)]` on by default [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: 35 warnings emitted [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] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 34 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1.45s [INFO] running `Command { std: "docker" "inspect" "bf6008f884199845fdd8fee99e37c82309d8d9c4fd4dda60e546aed84226b91e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "bf6008f884199845fdd8fee99e37c82309d8d9c4fd4dda60e546aed84226b91e", kill_on_drop: false }` [INFO] [stdout] bf6008f884199845fdd8fee99e37c82309d8d9c4fd4dda60e546aed84226b91e