[INFO] cloning repository https://github.com/dseevr/assassin
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/dseevr/assassin" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdseevr%2Fassassin", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdseevr%2Fassassin'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] e0e1390316a5b7fd5b507a2cfaca263201aed68b
[INFO] checking dseevr/assassin/e0e1390316a5b7fd5b507a2cfaca263201aed68b against master#c2f2db79ca3024f68d22b45aa22b570775c2c4ad for pr-124157
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdseevr%2Fassassin" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/dseevr/assassin on toolchain c2f2db79ca3024f68d22b45aa22b570775c2c4ad
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c2f2db79ca3024f68d22b45aa22b570775c2c4ad" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/dseevr/assassin
[INFO] finished tweaking git repo https://github.com/dseevr/assassin
[INFO] tweaked toml for git repo https://github.com/dseevr/assassin written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/dseevr/assassin already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c2f2db79ca3024f68d22b45aa22b570775c2c4ad" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded greenback v0.0.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:99613afd962a8cfa530ec1899472a458bd015a1ab0af876cf7eb06f6006d81ea" "/opt/rustwide/cargo-home/bin/cargo" "+c2f2db79ca3024f68d22b45aa22b570775c2c4ad" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 882dc5da0bd9485c296017daf6c164d09e0eacf57e1bb17a686c2890ce900d83
[INFO] running `Command { std: "docker" "start" "-a" "882dc5da0bd9485c296017daf6c164d09e0eacf57e1bb17a686c2890ce900d83", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "882dc5da0bd9485c296017daf6c164d09e0eacf57e1bb17a686c2890ce900d83", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "882dc5da0bd9485c296017daf6c164d09e0eacf57e1bb17a686c2890ce900d83", kill_on_drop: false }`
[INFO] [stdout] 882dc5da0bd9485c296017daf6c164d09e0eacf57e1bb17a686c2890ce900d83
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:99613afd962a8cfa530ec1899472a458bd015a1ab0af876cf7eb06f6006d81ea" "/opt/rustwide/cargo-home/bin/cargo" "+c2f2db79ca3024f68d22b45aa22b570775c2c4ad" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 41a3b988469802a2ec2107d6a60b041eab5c5174a246d665b6994b0669b52014
[INFO] running `Command { std: "docker" "start" "-a" "41a3b988469802a2ec2107d6a60b041eab5c5174a246d665b6994b0669b52014", kill_on_drop: false }`
[INFO] [stderr]     Checking libc v0.2.33
[INFO] [stderr]     Checking num-traits v0.1.40
[INFO] [stderr]     Checking void v1.0.2
[INFO] [stderr]     Checking lazy_static v0.2.11
[INFO] [stderr]     Checking utf8-ranges v1.0.0
[INFO] [stderr]     Checking regex-syntax v0.4.1
[INFO] [stderr]     Checking log v0.3.8
[INFO] [stderr]     Checking greenback v0.0.3
[INFO] [stderr]     Checking unreachable v1.0.0
[INFO] [stderr]     Checking fnv v1.0.6
[INFO] [stderr]     Checking thread_local v0.3.4
[INFO] [stderr]     Checking memchr v2.0.1
[INFO] [stderr]     Checking time v0.1.38
[INFO] [stderr]     Checking num-integer v0.1.35
[INFO] [stderr]     Checking aho-corasick v0.6.4
[INFO] [stderr]     Checking num-iter v0.1.34
[INFO] [stderr]     Checking regex v0.2.3
[INFO] [stderr]     Checking num v0.1.40
[INFO] [stderr]     Checking chrono v0.4.0
[INFO] [stderr]     Checking env_logger v0.4.3
[INFO] [stderr]     Checking assassin v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Utc`
[INFO] [stdout]    --> src/assassin/order.rs:162:13
[INFO] [stdout]     |
[INFO] [stdout] 162 |             Utc::now(),           // expiration date
[INFO] [stdout]     |             ^^^ use of undeclared type `Utc`
[INFO] [stdout]     |
[INFO] [stdout]     = note: struct `assassin::position::tests::Utc` exists but is inaccessible
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Utc`
[INFO] [stdout]    --> src/assassin/order.rs:175:13
[INFO] [stdout]     |
[INFO] [stdout] 175 |             Utc::now(),           // date (of quote)
[INFO] [stdout]     |             ^^^ use of undeclared type `Utc`
[INFO] [stdout]     |
[INFO] [stdout]     = note: struct `assassin::position::tests::Utc` exists but is inaccessible
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Utc`
[INFO] [stdout]    --> src/assassin/order.rs:191:31
[INFO] [stdout]     |
[INFO] [stdout] 191 |             filled_date: Some(Utc::now()),
[INFO] [stdout]     |                               ^^^ use of undeclared type `Utc`
[INFO] [stdout]     |
[INFO] [stdout]     = note: struct `assassin::position::tests::Utc` exists but is inaccessible
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `dummy_quote` in this scope
[INFO] [stdout]    --> src/assassin/position.rs:167:19
[INFO] [stdout]     |
[INFO] [stdout] 167 |         let foo = dummy_quote();
[INFO] [stdout]     |                   ^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] note: function `assassin::order::tests::dummy_quote` exists but is inaccessible
[INFO] [stdout]    --> src/assassin/order.rs:159:5
[INFO] [stdout]     |
[INFO] [stdout] 159 |     fn dummy_quote(bid: Money, ask: Money) -> Quote {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not accessible
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]    --> src/assassin/position.rs:163:9
[INFO] [stdout]     |
[INFO] [stdout] 163 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/assassin/traits.rs:10:30
[INFO] [stdout]    |
[INFO] [stdout] 10 |     fn commission_for(&self, &FilledOrder) -> Money;
[INFO] [stdout]    |                              ^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &FilledOrder`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout]    = note: `#[warn(anonymous_parameters)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/assassin/traits.rs:19:37
[INFO] [stdout]    |
[INFO] [stdout] 19 |     fn before_simulation(&mut self, &Broker);
[INFO] [stdout]    |                                     ^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &Broker`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/assassin/traits.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn after_simulation(&mut self, &Broker);
[INFO] [stdout]    |                                    ^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &Broker`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/assassin/traits.rs:21:29
[INFO] [stdout]    |
[INFO] [stdout] 21 |     fn run_logic(&mut self, &Broker) -> Vec<Order>;
[INFO] [stdout]    |                             ^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &Broker`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/assassin/traits.rs:22:31
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn show_bod_header(&self, &Broker);
[INFO] [stdout]    |                               ^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &Broker`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/assassin/traits.rs:23:32
[INFO] [stdout]    |
[INFO] [stdout] 23 |     fn show_eod_summary(&self, &Broker);
[INFO] [stdout]    |                                ^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &Broker`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/assassin/traits.rs:10:30
[INFO] [stdout]    |
[INFO] [stdout] 10 |     fn commission_for(&self, &FilledOrder) -> Money;
[INFO] [stdout]    |                              ^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &FilledOrder`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout]    = note: `#[warn(anonymous_parameters)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/assassin/traits.rs:19:37
[INFO] [stdout]    |
[INFO] [stdout] 19 |     fn before_simulation(&mut self, &Broker);
[INFO] [stdout]    |                                     ^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &Broker`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/assassin/traits.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn after_simulation(&mut self, &Broker);
[INFO] [stdout]    |                                    ^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &Broker`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/assassin/traits.rs:21:29
[INFO] [stdout]    |
[INFO] [stdout] 21 |     fn run_logic(&mut self, &Broker) -> Vec<Order>;
[INFO] [stdout]    |                             ^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &Broker`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/assassin/traits.rs:22:31
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn show_bod_header(&self, &Broker);
[INFO] [stdout]    |                               ^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &Broker`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]   --> src/assassin/traits.rs:23:32
[INFO] [stdout]    |
[INFO] [stdout] 23 |     fn show_eod_summary(&self, &Broker);
[INFO] [stdout]    |                                ^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &Broker`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]    = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/assassin/broker.rs:22:30
[INFO] [stdout]    |
[INFO] [stdout] 22 |     commission_schedule: Box<Commission>,
[INFO] [stdout]    |                              ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 22 |     commission_schedule: Box<dyn Commission>,
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/assassin/broker.rs:24:20
[INFO] [stdout]    |
[INFO] [stdout] 24 |     data_feed: Box<DataFeed>,
[INFO] [stdout]    |                    ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 24 |     data_feed: Box<dyn DataFeed>,
[INFO] [stdout]    |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/assassin/simulation.rs:11:16
[INFO] [stdout]    |
[INFO] [stdout] 11 |     model: Box<Model>,
[INFO] [stdout]    |                ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 11 |     model: Box<dyn Model>,
[INFO] [stdout]    |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/assassin/broker.rs:46:34
[INFO] [stdout]    |
[INFO] [stdout] 46 |         commission_schedule: Box<Commission>,
[INFO] [stdout]    |                                  ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 46 |         commission_schedule: Box<dyn Commission>,
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/assassin/broker.rs:47:24
[INFO] [stdout]    |
[INFO] [stdout] 47 |         data_feed: Box<DataFeed>,
[INFO] [stdout]    |                        ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 47 |         data_feed: Box<dyn DataFeed>,
[INFO] [stdout]    |                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/assassin/simulation.rs:21:27
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn new(model: Box<Model>, broker: Box<Broker>) -> Simulation {
[INFO] [stdout]    |                           ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn new(model: Box<dyn Model>, broker: Box<Broker>) -> Simulation {
[INFO] [stdout]    |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/assassin/broker.rs:22:30
[INFO] [stdout]    |
[INFO] [stdout] 22 |     commission_schedule: Box<Commission>,
[INFO] [stdout]    |                              ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 22 |     commission_schedule: Box<dyn Commission>,
[INFO] [stdout]    |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/assassin/broker.rs:24:20
[INFO] [stdout]    |
[INFO] [stdout] 24 |     data_feed: Box<DataFeed>,
[INFO] [stdout]    |                    ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 24 |     data_feed: Box<dyn DataFeed>,
[INFO] [stdout]    |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/assassin/simulation.rs:11:16
[INFO] [stdout]    |
[INFO] [stdout] 11 |     model: Box<Model>,
[INFO] [stdout]    |                ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 11 |     model: Box<dyn Model>,
[INFO] [stdout]    |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/assassin/broker.rs:46:34
[INFO] [stdout]    |
[INFO] [stdout] 46 |         commission_schedule: Box<Commission>,
[INFO] [stdout]    |                                  ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 46 |         commission_schedule: Box<dyn Commission>,
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/assassin/broker.rs:47:24
[INFO] [stdout]    |
[INFO] [stdout] 47 |         data_feed: Box<DataFeed>,
[INFO] [stdout]    |                        ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 47 |         data_feed: Box<dyn DataFeed>,
[INFO] [stdout]    |                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/assassin/simulation.rs:21:27
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn new(model: Box<Model>, broker: Box<Broker>) -> Simulation {
[INFO] [stdout]    |                           ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is an object-safe trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn new(model: Box<dyn Model>, broker: Box<Broker>) -> Simulation {
[INFO] [stdout]    |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `order::Order` has no field named `quote`
[INFO] [stdout]    --> src/assassin/order.rs:188:13
[INFO] [stdout]     |
[INFO] [stdout] 188 |             quote: Some(quote.clone()),
[INFO] [stdout]     |             ^^^^^ `order::Order` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: all struct fields are already assigned
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `order::Order` has no field named `fill_price`
[INFO] [stdout]    --> src/assassin/order.rs:189:13
[INFO] [stdout]     |
[INFO] [stdout] 189 |             fill_price: Some(quote.ask()),
[INFO] [stdout]     |             ^^^^^^^^^^ `order::Order` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: all struct fields are already assigned
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `order::Order` has no field named `commission`
[INFO] [stdout]    --> src/assassin/order.rs:190:13
[INFO] [stdout]     |
[INFO] [stdout] 190 |             commission: Some(Money::zero()),
[INFO] [stdout]     |             ^^^^^^^^^^ `order::Order` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: all struct fields are already assigned
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `order::Order` has no field named `filled_date`
[INFO] [stdout]    --> src/assassin/order.rs:191:13
[INFO] [stdout]     |
[INFO] [stdout] 191 |             filled_date: Some(Utc::now()),
[INFO] [stdout]     |             ^^^^^^^^^^^ `order::Order` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: all struct fields are already assigned
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `order::Order` has no field named `closed_by_broker`
[INFO] [stdout]    --> src/assassin/order.rs:192:13
[INFO] [stdout]     |
[INFO] [stdout] 192 |             closed_by_broker: false,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^ `order::Order` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: all struct fields are already assigned
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `cost_basis` found for struct `order::Order` in the current scope
[INFO] [stdout]    --> src/assassin/order.rs:206:28
[INFO] [stdout]     |
[INFO] [stdout] 9   | pub struct Order {
[INFO] [stdout]     | ---------------- method `cost_basis` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 206 |         let cost_basis = o.cost_basis();
[INFO] [stdout]     |                            ^^^^^^^^^^ method not found in `Order`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `fill_quote` and `fill_date` are never read
[INFO] [stdout]   --> src/assassin/filled_order.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct FilledOrder {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16 |     fill_quote: Quote,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 17 |     fill_price: Money,
[INFO] [stdout] 18 |     fill_date: DateTime<Utc>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FilledOrder` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `margin_requirement`, `is_sell`, `buy_to_open`, `sell_to_open`, `sell_to_close`, and `is_close` are never used
[INFO] [stdout]    --> src/assassin/filled_order.rs:106:12
[INFO] [stdout]     |
[INFO] [stdout] 24  | impl FilledOrder {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn margin_requirement(&self, price: Money) -> Money {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn is_sell(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub fn buy_to_open(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn sell_to_open(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub fn sell_to_close(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 142 |     pub fn is_close(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_sell`, `buy_to_open`, `sell_to_open`, `sell_to_close`, `is_close`, and `margin_requirement` are never used
[INFO] [stdout]    --> src/assassin/order.rs:25:12
[INFO] [stdout]     |
[INFO] [stdout] 20  | impl Order {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 25  |     pub fn is_sell(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn buy_to_open(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn sell_to_open(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn sell_to_close(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub fn is_close(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn margin_requirement(&self, price: Money) -> Money {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `volume`, `implied_volatility`, `delta`, `gamma`, `vega`, and `open_interest` are never read
[INFO] [stdout]   --> src/assassin/quote.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct Quote {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 18 |     volume: i32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 19 |     implied_volatility: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 20 |     delta: f32,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 21 |     gamma: f32,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 22 |     vega: f32,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 23 |     open_interest: i32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Quote` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `name`, `show_bod_header`, and `show_eod_summary` are never used
[INFO] [stdout]   --> src/assassin/traits.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub trait Model {
[INFO] [stdout]    |           ----- methods in this trait
[INFO] [stdout] 18 |     fn name(&self) -> &'static str;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     fn show_bod_header(&self, &Broker);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 23 |     fn show_eod_summary(&self, &Broker);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 17 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `unrealized_value` found for struct `order::Order` in the current scope
[INFO] [stdout]    --> src/assassin/order.rs:207:28
[INFO] [stdout]     |
[INFO] [stdout] 9   | pub struct Order {
[INFO] [stdout]     | ---------------- method `unrealized_value` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 207 |         let unrealized = o.unrealized_value(&q1);
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ method not found in `Order`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `unrealized_value` found for struct `order::Order` in the current scope
[INFO] [stdout]    --> src/assassin/order.rs:208:24
[INFO] [stdout]     |
[INFO] [stdout] 9   | pub struct Order {
[INFO] [stdout]     | ---------------- method `unrealized_value` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 208 |         let profit = o.unrealized_value(&q2) - o.cost_basis();
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^ method not found in `Order`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `cost_basis` found for struct `order::Order` in the current scope
[INFO] [stdout]    --> src/assassin/order.rs:208:50
[INFO] [stdout]     |
[INFO] [stdout] 9   | pub struct Order {
[INFO] [stdout]     | ---------------- method `cost_basis` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 208 |         let profit = o.unrealized_value(&q2) - o.cost_basis();
[INFO] [stdout]     |                                                  ^^^^^^^^^^ method not found in `Order`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 13 previous errors; 13 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0425, E0433, E0560, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0425`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `assassin` (bin "assassin" test) due to 14 previous errors; 13 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "41a3b988469802a2ec2107d6a60b041eab5c5174a246d665b6994b0669b52014", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "41a3b988469802a2ec2107d6a60b041eab5c5174a246d665b6994b0669b52014", kill_on_drop: false }`
[INFO] [stdout] 41a3b988469802a2ec2107d6a60b041eab5c5174a246d665b6994b0669b52014
