[INFO] fetching crate caldyn 0.4.3...
[INFO] checking caldyn-0.4.3 against master#03c609abb6638f9d7f49f34326d4137d07f5cd61 for pr-155945
[INFO] extracting crate caldyn 0.4.3 into /workspace/builds/worker-6-tc1/source
[INFO] started tweaking crates.io crate caldyn 0.4.3
[INFO] finished tweaking crates.io crate caldyn 0.4.3
[INFO] tweaked toml for crates.io crate caldyn 0.4.3 written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate caldyn 0.4.3 on toolchain 03c609abb6638f9d7f49f34326d4137d07f5cd61
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+03c609abb6638f9d7f49f34326d4137d07f5cd61" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+03c609abb6638f9d7f49f34326d4137d07f5cd61" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 28 packages to latest compatible versions
[INFO] [stderr]       Adding rustyline v1.0.0 (available: v18.0.0)
[INFO] [stderr]       Adding shellexpand v1.1.1 (available: v3.1.2)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+03c609abb6638f9d7f49f34326d4137d07f5cd61" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded libredox v0.1.16
[INFO] [stderr]   Downloaded redox_users v0.4.6
[INFO] [stderr]   Downloaded shellexpand v1.1.1
[INFO] [stderr]   Downloaded dirs-sys v0.3.7
[INFO] [stderr]   Downloaded dirs v2.0.2
[INFO] [stderr]   Downloaded nix v0.5.1
[INFO] [stderr]   Downloaded cfg-if v0.1.10
[INFO] [stderr]   Downloaded winapi-build v0.1.1
[INFO] [stderr]   Downloaded bitflags v0.4.0
[INFO] [stderr]   Downloaded kernel32-sys v0.2.2
[INFO] [stderr]   Downloaded encode_unicode v0.1.3
[INFO] [stderr]   Downloaded wasi v0.11.1+wasi-snapshot-preview1
[INFO] [stderr]   Downloaded rustyline v1.0.0
[INFO] [stderr]   Downloaded unicode-width v0.1.14
[INFO] [stderr]   Downloaded winapi v0.2.8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+03c609abb6638f9d7f49f34326d4137d07f5cd61" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] dee1b1251a91a0faa8b35f5bc632935d199fc472157bc6b1ca44625e28f74549
[INFO] running `Command { std: "docker" "start" "-a" "dee1b1251a91a0faa8b35f5bc632935d199fc472157bc6b1ca44625e28f74549", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "dee1b1251a91a0faa8b35f5bc632935d199fc472157bc6b1ca44625e28f74549", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "dee1b1251a91a0faa8b35f5bc632935d199fc472157bc6b1ca44625e28f74549", kill_on_drop: false }`
[INFO] [stdout] dee1b1251a91a0faa8b35f5bc632935d199fc472157bc6b1ca44625e28f74549
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+03c609abb6638f9d7f49f34326d4137d07f5cd61" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] a6561e572b22e6bbcdcdeae7bc21862e399723a66c34212c0cceede89b89c8e7
[INFO] running `Command { std: "docker" "start" "-a" "a6561e572b22e6bbcdcdeae7bc21862e399723a66c34212c0cceede89b89c8e7", kill_on_drop: false }`
[INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]     Checking cfg-if v0.1.10
[INFO] [stderr]     Checking bitflags v0.4.0
[INFO] [stderr]     Checking lazy_static v1.5.0
[INFO] [stderr]     Checking unicode-width v0.1.14
[INFO] [stderr]     Checking encode_unicode v0.1.3
[INFO] [stderr]     Checking caldyn v0.4.3 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/expr.rs:66:45
[INFO] [stdout]    |
[INFO] [stdout] 66 |                         let args = Box::new(try!(Ast::from_tokens(tokens, " in function call")));
[INFO] [stdout]    |                                             ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/expr.rs:77:42
[INFO] [stdout]    |
[INFO] [stdout] 77 |                     let right = Box::new(try!(Ast::from_tokens(tokens, " after operator")));
[INFO] [stdout]    |                                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/expr.rs:78:41
[INFO] [stdout]    |
[INFO] [stdout] 78 |                     let left = Box::new(try!(Ast::from_tokens(tokens, " befor operator")));
[INFO] [stdout]    |                                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expr.rs:103:49
[INFO] [stdout]     |
[INFO] [stdout] 103 |             Ast::Add(ref left, ref right) => Ok(try!(left.eval(context)) + try!(right.eval(context))),
[INFO] [stdout]     |                                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expr.rs:103:76
[INFO] [stdout]     |
[INFO] [stdout] 103 |             Ast::Add(ref left, ref right) => Ok(try!(left.eval(context)) + try!(right.eval(context))),
[INFO] [stdout]     |                                                                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expr.rs:104:49
[INFO] [stdout]     |
[INFO] [stdout] 104 |             Ast::Sub(ref left, ref right) => Ok(try!(left.eval(context)) - try!(right.eval(context))),
[INFO] [stdout]     |                                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expr.rs:104:76
[INFO] [stdout]     |
[INFO] [stdout] 104 |             Ast::Sub(ref left, ref right) => Ok(try!(left.eval(context)) - try!(right.eval(context))),
[INFO] [stdout]     |                                                                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expr.rs:105:49
[INFO] [stdout]     |
[INFO] [stdout] 105 |             Ast::Mul(ref left, ref right) => Ok(try!(left.eval(context)) * try!(right.eval(context))),
[INFO] [stdout]     |                                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expr.rs:105:76
[INFO] [stdout]     |
[INFO] [stdout] 105 |             Ast::Mul(ref left, ref right) => Ok(try!(left.eval(context)) * try!(right.eval(context))),
[INFO] [stdout]     |                                                                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expr.rs:106:49
[INFO] [stdout]     |
[INFO] [stdout] 106 |             Ast::Div(ref left, ref right) => Ok(try!(left.eval(context)) / try!(right.eval(context))),
[INFO] [stdout]     |                                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expr.rs:106:76
[INFO] [stdout]     |
[INFO] [stdout] 106 |             Ast::Div(ref left, ref right) => Ok(try!(left.eval(context)) / try!(right.eval(context))),
[INFO] [stdout]     |                                                                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expr.rs:107:49
[INFO] [stdout]     |
[INFO] [stdout] 107 |             Ast::Exp(ref left, ref right) => Ok(try!(left.eval(context)).powf(try!(right.eval(context)))),
[INFO] [stdout]     |                                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expr.rs:107:79
[INFO] [stdout]     |
[INFO] [stdout] 107 |             Ast::Exp(ref left, ref right) => Ok(try!(left.eval(context)).powf(try!(right.eval(context)))),
[INFO] [stdout]     |                                                                               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expr.rs:108:57
[INFO] [stdout]     |
[INFO] [stdout] 108 |             Ast::Function(ref func, ref arg) => Ok(func(try!(arg.eval(context)))),
[INFO] [stdout]     |                                                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expr.rs:221:42
[INFO] [stdout]     |
[INFO] [stdout] 221 |         'tokens: while let Some(token) = try!(lexer.next_token()) {
[INFO] [stdout]     |                                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expr.rs:278:19
[INFO] [stdout]     |
[INFO] [stdout] 278 |         let ast = try!(Ast::from_tokens(&mut output, ""));
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/context.rs:20:23
[INFO] [stdout]    |
[INFO] [stdout] 20 |     query: Option<Box<Fn(&str) -> Option<f64> + 'a>>,
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 20 |     query: Option<Box<dyn Fn(&str) -> Option<f64> + 'a>>,
[INFO] [stdout]    |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/error.rs:31:32
[INFO] [stdout]    |
[INFO] [stdout] 31 |     fn cause(&self) -> Option<&error::Error> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 31 |     fn cause(&self) -> Option<&dyn error::Error> {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> src/expr.rs:55:14
[INFO] [stdout]    |
[INFO] [stdout] 38 | #[derive(Debug, Clone, PartialEq)]
[INFO] [stdout]    |                        --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 55 |     Function(fn(f64) -> f64, Box<Ast>),
[INFO] [stdout]    |              ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout]    = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/expr.rs:365:20
[INFO] [stdout]     |
[INFO] [stdout] 365 |     fn new(string: &str) -> Lexer {
[INFO] [stdout]     |                    ^^^^     ^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 365 |     fn new(string: &str) -> Lexer<'_> {
[INFO] [stdout]     |                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking dirs-sys v0.3.7
[INFO] [stderr]     Checking nix v0.5.1
[INFO] [stderr]     Checking dirs v2.0.2
[INFO] [stderr]     Checking shellexpand v1.1.1
[INFO] [stderr]     Checking rustyline v1.0.0
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/expr.rs:66:45
[INFO] [stdout]    |
[INFO] [stdout] 66 |                         let args = Box::new(try!(Ast::from_tokens(tokens, " in function call")));
[INFO] [stdout]    |                                             ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/expr.rs:77:42
[INFO] [stdout]    |
[INFO] [stdout] 77 |                     let right = Box::new(try!(Ast::from_tokens(tokens, " after operator")));
[INFO] [stdout]    |                                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/expr.rs:78:41
[INFO] [stdout]    |
[INFO] [stdout] 78 |                     let left = Box::new(try!(Ast::from_tokens(tokens, " befor operator")));
[INFO] [stdout]    |                                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expr.rs:103:49
[INFO] [stdout]     |
[INFO] [stdout] 103 |             Ast::Add(ref left, ref right) => Ok(try!(left.eval(context)) + try!(right.eval(context))),
[INFO] [stdout]     |                                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expr.rs:103:76
[INFO] [stdout]     |
[INFO] [stdout] 103 |             Ast::Add(ref left, ref right) => Ok(try!(left.eval(context)) + try!(right.eval(context))),
[INFO] [stdout]     |                                                                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expr.rs:104:49
[INFO] [stdout]     |
[INFO] [stdout] 104 |             Ast::Sub(ref left, ref right) => Ok(try!(left.eval(context)) - try!(right.eval(context))),
[INFO] [stdout]     |                                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expr.rs:104:76
[INFO] [stdout]     |
[INFO] [stdout] 104 |             Ast::Sub(ref left, ref right) => Ok(try!(left.eval(context)) - try!(right.eval(context))),
[INFO] [stdout]     |                                                                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expr.rs:105:49
[INFO] [stdout]     |
[INFO] [stdout] 105 |             Ast::Mul(ref left, ref right) => Ok(try!(left.eval(context)) * try!(right.eval(context))),
[INFO] [stdout]     |                                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expr.rs:105:76
[INFO] [stdout]     |
[INFO] [stdout] 105 |             Ast::Mul(ref left, ref right) => Ok(try!(left.eval(context)) * try!(right.eval(context))),
[INFO] [stdout]     |                                                                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expr.rs:106:49
[INFO] [stdout]     |
[INFO] [stdout] 106 |             Ast::Div(ref left, ref right) => Ok(try!(left.eval(context)) / try!(right.eval(context))),
[INFO] [stdout]     |                                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expr.rs:106:76
[INFO] [stdout]     |
[INFO] [stdout] 106 |             Ast::Div(ref left, ref right) => Ok(try!(left.eval(context)) / try!(right.eval(context))),
[INFO] [stdout]     |                                                                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expr.rs:107:49
[INFO] [stdout]     |
[INFO] [stdout] 107 |             Ast::Exp(ref left, ref right) => Ok(try!(left.eval(context)).powf(try!(right.eval(context)))),
[INFO] [stdout]     |                                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expr.rs:107:79
[INFO] [stdout]     |
[INFO] [stdout] 107 |             Ast::Exp(ref left, ref right) => Ok(try!(left.eval(context)).powf(try!(right.eval(context)))),
[INFO] [stdout]     |                                                                               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expr.rs:108:57
[INFO] [stdout]     |
[INFO] [stdout] 108 |             Ast::Function(ref func, ref arg) => Ok(func(try!(arg.eval(context)))),
[INFO] [stdout]     |                                                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expr.rs:221:42
[INFO] [stdout]     |
[INFO] [stdout] 221 |         'tokens: while let Some(token) = try!(lexer.next_token()) {
[INFO] [stdout]     |                                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expr.rs:278:19
[INFO] [stdout]     |
[INFO] [stdout] 278 |         let ast = try!(Ast::from_tokens(&mut output, ""));
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/context.rs:20:23
[INFO] [stdout]    |
[INFO] [stdout] 20 |     query: Option<Box<Fn(&str) -> Option<f64> + 'a>>,
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 20 |     query: Option<Box<dyn Fn(&str) -> Option<f64> + 'a>>,
[INFO] [stdout]    |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/error.rs:31:32
[INFO] [stdout]    |
[INFO] [stdout] 31 |     fn cause(&self) -> Option<&error::Error> {
[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/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 31 |     fn cause(&self) -> Option<&dyn error::Error> {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/expr.rs:585:42
[INFO] [stdout]     |
[INFO] [stdout] 585 |         assert_eq!(result.err().unwrap().description(), "name 'z' is not defined");
[INFO] [stdout]     |                                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/expr.rs:587:42
[INFO] [stdout]     |
[INFO] [stdout] 587 |         assert_eq!(result.err().unwrap().description(), "name 'a' is not defined");
[INFO] [stdout]     |                                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> src/expr.rs:55:14
[INFO] [stdout]    |
[INFO] [stdout] 38 | #[derive(Debug, Clone, PartialEq)]
[INFO] [stdout]    |                        --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 55 |     Function(fn(f64) -> f64, Box<Ast>),
[INFO] [stdout]    |              ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout]    = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/expr.rs:365:20
[INFO] [stdout]     |
[INFO] [stdout] 365 |     fn new(string: &str) -> Lexer {
[INFO] [stdout]     |                    ^^^^     ^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 365 |     fn new(string: &str) -> Lexer<'_> {
[INFO] [stdout]     |                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.97s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: bitflags v0.4.0
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "a6561e572b22e6bbcdcdeae7bc21862e399723a66c34212c0cceede89b89c8e7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a6561e572b22e6bbcdcdeae7bc21862e399723a66c34212c0cceede89b89c8e7", kill_on_drop: false }`
[INFO] [stdout] a6561e572b22e6bbcdcdeae7bc21862e399723a66c34212c0cceede89b89c8e7
