[INFO] updating cached repository https://github.com/wraithan/warlight-starterbot-rust
[INFO] running `"git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "-c" "remote.origin.fetch=refs/heads/*:refs/heads/*" "fetch" "origin" "--force" "--prune"`
[INFO] running `"git" "rev-parse" "HEAD"`
[INFO] [stdout] 181ec2b799efcf521bab6bf3a7682f3c0d938fb0
[INFO] checking wraithan/warlight-starterbot-rust against master#209b2be09fcaff937480d1fbbe8b31646e361c7a for pr-70917
[INFO] running `"git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwraithan%2Fwarlight-starterbot-rust" "/workspace/builds/worker-1/source"`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/wraithan/warlight-starterbot-rust on toolchain 209b2be09fcaff937480d1fbbe8b31646e361c7a
[INFO] running `"/workspace/cargo-home/bin/cargo" "+209b2be09fcaff937480d1fbbe8b31646e361c7a" "read-manifest" "--manifest-path" "Cargo.toml"`
[INFO] started tweaking git repo https://github.com/wraithan/warlight-starterbot-rust
[INFO] finished tweaking git repo https://github.com/wraithan/warlight-starterbot-rust
[INFO] tweaked toml for git repo https://github.com/wraithan/warlight-starterbot-rust written to /workspace/builds/worker-1/source/Cargo.toml
[INFO] crate git repo https://github.com/wraithan/warlight-starterbot-rust already has a lockfile, it will not be regenerated
[INFO] running `"/workspace/cargo-home/bin/cargo" "+209b2be09fcaff937480d1fbbe8b31646e361c7a" "fetch" "--locked" "--manifest-path" "Cargo.toml"`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr] error: the lock file /workspace/builds/worker-1/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 `"/workspace/cargo-home/bin/cargo" "+209b2be09fcaff937480d1fbbe8b31646e361c7a" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"`
[INFO] running `"/workspace/cargo-home/bin/cargo" "+209b2be09fcaff937480d1fbbe8b31646e361c7a" "fetch" "--locked" "--manifest-path" "Cargo.toml"`
[INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+209b2be09fcaff937480d1fbbe8b31646e361c7a" "check" "--frozen" "--all" "--all-targets"`
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] [stdout] d459366582f55d5ca7b535052e893a2fd2f5cc188ad1142ed7880f9e2bb78b3a
[INFO] running `"docker" "start" "-a" "d459366582f55d5ca7b535052e893a2fd2f5cc188ad1142ed7880f9e2bb78b3a"`
[INFO] [stderr]    Compiling glob v0.3.0
[INFO] [stderr]     Checking getrandom v0.1.14
[INFO] [stderr]     Checking env_logger v0.7.1
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]    Compiling warbot v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking rand_chacha v0.2.2
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr] error[E0432]: unresolved import `rand::sample`
[INFO] [stderr]   --> src/lib.rs:10:24
[INFO] [stderr]    |
[INFO] [stderr] 10 | use rand::{thread_rng, sample};
[INFO] [stderr]    |                        ^^^^^^ no `sample` in the root
[INFO] [stderr] 
[INFO] [stderr] error[E0432]: unresolved import `rand::sample`
[INFO] [stderr]   --> src/lib.rs:10:24
[INFO] [stderr]    |
[INFO] [stderr] 10 | use rand::{thread_rng, sample};
[INFO] [stderr]    |                        ^^^^^^ no `sample` in the root
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/errors.rs:100:17
[INFO] [stderr]     |
[INFO] [stderr] 100 |                 try!(description.fmt(f));
[INFO] [stderr]     |                 ^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/errors.rs:101:17
[INFO] [stderr]     |
[INFO] [stderr] 101 |                 try!(f.write_str(": "));
[INFO] [stderr]     |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]   --> src/parser/mod.rs:62:19
[INFO] [stderr]    |
[INFO] [stderr] 62 |     let command = try!(parts.next().ok_or((ErrorKind::MalformedCommand, "Got setting without type")));
[INFO] [stderr]    |                   ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]   --> src/parser/mod.rs:66:25
[INFO] [stderr]    |
[INFO] [stderr] 66 |             let value = try!(parts_to_u64(parts, command.to_owned()));
[INFO] [stderr]    |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]   --> src/parser/mod.rs:70:25
[INFO] [stderr]    |
[INFO] [stderr] 70 |             let value = try!(parts_to_u64(parts, command.to_owned()));
[INFO] [stderr]    |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]   --> src/parser/mod.rs:74:25
[INFO] [stderr]    |
[INFO] [stderr] 74 |             let value = try!(parts_to_u64(parts, command.to_owned()));
[INFO] [stderr]    |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]   --> src/parser/mod.rs:78:25
[INFO] [stderr]    |
[INFO] [stderr] 78 |             let value = try!(parts_to_u64(parts, command.to_owned()));
[INFO] [stderr]    |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]   --> src/parser/mod.rs:82:25
[INFO] [stderr]    |
[INFO] [stderr] 82 |             let value = try!(parts_to_u64(parts, command.to_owned()));
[INFO] [stderr]    |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]   --> src/parser/mod.rs:86:25
[INFO] [stderr]    |
[INFO] [stderr] 86 |             let value = try!(parts_to_u64_vector(parts));
[INFO] [stderr]    |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]   --> src/parser/mod.rs:90:29
[INFO] [stderr]    |
[INFO] [stderr] 90 |             let raw_value = try!(parts.next().ok_or((
[INFO] [stderr]    |                             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]   --> src/parser/mod.rs:97:29
[INFO] [stderr]    |
[INFO] [stderr] 97 |             let raw_value = try!(parts.next().ok_or((
[INFO] [stderr]    |                             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:108:19
[INFO] [stderr]     |
[INFO] [stderr] 108 |     let command = try!(parts.next().ok_or((ErrorKind::MalformedCommand, "Got setup_map without type")));
[INFO] [stderr]     |                   ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:112:25
[INFO] [stderr]     |
[INFO] [stderr] 112 |             let value = try!(parts_to_pair_vector(parts));
[INFO] [stderr]     |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:116:25
[INFO] [stderr]     |
[INFO] [stderr] 116 |             let value = try!(parts_to_pair_vector(parts));
[INFO] [stderr]     |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:138:21
[INFO] [stderr]     |
[INFO] [stderr] 138 |                     try!(u64::from_str_radix(pair.get(0).unwrap(), 10)),
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:139:21
[INFO] [stderr]     |
[INFO] [stderr] 139 |                     try!(parts_to_u64_vector(pair.get(1).unwrap().split(',')))
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:145:25
[INFO] [stderr]     |
[INFO] [stderr] 145 |             let value = try!(parts_to_u64_vector(parts));
[INFO] [stderr]     |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:149:25
[INFO] [stderr]     |
[INFO] [stderr] 149 |             let value = try!(parts_to_u64_vector(parts));
[INFO] [stderr]     |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:176:13
[INFO] [stderr]     |
[INFO] [stderr] 176 |             try!(u64::from_str_radix(triplet.get(0).unwrap(), 10)),
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:178:13
[INFO] [stderr]     |
[INFO] [stderr] 178 |             try!(u64::from_str_radix(triplet.get(2).unwrap(), 10))
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:190:31
[INFO] [stderr]     |
[INFO] [stderr] 190 |                 let command = try!(parts.next().ok_or((ErrorKind::MalformedCommand, "opponent_moves missing type")));
[INFO] [stderr]     |                               ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:193:36
[INFO] [stderr]     |
[INFO] [stderr] 193 |                         value.push(try!(parts_to_attack_transfer(name.to_string(), &mut parts)))
[INFO] [stderr]     |                                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:196:36
[INFO] [stderr]     |
[INFO] [stderr] 196 |                         value.push(try!(parts_to_place_armies(name.to_string(), &mut parts)))
[INFO] [stderr]     |                                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:209:20
[INFO] [stderr]     |
[INFO] [stderr] 209 |     let raw_time = try!(parts.next().ok_or((ErrorKind::MalformedCommand, "Got go without type")));
[INFO] [stderr]     |                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:210:20
[INFO] [stderr]     |
[INFO] [stderr] 210 |     let timebank = try!(u64::from_str_radix(raw_time, 10));
[INFO] [stderr]     |                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:211:17
[INFO] [stderr]     |
[INFO] [stderr] 211 |     let value = try!(parts_to_u64_vector(parts));
[INFO] [stderr]     |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:216:19
[INFO] [stderr]     |
[INFO] [stderr] 216 |     let command = try!(parts.next().ok_or((ErrorKind::MalformedCommand, "Got setup_map without type")));
[INFO] [stderr]     |                   ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:220:25
[INFO] [stderr]     |
[INFO] [stderr] 220 |             let value = try!(parts_to_u64(parts, "go place_armies".to_owned()));
[INFO] [stderr]     |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:224:25
[INFO] [stderr]     |
[INFO] [stderr] 224 |             let value = try!(parts_to_u64(parts, "go attack/transfer".to_owned()));
[INFO] [stderr]     |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:232:21
[INFO] [stderr]     |
[INFO] [stderr] 232 |     let raw_value = try!(parts.next().ok_or((
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:237:8
[INFO] [stderr]     |
[INFO] [stderr] 237 |     Ok(try!(u64::from_str_radix(raw_value, 10)))
[INFO] [stderr]     |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:242:5
[INFO] [stderr]     |
[INFO] [stderr] 242 |     try!(peeker.peek().ok_or((ErrorKind::MalformedCommand, "Got command without any arguments")));
[INFO] [stderr]     |     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:245:20
[INFO] [stderr]     |
[INFO] [stderr] 245 |         value.push(try!(u64::from_str_radix(word, 10)));
[INFO] [stderr]     |                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:270:13
[INFO] [stderr]     |
[INFO] [stderr] 270 |             try!(u64::from_str_radix(pair.get(0).unwrap(), 10)),
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:271:13
[INFO] [stderr]     |
[INFO] [stderr] 271 |             try!(u64::from_str_radix(pair.get(1).unwrap(), 10))
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:278:22
[INFO] [stderr]     |
[INFO] [stderr] 278 |     let raw_source = try!(parts.next().ok_or((ErrorKind::MalformedCommand, "opponent_moves source")));
[INFO] [stderr]     |                      ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:279:22
[INFO] [stderr]     |
[INFO] [stderr] 279 |     let raw_target = try!(parts.next().ok_or((ErrorKind::MalformedCommand, "opponent_moves target")));
[INFO] [stderr]     |                      ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:280:22
[INFO] [stderr]     |
[INFO] [stderr] 280 |     let raw_armies = try!(parts.next().ok_or((ErrorKind::MalformedCommand, "opponent_moves armies")));
[INFO] [stderr]     |                      ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:283:9
[INFO] [stderr]     |
[INFO] [stderr] 283 |         try!(u64::from_str_radix(raw_source, 10)),
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:284:9
[INFO] [stderr]     |
[INFO] [stderr] 284 |         try!(u64::from_str_radix(raw_target, 10)),
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:285:9
[INFO] [stderr]     |
[INFO] [stderr] 285 |         try!(u64::from_str_radix(raw_armies, 10)),
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:290:22
[INFO] [stderr]     |
[INFO] [stderr] 290 |     let raw_target = try!(parts.next().ok_or((ErrorKind::MalformedCommand, "opponent_moves target")));
[INFO] [stderr]     |                      ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:291:22
[INFO] [stderr]     |
[INFO] [stderr] 291 |     let raw_armies = try!(parts.next().ok_or((ErrorKind::MalformedCommand, "opponent_moves armies")));
[INFO] [stderr]     |                      ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:294:9
[INFO] [stderr]     |
[INFO] [stderr] 294 |         try!(u64::from_str_radix(raw_target, 10)),
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:295:9
[INFO] [stderr]     |
[INFO] [stderr] 295 |         try!(u64::from_str_radix(raw_armies, 10)),
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/errors.rs:100:17
[INFO] [stderr]     |
[INFO] [stderr] 100 |                 try!(description.fmt(f));
[INFO] [stderr]     |                 ^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/parser/errors.rs:88:32
[INFO] [stderr]    |
[INFO] [stderr] 88 |     fn cause(&self) -> Option<&error::Error> {
[INFO] [stderr]    |                                ^^^^^^^^^^^^ help: use `dyn`: `dyn error::Error`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/errors.rs:101:17
[INFO] [stderr]     |
[INFO] [stderr] 101 |                 try!(f.write_str(": "));
[INFO] [stderr]     |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]   --> src/parser/mod.rs:62:19
[INFO] [stderr]    |
[INFO] [stderr] 62 |     let command = try!(parts.next().ok_or((ErrorKind::MalformedCommand, "Got setting without type")));
[INFO] [stderr]    |                   ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]   --> src/parser/mod.rs:66:25
[INFO] [stderr]    |
[INFO] [stderr] 66 |             let value = try!(parts_to_u64(parts, command.to_owned()));
[INFO] [stderr]    |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]   --> src/parser/mod.rs:70:25
[INFO] [stderr]    |
[INFO] [stderr] 70 |             let value = try!(parts_to_u64(parts, command.to_owned()));
[INFO] [stderr]    |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]   --> src/parser/mod.rs:74:25
[INFO] [stderr]    |
[INFO] [stderr] 74 |             let value = try!(parts_to_u64(parts, command.to_owned()));
[INFO] [stderr]    |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]   --> src/parser/mod.rs:78:25
[INFO] [stderr]    |
[INFO] [stderr] 78 |             let value = try!(parts_to_u64(parts, command.to_owned()));
[INFO] [stderr]    |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]   --> src/parser/mod.rs:82:25
[INFO] [stderr]    |
[INFO] [stderr] 82 |             let value = try!(parts_to_u64(parts, command.to_owned()));
[INFO] [stderr]    |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]   --> src/parser/mod.rs:86:25
[INFO] [stderr]    |
[INFO] [stderr] 86 |             let value = try!(parts_to_u64_vector(parts));
[INFO] [stderr]    |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]   --> src/parser/mod.rs:90:29
[INFO] [stderr]    |
[INFO] [stderr] 90 |             let raw_value = try!(parts.next().ok_or((
[INFO] [stderr]    |                             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]   --> src/parser/mod.rs:97:29
[INFO] [stderr]    |
[INFO] [stderr] 97 |             let raw_value = try!(parts.next().ok_or((
[INFO] [stderr]    |                             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:108:19
[INFO] [stderr]     |
[INFO] [stderr] 108 |     let command = try!(parts.next().ok_or((ErrorKind::MalformedCommand, "Got setup_map without type")));
[INFO] [stderr]     |                   ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:112:25
[INFO] [stderr]     |
[INFO] [stderr] 112 |             let value = try!(parts_to_pair_vector(parts));
[INFO] [stderr]     |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:116:25
[INFO] [stderr]     |
[INFO] [stderr] 116 |             let value = try!(parts_to_pair_vector(parts));
[INFO] [stderr]     |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:138:21
[INFO] [stderr]     |
[INFO] [stderr] 138 |                     try!(u64::from_str_radix(pair.get(0).unwrap(), 10)),
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:139:21
[INFO] [stderr]     |
[INFO] [stderr] 139 |                     try!(parts_to_u64_vector(pair.get(1).unwrap().split(',')))
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:145:25
[INFO] [stderr]     |
[INFO] [stderr] 145 |             let value = try!(parts_to_u64_vector(parts));
[INFO] [stderr]     |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:149:25
[INFO] [stderr]     |
[INFO] [stderr] 149 |             let value = try!(parts_to_u64_vector(parts));
[INFO] [stderr]     |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:176:13
[INFO] [stderr]     |
[INFO] [stderr] 176 |             try!(u64::from_str_radix(triplet.get(0).unwrap(), 10)),
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:178:13
[INFO] [stderr]     |
[INFO] [stderr] 178 |             try!(u64::from_str_radix(triplet.get(2).unwrap(), 10))
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:190:31
[INFO] [stderr]     |
[INFO] [stderr] 190 |                 let command = try!(parts.next().ok_or((ErrorKind::MalformedCommand, "opponent_moves missing type")));
[INFO] [stderr]     |                               ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:193:36
[INFO] [stderr]     |
[INFO] [stderr] 193 |                         value.push(try!(parts_to_attack_transfer(name.to_string(), &mut parts)))
[INFO] [stderr]     |                                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:196:36
[INFO] [stderr]     |
[INFO] [stderr] 196 |                         value.push(try!(parts_to_place_armies(name.to_string(), &mut parts)))
[INFO] [stderr]     |                                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:209:20
[INFO] [stderr]     |
[INFO] [stderr] 209 |     let raw_time = try!(parts.next().ok_or((ErrorKind::MalformedCommand, "Got go without type")));
[INFO] [stderr]     |                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:210:20
[INFO] [stderr]     |
[INFO] [stderr] 210 |     let timebank = try!(u64::from_str_radix(raw_time, 10));
[INFO] [stderr]     |                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:211:17
[INFO] [stderr]     |
[INFO] [stderr] 211 |     let value = try!(parts_to_u64_vector(parts));
[INFO] [stderr]     |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:216:19
[INFO] [stderr]     |
[INFO] [stderr] 216 |     let command = try!(parts.next().ok_or((ErrorKind::MalformedCommand, "Got setup_map without type")));
[INFO] [stderr]     |                   ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:220:25
[INFO] [stderr]     |
[INFO] [stderr] 220 |             let value = try!(parts_to_u64(parts, "go place_armies".to_owned()));
[INFO] [stderr]     |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:224:25
[INFO] [stderr]     |
[INFO] [stderr] 224 |             let value = try!(parts_to_u64(parts, "go attack/transfer".to_owned()));
[INFO] [stderr]     |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:232:21
[INFO] [stderr]     |
[INFO] [stderr] 232 |     let raw_value = try!(parts.next().ok_or((
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:237:8
[INFO] [stderr]     |
[INFO] [stderr] 237 |     Ok(try!(u64::from_str_radix(raw_value, 10)))
[INFO] [stderr]     |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:242:5
[INFO] [stderr]     |
[INFO] [stderr] 242 |     try!(peeker.peek().ok_or((ErrorKind::MalformedCommand, "Got command without any arguments")));
[INFO] [stderr]     |     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:245:20
[INFO] [stderr]     |
[INFO] [stderr] 245 |         value.push(try!(u64::from_str_radix(word, 10)));
[INFO] [stderr]     |                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:270:13
[INFO] [stderr]     |
[INFO] [stderr] 270 |             try!(u64::from_str_radix(pair.get(0).unwrap(), 10)),
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:271:13
[INFO] [stderr]     |
[INFO] [stderr] 271 |             try!(u64::from_str_radix(pair.get(1).unwrap(), 10))
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:278:22
[INFO] [stderr]     |
[INFO] [stderr] 278 |     let raw_source = try!(parts.next().ok_or((ErrorKind::MalformedCommand, "opponent_moves source")));
[INFO] [stderr]     |                      ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:279:22
[INFO] [stderr]     |
[INFO] [stderr] 279 |     let raw_target = try!(parts.next().ok_or((ErrorKind::MalformedCommand, "opponent_moves target")));
[INFO] [stderr]     |                      ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:280:22
[INFO] [stderr]     |
[INFO] [stderr] 280 |     let raw_armies = try!(parts.next().ok_or((ErrorKind::MalformedCommand, "opponent_moves armies")));
[INFO] [stderr]     |                      ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:283:9
[INFO] [stderr]     |
[INFO] [stderr] 283 |         try!(u64::from_str_radix(raw_source, 10)),
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:284:9
[INFO] [stderr]     |
[INFO] [stderr] 284 |         try!(u64::from_str_radix(raw_target, 10)),
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:285:9
[INFO] [stderr]     |
[INFO] [stderr] 285 |         try!(u64::from_str_radix(raw_armies, 10)),
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:290:22
[INFO] [stderr]     |
[INFO] [stderr] 290 |     let raw_target = try!(parts.next().ok_or((ErrorKind::MalformedCommand, "opponent_moves target")));
[INFO] [stderr]     |                      ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:291:22
[INFO] [stderr]     |
[INFO] [stderr] 291 |     let raw_armies = try!(parts.next().ok_or((ErrorKind::MalformedCommand, "opponent_moves armies")));
[INFO] [stderr]     |                      ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:294:9
[INFO] [stderr]     |
[INFO] [stderr] 294 |         try!(u64::from_str_radix(raw_target, 10)),
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead
[INFO] [stderr]    --> src/parser/mod.rs:295:9
[INFO] [stderr]     |
[INFO] [stderr] 295 |         try!(u64::from_str_radix(raw_armies, 10)),
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/parser/errors.rs:88:32
[INFO] [stderr]    |
[INFO] [stderr] 88 |     fn cause(&self) -> Option<&error::Error> {
[INFO] [stderr]    |                                ^^^^^^^^^^^^ help: use `dyn`: `dyn error::Error`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string()
[INFO] [stderr]   --> src/parser/errors.rs:63:13
[INFO] [stderr]    |
[INFO] [stderr] 63 |             error::Error::description(err).to_owned()
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string()
[INFO] [stderr]   --> src/parser/errors.rs:63:13
[INFO] [stderr]    |
[INFO] [stderr] 63 |             error::Error::description(err).to_owned()
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] error: aborting due to previous error
[INFO] [stderr] 
[INFO] [stderr] For more information about this error, try `rustc --explain E0432`.
[INFO] [stderr] error: could not compile `warbot`.
[INFO] [stderr] 
[INFO] [stderr] To learn more, run the command again with --verbose.
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: aborting due to previous error
[INFO] [stderr] 
[INFO] [stderr] For more information about this error, try `rustc --explain E0432`.
[INFO] [stderr] error: could not compile `warbot`.
[INFO] [stderr] 
[INFO] [stderr] To learn more, run the command again with --verbose.
[INFO] running `"docker" "inspect" "d459366582f55d5ca7b535052e893a2fd2f5cc188ad1142ed7880f9e2bb78b3a"`
[INFO] running `"docker" "rm" "-f" "d459366582f55d5ca7b535052e893a2fd2f5cc188ad1142ed7880f9e2bb78b3a"`
[INFO] [stdout] d459366582f55d5ca7b535052e893a2fd2f5cc188ad1142ed7880f9e2bb78b3a
