[INFO] fetching crate gj 0.2.0...
[INFO] testing gj-0.2.0 against beta-2020-10-09 for beta-1.48-1
[INFO] extracting crate gj 0.2.0 into /workspace/builds/worker-0/source
[INFO] validating manifest of crates.io crate gj 0.2.0 on toolchain beta-2020-10-09
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2020-10-09" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] started tweaking crates.io crate gj 0.2.0
[INFO] finished tweaking crates.io crate gj 0.2.0
[INFO] tweaked toml for crates.io crate gj 0.2.0 written to /workspace/builds/worker-0/source/Cargo.toml
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2020-10-09" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }`
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2020-10-09" "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" "+beta-2020-10-09" "metadata" "--no-deps" "--format-version=1", 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] c4ec00356ce8ad70fd43fb0e040776c0126bee081f3362c54aa0fe22b88dbb53
[INFO] running `Command { std: "docker" "start" "-a" "c4ec00356ce8ad70fd43fb0e040776c0126bee081f3362c54aa0fe22b88dbb53", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c4ec00356ce8ad70fd43fb0e040776c0126bee081f3362c54aa0fe22b88dbb53", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c4ec00356ce8ad70fd43fb0e040776c0126bee081f3362c54aa0fe22b88dbb53", kill_on_drop: false }`
[INFO] [stdout] c4ec00356ce8ad70fd43fb0e040776c0126bee081f3362c54aa0fe22b88dbb53
[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=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" "+beta-2020-10-09" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f675e71933e48d5e84188c93f7a0c7fc87b101d85a7f45ccdee8b3665b39f745
[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" "f675e71933e48d5e84188c93f7a0c7fc87b101d85a7f45ccdee8b3665b39f745", kill_on_drop: false }`
[INFO] [stderr]    Compiling gj v0.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:220:21
[INFO] [stdout]     |
[INFO] [stdout] 220 |                     try!(event_source.wait());
[INFO] [stdout]     |                     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/private/promise_node.rs:35:21
[INFO] [stdout]    |
[INFO] [stdout] 35 |     dependency: Box<PromiseNode<DepT, E>>,
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<DepT, E>`
[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/private/promise_node.rs:42:32
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn new(dependency: Box<PromiseNode<DepT, E>>, func: Func) -> Transform<T, E, E1, DepT, Func> {
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<DepT, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/promise_node.rs:101:15
[INFO] [stdout]     |
[INFO] [stdout] 101 |     Step1(Box<PromiseNode<Promise<T, E>, E>>, Option<GuardedEventHandle>, Option<Weak<RefCell<ChainState<T, E>>>>),
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<Promise<T, E>, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/promise_node.rs:102:15
[INFO] [stdout]     |
[INFO] [stdout] 102 |     Step2(Box<PromiseNode<T, E>>, Option<Weak<RefCell<ChainState<T, E>>>>),
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/promise_node.rs:176:31
[INFO] [stdout]     |
[INFO] [stdout] 176 |     pub fn new(mut inner: Box<PromiseNode<Promise<T, E>, E>>) -> Chain<T, E> {
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<Promise<T, E>, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/promise_node.rs:273:17
[INFO] [stdout]     |
[INFO] [stdout] 273 |     Waiting(Box<PromiseNode<T, E>>, EventDropper),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/promise_node.rs:377:23
[INFO] [stdout]     |
[INFO] [stdout] 377 |     left: Option<(Box<PromiseNode<T, E>>, EventDropper)>,
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/promise_node.rs:378:24
[INFO] [stdout]     |
[INFO] [stdout] 378 |     right: Option<(Box<PromiseNode<T, E>>, EventDropper)>,
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/promise_node.rs:386:30
[INFO] [stdout]     |
[INFO] [stdout] 386 |     pub fn new(mut left: Box<PromiseNode<T, E>>, mut right: Box<PromiseNode<T, E>>) -> ExclusiveJoin<T, E> {
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/promise_node.rs:386:65
[INFO] [stdout]     |
[INFO] [stdout] 386 |     pub fn new(mut left: Box<PromiseNode<T, E>>, mut right: Box<PromiseNode<T, E>>) -> ExclusiveJoin<T, E> {
[INFO] [stdout]     |                                                                 ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/promise_node.rs:438:17
[INFO] [stdout]     |
[INFO] [stdout] 438 |     Waiting(Box<PromiseNode<T, E>>),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/promise_node.rs:453:31
[INFO] [stdout]     |
[INFO] [stdout] 453 |     pub fn new(mut inner: Box<PromiseNode<T, E>>) -> ForkHub<T, E> {
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/promise_node.rs:459:73
[INFO] [stdout]     |
[INFO] [stdout] 459 |         let event = Box::new(ForkEvent { state: state.clone() }) as Box<Event>;
[INFO] [stdout]     |                                                                         ^^^^^ help: use `dyn`: `dyn Event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/private/mod.rs:97:34
[INFO] [stdout]    |
[INFO] [stdout] 97 |     pub fn set(&self, event: Box<Event>) {
[INFO] [stdout]    |                                  ^^^^^ help: use `dyn`: `dyn Event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/mod.rs:121:27
[INFO] [stdout]     |
[INFO] [stdout] 121 |     pub event: Option<Box<Event>>,
[INFO] [stdout]     |                           ^^^^^ help: use `dyn`: `dyn Event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/mod.rs:281:28
[INFO] [stdout]     |
[INFO] [stdout] 281 |     reaper: Rc<RefCell<Box<TaskReaper<T, E>>>>,
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn TaskReaper<T, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/mod.rs:286:28
[INFO] [stdout]     |
[INFO] [stdout] 286 |     pub fn new(reaper: Box<TaskReaper<T, E>>) -> TaskSetImpl<T, E> {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn TaskReaper<T, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/mod.rs:293:39
[INFO] [stdout]     |
[INFO] [stdout] 293 |       pub fn add(&self, mut node: Box<PromiseNode<T, E>>) {
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/mod.rs:308:35
[INFO] [stdout]     |
[INFO] [stdout] 308 |     weak_reaper: Weak<RefCell<Box<TaskReaper<T, E>>>>,
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn TaskReaper<T, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/mod.rs:310:22
[INFO] [stdout]     |
[INFO] [stdout] 310 |     node: Option<Box<PromiseNode<T, E>>>,
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lib.rs:80:15
[INFO] [stdout]    |
[INFO] [stdout] 80 |     node: Box<PromiseNode<T, E>>,
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:204:74
[INFO] [stdout]     |
[INFO] [stdout] 204 |     pub fn wait<E1>(mut self, wait_scope: &WaitScope, event_source: &mut EventPort<E1>) -> Result<T, E>
[INFO] [stdout]     |                                                                          ^^^^^^^^^^^^^ help: use `dyn`: `dyn EventPort<E1>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:467:28
[INFO] [stdout]     |
[INFO] [stdout] 467 |     pub fn new(reaper: Box<TaskReaper<T, E>>) -> TaskSet<T, E> {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn TaskReaper<T, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Event`
[INFO] [stdout]   --> src/lib.rs:54:29
[INFO] [stdout]    |
[INFO] [stdout] 54 | use private::{promise_node, Event, BoolEvent, PromiseAndFulfillerHub, PromiseAndFulfillerWrapper,
[INFO] [stdout]    |                             ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/private/promise_node.rs:157:29
[INFO] [stdout]     |
[INFO] [stdout] 157 | / ...                   ::std::mem::replace(&mut *strong_self_ptr.borrow_mut(),
[INFO] [stdout] 158 | | ...                                       ChainState::Step2(inner, None));
[INFO] [stdout]     | |__________________________________________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 26 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 1.13s
[INFO] running `Command { std: "docker" "inspect" "f675e71933e48d5e84188c93f7a0c7fc87b101d85a7f45ccdee8b3665b39f745", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f675e71933e48d5e84188c93f7a0c7fc87b101d85a7f45ccdee8b3665b39f745", kill_on_drop: false }`
[INFO] [stdout] f675e71933e48d5e84188c93f7a0c7fc87b101d85a7f45ccdee8b3665b39f745
[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=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" "+beta-2020-10-09" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b8456a4d091d169bcdaa19fc8a18e76f7263bf9d54af55a67d3804717b97803b
[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" "b8456a4d091d169bcdaa19fc8a18e76f7263bf9d54af55a67d3804717b97803b", kill_on_drop: false }`
[INFO] [stderr]    Compiling gj v0.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:220:21
[INFO] [stdout]     |
[INFO] [stdout] 220 |                     try!(event_source.wait());
[INFO] [stdout]     |                     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/private/promise_node.rs:35:21
[INFO] [stdout]    |
[INFO] [stdout] 35 |     dependency: Box<PromiseNode<DepT, E>>,
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<DepT, E>`
[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/private/promise_node.rs:42:32
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn new(dependency: Box<PromiseNode<DepT, E>>, func: Func) -> Transform<T, E, E1, DepT, Func> {
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<DepT, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/promise_node.rs:101:15
[INFO] [stdout]     |
[INFO] [stdout] 101 |     Step1(Box<PromiseNode<Promise<T, E>, E>>, Option<GuardedEventHandle>, Option<Weak<RefCell<ChainState<T, E>>>>),
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<Promise<T, E>, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/promise_node.rs:102:15
[INFO] [stdout]     |
[INFO] [stdout] 102 |     Step2(Box<PromiseNode<T, E>>, Option<Weak<RefCell<ChainState<T, E>>>>),
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/promise_node.rs:176:31
[INFO] [stdout]     |
[INFO] [stdout] 176 |     pub fn new(mut inner: Box<PromiseNode<Promise<T, E>, E>>) -> Chain<T, E> {
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<Promise<T, E>, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/promise_node.rs:273:17
[INFO] [stdout]     |
[INFO] [stdout] 273 |     Waiting(Box<PromiseNode<T, E>>, EventDropper),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/promise_node.rs:377:23
[INFO] [stdout]     |
[INFO] [stdout] 377 |     left: Option<(Box<PromiseNode<T, E>>, EventDropper)>,
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/promise_node.rs:378:24
[INFO] [stdout]     |
[INFO] [stdout] 378 |     right: Option<(Box<PromiseNode<T, E>>, EventDropper)>,
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/promise_node.rs:386:30
[INFO] [stdout]     |
[INFO] [stdout] 386 |     pub fn new(mut left: Box<PromiseNode<T, E>>, mut right: Box<PromiseNode<T, E>>) -> ExclusiveJoin<T, E> {
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/promise_node.rs:386:65
[INFO] [stdout]     |
[INFO] [stdout] 386 |     pub fn new(mut left: Box<PromiseNode<T, E>>, mut right: Box<PromiseNode<T, E>>) -> ExclusiveJoin<T, E> {
[INFO] [stdout]     |                                                                 ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/promise_node.rs:438:17
[INFO] [stdout]     |
[INFO] [stdout] 438 |     Waiting(Box<PromiseNode<T, E>>),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/promise_node.rs:453:31
[INFO] [stdout]     |
[INFO] [stdout] 453 |     pub fn new(mut inner: Box<PromiseNode<T, E>>) -> ForkHub<T, E> {
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/promise_node.rs:459:73
[INFO] [stdout]     |
[INFO] [stdout] 459 |         let event = Box::new(ForkEvent { state: state.clone() }) as Box<Event>;
[INFO] [stdout]     |                                                                         ^^^^^ help: use `dyn`: `dyn Event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/private/mod.rs:97:34
[INFO] [stdout]    |
[INFO] [stdout] 97 |     pub fn set(&self, event: Box<Event>) {
[INFO] [stdout]    |                                  ^^^^^ help: use `dyn`: `dyn Event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/mod.rs:121:27
[INFO] [stdout]     |
[INFO] [stdout] 121 |     pub event: Option<Box<Event>>,
[INFO] [stdout]     |                           ^^^^^ help: use `dyn`: `dyn Event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/mod.rs:281:28
[INFO] [stdout]     |
[INFO] [stdout] 281 |     reaper: Rc<RefCell<Box<TaskReaper<T, E>>>>,
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn TaskReaper<T, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/mod.rs:286:28
[INFO] [stdout]     |
[INFO] [stdout] 286 |     pub fn new(reaper: Box<TaskReaper<T, E>>) -> TaskSetImpl<T, E> {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn TaskReaper<T, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/mod.rs:293:39
[INFO] [stdout]     |
[INFO] [stdout] 293 |       pub fn add(&self, mut node: Box<PromiseNode<T, E>>) {
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/mod.rs:308:35
[INFO] [stdout]     |
[INFO] [stdout] 308 |     weak_reaper: Weak<RefCell<Box<TaskReaper<T, E>>>>,
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn TaskReaper<T, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/mod.rs:310:22
[INFO] [stdout]     |
[INFO] [stdout] 310 |     node: Option<Box<PromiseNode<T, E>>>,
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lib.rs:80:15
[INFO] [stdout]    |
[INFO] [stdout] 80 |     node: Box<PromiseNode<T, E>>,
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:204:74
[INFO] [stdout]     |
[INFO] [stdout] 204 |     pub fn wait<E1>(mut self, wait_scope: &WaitScope, event_source: &mut EventPort<E1>) -> Result<T, E>
[INFO] [stdout]     |                                                                          ^^^^^^^^^^^^^ help: use `dyn`: `dyn EventPort<E1>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:467:28
[INFO] [stdout]     |
[INFO] [stdout] 467 |     pub fn new(reaper: Box<TaskReaper<T, E>>) -> TaskSet<T, E> {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn TaskReaper<T, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Event`
[INFO] [stdout]   --> src/lib.rs:54:29
[INFO] [stdout]    |
[INFO] [stdout] 54 | use private::{promise_node, Event, BoolEvent, PromiseAndFulfillerHub, PromiseAndFulfillerWrapper,
[INFO] [stdout]    |                             ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/private/promise_node.rs:157:29
[INFO] [stdout]     |
[INFO] [stdout] 157 | / ...                   ::std::mem::replace(&mut *strong_self_ptr.borrow_mut(),
[INFO] [stdout] 158 | | ...                                       ChainState::Step2(inner, None));
[INFO] [stdout]     | |__________________________________________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 26 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> tests/promises.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |         try!(promise.wait(wait_scope, &mut ClosedEventPort(())));
[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]   --> tests/promises.rs:54:21
[INFO] [stdout]    |
[INFO] [stdout] 54 |         let value = try!(promise.wait(wait_scope, &mut ClosedEventPort(())));
[INFO] [stdout]    |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> tests/promises.rs:125:21
[INFO] [stdout]     |
[INFO] [stdout] 125 |         let value = try!(promise3.wait(wait_scope, &mut ClosedEventPort(())));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> tests/promises.rs:135:49
[INFO] [stdout]     |
[INFO] [stdout] 135 |         let promise2: Promise<&'static str, Box<::std::error::Error>> =
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn (::std::error::Error)`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/lib.rs:220:21
[INFO] [stdout]     |
[INFO] [stdout] 220 |                     try!(event_source.wait());
[INFO] [stdout]     |                     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/private/promise_node.rs:35:21
[INFO] [stdout]    |
[INFO] [stdout] 35 |     dependency: Box<PromiseNode<DepT, E>>,
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<DepT, E>`
[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/private/promise_node.rs:42:32
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub fn new(dependency: Box<PromiseNode<DepT, E>>, func: Func) -> Transform<T, E, E1, DepT, Func> {
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<DepT, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/promise_node.rs:101:15
[INFO] [stdout]     |
[INFO] [stdout] 101 |     Step1(Box<PromiseNode<Promise<T, E>, E>>, Option<GuardedEventHandle>, Option<Weak<RefCell<ChainState<T, E>>>>),
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<Promise<T, E>, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/promise_node.rs:102:15
[INFO] [stdout]     |
[INFO] [stdout] 102 |     Step2(Box<PromiseNode<T, E>>, Option<Weak<RefCell<ChainState<T, E>>>>),
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/promise_node.rs:176:31
[INFO] [stdout]     |
[INFO] [stdout] 176 |     pub fn new(mut inner: Box<PromiseNode<Promise<T, E>, E>>) -> Chain<T, E> {
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<Promise<T, E>, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/promise_node.rs:273:17
[INFO] [stdout]     |
[INFO] [stdout] 273 |     Waiting(Box<PromiseNode<T, E>>, EventDropper),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/promise_node.rs:377:23
[INFO] [stdout]     |
[INFO] [stdout] 377 |     left: Option<(Box<PromiseNode<T, E>>, EventDropper)>,
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/promise_node.rs:378:24
[INFO] [stdout]     |
[INFO] [stdout] 378 |     right: Option<(Box<PromiseNode<T, E>>, EventDropper)>,
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/promise_node.rs:386:30
[INFO] [stdout]     |
[INFO] [stdout] 386 |     pub fn new(mut left: Box<PromiseNode<T, E>>, mut right: Box<PromiseNode<T, E>>) -> ExclusiveJoin<T, E> {
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/promise_node.rs:386:65
[INFO] [stdout]     |
[INFO] [stdout] 386 |     pub fn new(mut left: Box<PromiseNode<T, E>>, mut right: Box<PromiseNode<T, E>>) -> ExclusiveJoin<T, E> {
[INFO] [stdout]     |                                                                 ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/promise_node.rs:438:17
[INFO] [stdout]     |
[INFO] [stdout] 438 |     Waiting(Box<PromiseNode<T, E>>),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/promise_node.rs:453:31
[INFO] [stdout]     |
[INFO] [stdout] 453 |     pub fn new(mut inner: Box<PromiseNode<T, E>>) -> ForkHub<T, E> {
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/promise_node.rs:459:73
[INFO] [stdout]     |
[INFO] [stdout] 459 |         let event = Box::new(ForkEvent { state: state.clone() }) as Box<Event>;
[INFO] [stdout]     |                                                                         ^^^^^ help: use `dyn`: `dyn Event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/private/mod.rs:97:34
[INFO] [stdout]    |
[INFO] [stdout] 97 |     pub fn set(&self, event: Box<Event>) {
[INFO] [stdout]    |                                  ^^^^^ help: use `dyn`: `dyn Event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/mod.rs:121:27
[INFO] [stdout]     |
[INFO] [stdout] 121 |     pub event: Option<Box<Event>>,
[INFO] [stdout]     |                           ^^^^^ help: use `dyn`: `dyn Event`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/mod.rs:281:28
[INFO] [stdout]     |
[INFO] [stdout] 281 |     reaper: Rc<RefCell<Box<TaskReaper<T, E>>>>,
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn TaskReaper<T, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/mod.rs:286:28
[INFO] [stdout]     |
[INFO] [stdout] 286 |     pub fn new(reaper: Box<TaskReaper<T, E>>) -> TaskSetImpl<T, E> {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn TaskReaper<T, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/mod.rs:293:39
[INFO] [stdout]     |
[INFO] [stdout] 293 |       pub fn add(&self, mut node: Box<PromiseNode<T, E>>) {
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/mod.rs:308:35
[INFO] [stdout]     |
[INFO] [stdout] 308 |     weak_reaper: Weak<RefCell<Box<TaskReaper<T, E>>>>,
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn TaskReaper<T, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/private/mod.rs:310:22
[INFO] [stdout]     |
[INFO] [stdout] 310 |     node: Option<Box<PromiseNode<T, E>>>,
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lib.rs:80:15
[INFO] [stdout]    |
[INFO] [stdout] 80 |     node: Box<PromiseNode<T, E>>,
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:204:74
[INFO] [stdout]     |
[INFO] [stdout] 204 |     pub fn wait<E1>(mut self, wait_scope: &WaitScope, event_source: &mut EventPort<E1>) -> Result<T, E>
[INFO] [stdout]     |                                                                          ^^^^^^^^^^^^^ help: use `dyn`: `dyn EventPort<E1>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:467:28
[INFO] [stdout]     |
[INFO] [stdout] 467 |     pub fn new(reaper: Box<TaskReaper<T, E>>) -> TaskSet<T, E> {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn TaskReaper<T, E>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Event`
[INFO] [stdout]   --> src/lib.rs:54:29
[INFO] [stdout]    |
[INFO] [stdout] 54 | use private::{promise_node, Event, BoolEvent, PromiseAndFulfillerHub, PromiseAndFulfillerWrapper,
[INFO] [stdout]    |                             ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/private/promise_node.rs:157:29
[INFO] [stdout]     |
[INFO] [stdout] 157 | / ...                   ::std::mem::replace(&mut *strong_self_ptr.borrow_mut(),
[INFO] [stdout] 158 | | ...                                       ChainState::Step2(inner, None));
[INFO] [stdout]     | |__________________________________________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 26 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 4 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 3.17s
[INFO] running `Command { std: "docker" "inspect" "b8456a4d091d169bcdaa19fc8a18e76f7263bf9d54af55a67d3804717b97803b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b8456a4d091d169bcdaa19fc8a18e76f7263bf9d54af55a67d3804717b97803b", kill_on_drop: false }`
[INFO] [stdout] b8456a4d091d169bcdaa19fc8a18e76f7263bf9d54af55a67d3804717b97803b
[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=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" "+beta-2020-10-09" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 5283e17b8129229ac295c348be017dfdcd83df729503db3ebec344a579183138
[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" "5283e17b8129229ac295c348be017dfdcd83df729503db3ebec344a579183138", kill_on_drop: false }`
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:220:21
[INFO] [stderr]     |
[INFO] [stderr] 220 |                     try!(event_source.wait());
[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/private/promise_node.rs:35:21
[INFO] [stderr]    |
[INFO] [stderr] 35 |     dependency: Box<PromiseNode<DepT, E>>,
[INFO] [stderr]    |                     ^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<DepT, E>`
[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/private/promise_node.rs:42:32
[INFO] [stderr]    |
[INFO] [stderr] 42 |     pub fn new(dependency: Box<PromiseNode<DepT, E>>, func: Func) -> Transform<T, E, E1, DepT, Func> {
[INFO] [stderr]    |                                ^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<DepT, E>`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/private/promise_node.rs:101:15
[INFO] [stderr]     |
[INFO] [stderr] 101 |     Step1(Box<PromiseNode<Promise<T, E>, E>>, Option<GuardedEventHandle>, Option<Weak<RefCell<ChainState<T, E>>>>),
[INFO] [stderr]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<Promise<T, E>, E>`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/private/promise_node.rs:102:15
[INFO] [stderr]     |
[INFO] [stderr] 102 |     Step2(Box<PromiseNode<T, E>>, Option<Weak<RefCell<ChainState<T, E>>>>),
[INFO] [stderr]     |               ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/private/promise_node.rs:176:31
[INFO] [stderr]     |
[INFO] [stderr] 176 |     pub fn new(mut inner: Box<PromiseNode<Promise<T, E>, E>>) -> Chain<T, E> {
[INFO] [stderr]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<Promise<T, E>, E>`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/private/promise_node.rs:273:17
[INFO] [stderr]     |
[INFO] [stderr] 273 |     Waiting(Box<PromiseNode<T, E>>, EventDropper),
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/private/promise_node.rs:377:23
[INFO] [stderr]     |
[INFO] [stderr] 377 |     left: Option<(Box<PromiseNode<T, E>>, EventDropper)>,
[INFO] [stderr]     |                       ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/private/promise_node.rs:378:24
[INFO] [stderr]     |
[INFO] [stderr] 378 |     right: Option<(Box<PromiseNode<T, E>>, EventDropper)>,
[INFO] [stderr]     |                        ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/private/promise_node.rs:386:30
[INFO] [stderr]     |
[INFO] [stderr] 386 |     pub fn new(mut left: Box<PromiseNode<T, E>>, mut right: Box<PromiseNode<T, E>>) -> ExclusiveJoin<T, E> {
[INFO] [stderr]     |                              ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/private/promise_node.rs:386:65
[INFO] [stderr]     |
[INFO] [stderr] 386 |     pub fn new(mut left: Box<PromiseNode<T, E>>, mut right: Box<PromiseNode<T, E>>) -> ExclusiveJoin<T, E> {
[INFO] [stderr]     |                                                                 ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/private/promise_node.rs:438:17
[INFO] [stderr]     |
[INFO] [stderr] 438 |     Waiting(Box<PromiseNode<T, E>>),
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/private/promise_node.rs:453:31
[INFO] [stderr]     |
[INFO] [stderr] 453 |     pub fn new(mut inner: Box<PromiseNode<T, E>>) -> ForkHub<T, E> {
[INFO] [stderr]     |                               ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/private/promise_node.rs:459:73
[INFO] [stderr]     |
[INFO] [stderr] 459 |         let event = Box::new(ForkEvent { state: state.clone() }) as Box<Event>;
[INFO] [stderr]     |                                                                         ^^^^^ help: use `dyn`: `dyn Event`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/private/mod.rs:97:34
[INFO] [stderr]    |
[INFO] [stderr] 97 |     pub fn set(&self, event: Box<Event>) {
[INFO] [stderr]    |                                  ^^^^^ help: use `dyn`: `dyn Event`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/private/mod.rs:121:27
[INFO] [stderr]     |
[INFO] [stderr] 121 |     pub event: Option<Box<Event>>,
[INFO] [stderr]     |                           ^^^^^ help: use `dyn`: `dyn Event`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/private/mod.rs:281:28
[INFO] [stderr]     |
[INFO] [stderr] 281 |     reaper: Rc<RefCell<Box<TaskReaper<T, E>>>>,
[INFO] [stderr]     |                            ^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn TaskReaper<T, E>`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/private/mod.rs:286:28
[INFO] [stderr]     |
[INFO] [stderr] 286 |     pub fn new(reaper: Box<TaskReaper<T, E>>) -> TaskSetImpl<T, E> {
[INFO] [stderr]     |                            ^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn TaskReaper<T, E>`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/private/mod.rs:293:39
[INFO] [stderr]     |
[INFO] [stderr] 293 |       pub fn add(&self, mut node: Box<PromiseNode<T, E>>) {
[INFO] [stderr]     |                                       ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/private/mod.rs:308:35
[INFO] [stderr]     |
[INFO] [stderr] 308 |     weak_reaper: Weak<RefCell<Box<TaskReaper<T, E>>>>,
[INFO] [stderr]     |                                   ^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn TaskReaper<T, E>`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/private/mod.rs:310:22
[INFO] [stderr]     |
[INFO] [stderr] 310 |     node: Option<Box<PromiseNode<T, E>>>,
[INFO] [stderr]     |                      ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/lib.rs:80:15
[INFO] [stderr]    |
[INFO] [stderr] 80 |     node: Box<PromiseNode<T, E>>,
[INFO] [stderr]    |               ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:204:74
[INFO] [stderr]     |
[INFO] [stderr] 204 |     pub fn wait<E1>(mut self, wait_scope: &WaitScope, event_source: &mut EventPort<E1>) -> Result<T, E>
[INFO] [stderr]     |                                                                          ^^^^^^^^^^^^^ help: use `dyn`: `dyn EventPort<E1>`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:467:28
[INFO] [stderr]     |
[INFO] [stderr] 467 |     pub fn new(reaper: Box<TaskReaper<T, E>>) -> TaskSet<T, E> {
[INFO] [stderr]     |                            ^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn TaskReaper<T, E>`
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Event`
[INFO] [stderr]   --> src/lib.rs:54:29
[INFO] [stderr]    |
[INFO] [stderr] 54 | use private::{promise_node, Event, BoolEvent, PromiseAndFulfillerHub, PromiseAndFulfillerWrapper,
[INFO] [stderr]    |                             ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stderr]    --> src/private/promise_node.rs:157:29
[INFO] [stderr]     |
[INFO] [stderr] 157 | / ...                   ::std::mem::replace(&mut *strong_self_ptr.borrow_mut(),
[INFO] [stderr] 158 | | ...                                       ChainState::Step2(inner, None));
[INFO] [stderr]     | |__________________________________________________________________________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stderr]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stderr] 
[INFO] [stderr] warning: 26 warnings emitted
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/lib.rs:220:21
[INFO] [stderr]     |
[INFO] [stderr] 220 |                     try!(event_source.wait());
[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/private/promise_node.rs:35:21
[INFO] [stderr]    |
[INFO] [stderr] 35 |     dependency: Box<PromiseNode<DepT, E>>,
[INFO] [stderr]    |                     ^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<DepT, E>`
[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/private/promise_node.rs:42:32
[INFO] [stderr]    |
[INFO] [stderr] 42 |     pub fn new(dependency: Box<PromiseNode<DepT, E>>, func: Func) -> Transform<T, E, E1, DepT, Func> {
[INFO] [stderr]    |                                ^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<DepT, E>`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/private/promise_node.rs:101:15
[INFO] [stderr]     |
[INFO] [stderr] 101 |     Step1(Box<PromiseNode<Promise<T, E>, E>>, Option<GuardedEventHandle>, Option<Weak<RefCell<ChainState<T, E>>>>),
[INFO] [stderr]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<Promise<T, E>, E>`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/private/promise_node.rs:102:15
[INFO] [stderr]     |
[INFO] [stderr] 102 |     Step2(Box<PromiseNode<T, E>>, Option<Weak<RefCell<ChainState<T, E>>>>),
[INFO] [stderr]     |               ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/private/promise_node.rs:176:31
[INFO] [stderr]     |
[INFO] [stderr] 176 |     pub fn new(mut inner: Box<PromiseNode<Promise<T, E>, E>>) -> Chain<T, E> {
[INFO] [stderr]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<Promise<T, E>, E>`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/private/promise_node.rs:273:17
[INFO] [stderr]     |
[INFO] [stderr] 273 |     Waiting(Box<PromiseNode<T, E>>, EventDropper),
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/private/promise_node.rs:377:23
[INFO] [stderr]     |
[INFO] [stderr] 377 |     left: Option<(Box<PromiseNode<T, E>>, EventDropper)>,
[INFO] [stderr]     |                       ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/private/promise_node.rs:378:24
[INFO] [stderr]     |
[INFO] [stderr] 378 |     right: Option<(Box<PromiseNode<T, E>>, EventDropper)>,
[INFO] [stderr]     |                        ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/private/promise_node.rs:386:30
[INFO] [stderr]     |
[INFO] [stderr] 386 |     pub fn new(mut left: Box<PromiseNode<T, E>>, mut right: Box<PromiseNode<T, E>>) -> ExclusiveJoin<T, E> {
[INFO] [stderr]     |                              ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/private/promise_node.rs:386:65
[INFO] [stderr]     |
[INFO] [stderr] 386 |     pub fn new(mut left: Box<PromiseNode<T, E>>, mut right: Box<PromiseNode<T, E>>) -> ExclusiveJoin<T, E> {
[INFO] [stderr]     |                                                                 ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/private/promise_node.rs:438:17
[INFO] [stderr]     |
[INFO] [stderr] 438 |     Waiting(Box<PromiseNode<T, E>>),
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/private/promise_node.rs:453:31
[INFO] [stderr]     |
[INFO] [stderr] 453 |     pub fn new(mut inner: Box<PromiseNode<T, E>>) -> ForkHub<T, E> {
[INFO] [stderr]     |                               ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/private/promise_node.rs:459:73
[INFO] [stderr]     |
[INFO] [stderr] 459 |         let event = Box::new(ForkEvent { state: state.clone() }) as Box<Event>;
[INFO] [stderr]     |                                                                         ^^^^^ help: use `dyn`: `dyn Event`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/private/mod.rs:97:34
[INFO] [stderr]    |
[INFO] [stderr] 97 |     pub fn set(&self, event: Box<Event>) {
[INFO] [stderr]    |                                  ^^^^^ help: use `dyn`: `dyn Event`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/private/mod.rs:121:27
[INFO] [stderr]     |
[INFO] [stderr] 121 |     pub event: Option<Box<Event>>,
[INFO] [stderr]     |                           ^^^^^ help: use `dyn`: `dyn Event`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/private/mod.rs:281:28
[INFO] [stderr]     |
[INFO] [stderr] 281 |     reaper: Rc<RefCell<Box<TaskReaper<T, E>>>>,
[INFO] [stderr]     |                            ^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn TaskReaper<T, E>`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/private/mod.rs:286:28
[INFO] [stderr]     |
[INFO] [stderr] 286 |     pub fn new(reaper: Box<TaskReaper<T, E>>) -> TaskSetImpl<T, E> {
[INFO] [stderr]     |                            ^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn TaskReaper<T, E>`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/private/mod.rs:293:39
[INFO] [stderr]     |
[INFO] [stderr] 293 |       pub fn add(&self, mut node: Box<PromiseNode<T, E>>) {
[INFO] [stderr]     |                                       ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/private/mod.rs:308:35
[INFO] [stderr]     |
[INFO] [stderr] 308 |     weak_reaper: Weak<RefCell<Box<TaskReaper<T, E>>>>,
[INFO] [stderr]     |                                   ^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn TaskReaper<T, E>`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/private/mod.rs:310:22
[INFO] [stderr]     |
[INFO] [stderr] 310 |     node: Option<Box<PromiseNode<T, E>>>,
[INFO] [stderr]     |                      ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/lib.rs:80:15
[INFO] [stderr]    |
[INFO] [stderr] 80 |     node: Box<PromiseNode<T, E>>,
[INFO] [stderr]    |               ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn PromiseNode<T, E>`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:204:74
[INFO] [stderr]     |
[INFO] [stderr] 204 |     pub fn wait<E1>(mut self, wait_scope: &WaitScope, event_source: &mut EventPort<E1>) -> Result<T, E>
[INFO] [stderr]     |                                                                          ^^^^^^^^^^^^^ help: use `dyn`: `dyn EventPort<E1>`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:467:28
[INFO] [stderr]     |
[INFO] [stderr] 467 |     pub fn new(reaper: Box<TaskReaper<T, E>>) -> TaskSet<T, E> {
[INFO] [stderr]     |                            ^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn TaskReaper<T, E>`
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Event`
[INFO] [stderr]   --> src/lib.rs:54:29
[INFO] [stderr]    |
[INFO] [stderr] 54 | use private::{promise_node, Event, BoolEvent, PromiseAndFulfillerHub, PromiseAndFulfillerWrapper,
[INFO] [stderr]    |                             ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stderr]    --> src/private/promise_node.rs:157:29
[INFO] [stderr]     |
[INFO] [stderr] 157 | / ...                   ::std::mem::replace(&mut *strong_self_ptr.borrow_mut(),
[INFO] [stderr] 158 | | ...                                       ChainState::Step2(inner, None));
[INFO] [stderr]     | |__________________________________________________________________________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stderr]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stderr] 
[INFO] [stderr] warning: 26 warnings emitted
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> tests/promises.rs:40:9
[INFO] [stderr]    |
[INFO] [stderr] 40 |         try!(promise.wait(wait_scope, &mut ClosedEventPort(())));
[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]   --> tests/promises.rs:54:21
[INFO] [stderr]    |
[INFO] [stderr] 54 |         let value = try!(promise.wait(wait_scope, &mut ClosedEventPort(())));
[INFO] [stderr]    |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> tests/promises.rs:125:21
[INFO] [stderr]     |
[INFO] [stderr] 125 |         let value = try!(promise3.wait(wait_scope, &mut ClosedEventPort(())));
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> tests/promises.rs:135:49
[INFO] [stderr]     |
[INFO] [stderr] 135 |         let promise2: Promise<&'static str, Box<::std::error::Error>> =
[INFO] [stderr]     |                                                 ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn (::std::error::Error)`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: 4 warnings emitted
[INFO] [stderr] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.05s
[INFO] [stderr]      Running /opt/rustwide/target/debug/deps/gj-b3f94a28d30bdb32
[INFO] [stdout] 
[INFO] [stderr]      Running /opt/rustwide/target/debug/deps/promises-7daadd275a83e89d
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 29 tests
[INFO] [stdout] test array_join_drop_then_fulfill ... ok
[INFO] [stdout] test chain_error ... ok
[INFO] [stdout] test array_join_empty ... ok
[INFO] [stdout] test drop_task_set_leak ... ok
[INFO] [stdout] test drop_tail ... ok
[INFO] [stdout] test drop_task_set ... ok
[INFO] [stdout] test array_join_simple ... ok
[INFO] [stdout] test eagerly_evaluate ... ok
[INFO] [stdout] test array_join_ordering ... ok
[INFO] [stdout] test eval_int ... ok
[INFO] [stdout] test fork_cancel ... ok
[INFO] [stdout] test fork_branch_after_resolve ... ok
[INFO] [stdout] test drop_fulfiller ... ok
[INFO] [stdout] test fork_simple ... ok
[INFO] [stdout] test drop_depth_first_insertion_point ... ok
[INFO] [stdout] test hold_fulfiller ... ok
[INFO] [stdout] test knotty ... ok
[INFO] [stdout] test ordering ... ok
[INFO] [stdout] test separate_fulfiller_chained ... ok
[INFO] [stdout] test reject_fulfiller ... ok
[INFO] [stdout] test fulfiller ... ok
[INFO] [stdout] test eval_void ... ok
[INFO] [stdout] test chain ... ok
[INFO] [stdout] test task_set ... ok
[INFO] [stdout] test task_set_drop_self ... ok
[INFO] [stdout] test exclusive_join ... ok
[INFO] [stdout] test task_set_recursion ... ok
[INFO] [stdout] test deep_chain2 ... ok
[INFO] [stderr]    Doc-tests gj
[INFO] [stdout] test simple_recursion ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 29 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test src/lib.rs - (line 29) ... 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" "5283e17b8129229ac295c348be017dfdcd83df729503db3ebec344a579183138", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5283e17b8129229ac295c348be017dfdcd83df729503db3ebec344a579183138", kill_on_drop: false }`
[INFO] [stdout] 5283e17b8129229ac295c348be017dfdcd83df729503db3ebec344a579183138
