[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 1.47.0 for beta-1.48-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJengamon%2FKobold" "/workspace/builds/worker-3/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/Jengamon/Kobold on toolchain 1.47.0
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.47.0" "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-3/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" "+1.47.0" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] error: the lock file /workspace/builds/worker-3/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" "+1.47.0" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }`
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.47.0" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/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" "+1.47.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 1a2eb94472d4d39f61c0e6c1cdae6280640b27dae3b7a05dd5c4559477d9ff4a
[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" "1a2eb94472d4d39f61c0e6c1cdae6280640b27dae3b7a05dd5c4559477d9ff4a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1a2eb94472d4d39f61c0e6c1cdae6280640b27dae3b7a05dd5c4559477d9ff4a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1a2eb94472d4d39f61c0e6c1cdae6280640b27dae3b7a05dd5c4559477d9ff4a", kill_on_drop: false }`
[INFO] [stdout] 1a2eb94472d4d39f61c0e6c1cdae6280640b27dae3b7a05dd5c4559477d9ff4a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/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" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+1.47.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] [stdout] 64dbbc5ce69f156326551631d465692e88d0809cbec18db376bb18ab8c81e787
[INFO] running `Command { std: "docker" "start" "-a" "64dbbc5ce69f156326551631d465692e88d0809cbec18db376bb18ab8c81e787", kill_on_drop: false }`
[INFO] [stderr]    Compiling 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<R> {
[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<R> {
[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<TokenType, Box<PrefixParslet>>,
[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<TokenType, Box<InfixParslet>>,
[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<PrefixParslet>) {
[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<InfixParslet>) {
[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<Box<PrefixParslet>> = 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<Box<InfixParslet>> = 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<PrefixParslet> { 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<PrefixParslet> { 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<PrefixParslet> { 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<InfixParslet> { 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<PrefixParslet>;
[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<InfixParslet>;
[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<Module> {
[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<Module> {
[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 2.23s
[INFO] running `Command { std: "docker" "inspect" "64dbbc5ce69f156326551631d465692e88d0809cbec18db376bb18ab8c81e787", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "64dbbc5ce69f156326551631d465692e88d0809cbec18db376bb18ab8c81e787", kill_on_drop: false }`
[INFO] [stdout] 64dbbc5ce69f156326551631d465692e88d0809cbec18db376bb18ab8c81e787
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/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" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+1.47.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] [stdout] ce9fddbe7a7ac736b3ae3944739953bf3e3464cb16572aa550db9741fdf98011
[INFO] running `Command { std: "docker" "start" "-a" "ce9fddbe7a7ac736b3ae3944739953bf3e3464cb16572aa550db9741fdf98011", kill_on_drop: false }`
[INFO] [stderr]    Compiling 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<R> {
[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<R> {
[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<TokenType, Box<PrefixParslet>>,
[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<TokenType, Box<InfixParslet>>,
[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<PrefixParslet>) {
[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<InfixParslet>) {
[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<Box<PrefixParslet>> = 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<Box<InfixParslet>> = 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<PrefixParslet> { 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<PrefixParslet> { 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<PrefixParslet> { 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<InfixParslet> { 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<PrefixParslet>;
[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<InfixParslet>;
[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: unused variable: `s`
[INFO] [stdout]   --> src/compiler/module.rs:82:31
[INFO] [stdout]    |
[INFO] [stdout] 82 |     pub fn find_module(&self, s: &str) -> Option<Module> {
[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<Module> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 35 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 1.19s
[INFO] running `Command { std: "docker" "inspect" "ce9fddbe7a7ac736b3ae3944739953bf3e3464cb16572aa550db9741fdf98011", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ce9fddbe7a7ac736b3ae3944739953bf3e3464cb16572aa550db9741fdf98011", kill_on_drop: false }`
[INFO] [stdout] ce9fddbe7a7ac736b3ae3944739953bf3e3464cb16572aa550db9741fdf98011
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/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" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+1.47.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 53cfd3ea1ff3f449ac0d4099b27f95e341b83829a5b4650406916a885264553a
[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" "53cfd3ea1ff3f449ac0d4099b27f95e341b83829a5b4650406916a885264553a", kill_on_drop: false }`
[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: `...` 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] 
[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: `...` 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: `...` 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: `...` 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: `...` 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: `...` 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: `...` 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: `...` 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: `...` 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: `...` 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: 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]    |                    ^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(char) -> i32`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/compiler/trie.rs:38:35
[INFO] [stderr]    |
[INFO] [stderr] 38 |     pub fn new(hspace: usize, f: &Fn(char) -> i32) -> Trie<R> {
[INFO] [stderr]    |                                   ^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(char) -> i32`
[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<R> {
[INFO] [stderr]    |                                            ^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(char) -> i32`
[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<TokenType, Box<PrefixParslet>>,
[INFO] [stderr]    |                                     ^^^^^^^^^^^^^ help: use `dyn`: `dyn PrefixParslet`
[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<TokenType, Box<InfixParslet>>,
[INFO] [stderr]    |                                    ^^^^^^^^^^^^ help: use `dyn`: `dyn InfixParslet`
[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<PrefixParslet>) {
[INFO] [stderr]     |                                                         ^^^^^^^^^^^^^ help: use `dyn`: `dyn PrefixParslet`
[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<InfixParslet>) {
[INFO] [stderr]     |                                                        ^^^^^^^^^^^^ help: use `dyn`: `dyn InfixParslet`
[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<Box<PrefixParslet>> = None;
[INFO] [stderr]     |                                     ^^^^^^^^^^^^^ help: use `dyn`: `dyn PrefixParslet`
[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<Box<InfixParslet>> = None;
[INFO] [stderr]     |                                          ^^^^^^^^^^^^ help: use `dyn`: `dyn InfixParslet`
[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<PrefixParslet> { Box::new(IntegerParslet) }
[INFO] [stderr]    |                          ^^^^^^^^^^^^^ help: use `dyn`: `dyn PrefixParslet`
[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<PrefixParslet> { Box::new(FloatParslet) }
[INFO] [stderr]    |                          ^^^^^^^^^^^^^ help: use `dyn`: `dyn PrefixParslet`
[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<PrefixParslet> { Box::new(PrefixOpParslet::new(self.precedence)) }
[INFO] [stderr]    |                          ^^^^^^^^^^^^^ help: use `dyn`: `dyn PrefixParslet`
[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<InfixParslet> { return Box::new(BinaryParslet::new(self.precedence, self.left_rec)) }
[INFO] [stderr]    |                          ^^^^^^^^^^^^ help: use `dyn`: `dyn InfixParslet`
[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<PrefixParslet>;
[INFO] [stderr]    |                          ^^^^^^^^^^^^^ help: use `dyn`: `dyn PrefixParslet`
[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<InfixParslet>;
[INFO] [stderr]    |                          ^^^^^^^^^^^^ help: use `dyn`: `dyn InfixParslet`
[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: 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]     |                                                         ^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_braces)]` on by default
[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]     |                                                           ^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[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<Module> {
[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: 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<Module> {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: 35 warnings emitted
[INFO] [stderr] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.05s
[INFO] [stderr]      Running /opt/rustwide/target/debug/deps/kobold-480fdb68fa07befb
[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
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "53cfd3ea1ff3f449ac0d4099b27f95e341b83829a5b4650406916a885264553a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "53cfd3ea1ff3f449ac0d4099b27f95e341b83829a5b4650406916a885264553a", kill_on_drop: false }`
[INFO] [stdout] 53cfd3ea1ff3f449ac0d4099b27f95e341b83829a5b4650406916a885264553a
