[INFO] fetching crate sxd-xpath 0.4.2...
[INFO] testing sxd-xpath-0.4.2 against 1.54.0 for beta-1.55-1
[INFO] extracting crate sxd-xpath 0.4.2 into /workspace/builds/worker-26/source
[INFO] validating manifest of crates.io crate sxd-xpath 0.4.2 on toolchain 1.54.0
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.54.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate sxd-xpath 0.4.2
[INFO] finished tweaking crates.io crate sxd-xpath 0.4.2
[INFO] tweaked toml for crates.io crate sxd-xpath 0.4.2 written to /workspace/builds/worker-26/source/Cargo.toml
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.54.0" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.54.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-26/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-26/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:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+1.54.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 03d8a52a4127d14c7157f305b00aabe29595720c11a40ae4eaeba9115b6da4d1
[INFO] running `Command { std: "docker" "start" "-a" "03d8a52a4127d14c7157f305b00aabe29595720c11a40ae4eaeba9115b6da4d1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "03d8a52a4127d14c7157f305b00aabe29595720c11a40ae4eaeba9115b6da4d1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "03d8a52a4127d14c7157f305b00aabe29595720c11a40ae4eaeba9115b6da4d1", kill_on_drop: false }`
[INFO] [stdout] 03d8a52a4127d14c7157f305b00aabe29595720c11a40ae4eaeba9115b6da4d1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-26/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-26/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" "ghcr.io/rust-lang/crates-build-env/linux@sha256:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+1.54.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c752c6f5bf5bef1dae2fc89243c39c1b488a997954ca18f9d1d8282b771a3e39
[INFO] running `Command { std: "docker" "start" "-a" "c752c6f5bf5bef1dae2fc89243c39c1b488a997954ca18f9d1d8282b771a3e39", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]    Compiling peresil v0.3.0
[INFO] [stderr]    Compiling typed-arena v1.7.0
[INFO] [stderr]    Compiling sxd-document v0.3.2
[INFO] [stderr]    Compiling sxd-xpath v0.4.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]   --> src/nodeset.rs:99:10
[INFO] [stdout]    |
[INFO] [stdout] 99 |         };
[INFO] [stdout]    |          ^ help: remove this semicolon
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(redundant_semicolons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/nodeset.rs:203:10
[INFO] [stdout]     |
[INFO] [stdout] 203 |         };
[INFO] [stdout]     |          ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/context.rs:14:42
[INFO] [stdout]    |
[INFO] [stdout] 14 | type Functions = HashMap<OwnedQName, Box<function::Function + 'static>>;
[INFO] [stdout]    |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn function::Function + 'static`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/context.rs:179:64
[INFO] [stdout]     |
[INFO] [stdout] 179 |     pub fn function_for_name(&self, name: QName) -> Option<&'c function::Function> {
[INFO] [stdout]     |                                                                ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn function::Function`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/axis.rs:22:41
[INFO] [stdout]    |
[INFO] [stdout] 22 | ...                   node_test: &NodeTest) -> OrderedNodes<'d>;
[INFO] [stdout]    |                                   ^^^^^^^^ help: use `dyn`: `dyn NodeTest`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/axis.rs:49:20
[INFO] [stdout]    |
[INFO] [stdout] 49 |     node_test: &'c NodeTest,
[INFO] [stdout]    |                    ^^^^^^^^ help: use `dyn`: `dyn NodeTest`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/axis.rs:54:69
[INFO] [stdout]    |
[INFO] [stdout] 54 |     fn new(context: &'c context::Evaluation<'c, 'd>, node_test: &'c NodeTest) -> Self {
[INFO] [stdout]    |                                                                     ^^^^^^^^ help: use `dyn`: `dyn NodeTest`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/axis.rs:71:41
[INFO] [stdout]    |
[INFO] [stdout] 71 | ...                   node_test: &NodeTest) -> OrderedNodes<'d>
[INFO] [stdout]    |                                   ^^^^^^^^ help: use `dyn`: `dyn NodeTest`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/expression.rs:73:30
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub type SubExpression = Box<Expression + 'static>;
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Expression + 'static`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/expression.rs:95:20
[INFO] [stdout]    |
[INFO] [stdout] 95 |         let left = try!(self.left.evaluate(context)).boolean();
[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/expression.rs:96:25
[INFO] [stdout]    |
[INFO] [stdout] 96 |         let v = left && try!(self.right.evaluate(context)).boolean();
[INFO] [stdout]    |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expression.rs:121:24
[INFO] [stdout]     |
[INFO] [stdout] 121 |         let left_val = try!(self.left.evaluate(context));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expression.rs:122:25
[INFO] [stdout]     |
[INFO] [stdout] 122 |         let right_val = try!(self.right.evaluate(context));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expression.rs:200:28
[INFO] [stdout]     |
[INFO] [stdout] 200 |                 let args = try!(self.arguments.iter().map(|arg| arg.evaluate(context)).collect());
[INFO] [stdout]     |                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expression.rs:259:20
[INFO] [stdout]     |
[INFO] [stdout] 259 |         let left = try!(self.left.evaluate(context));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expression.rs:260:21
[INFO] [stdout]     |
[INFO] [stdout] 260 |         let right = try!(self.right.evaluate(context));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expression.rs:293:20
[INFO] [stdout]     |
[INFO] [stdout] 293 |         let left = try!(self.left.evaluate(context)).boolean();
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expression.rs:294:25
[INFO] [stdout]     |
[INFO] [stdout] 294 |         let v = left || try!(self.right.evaluate(context)).boolean();
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expression.rs:313:22
[INFO] [stdout]     |
[INFO] [stdout] 313 |         let result = try!(self.start_point.evaluate(context));
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expression.rs:314:26
[INFO] [stdout]     |
[INFO] [stdout] 314 |         let mut result = try!(value_into_nodeset(result));
[INFO] [stdout]     |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expression.rs:317:22
[INFO] [stdout]     |
[INFO] [stdout] 317 |             result = try!(step.evaluate(context, result));
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expression.rs:381:24
[INFO] [stdout]     |
[INFO] [stdout] 381 |         let left_val = try!(self.left.evaluate(context));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expression.rs:382:25
[INFO] [stdout]     |
[INFO] [stdout] 382 |         let right_val = try!(self.right.evaluate(context));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expression.rs:423:21
[INFO] [stdout]     |
[INFO] [stdout] 423 |         let value = try!(self.expression.evaluate(context));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/expression.rs:435:25
[INFO] [stdout]     |
[INFO] [stdout] 435 | pub type StepTest = Box<NodeTest + 'static>;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn NodeTest + 'static`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expression.rs:468:25
[INFO] [stdout]     |
[INFO] [stdout] 468 |                 nodes = try!(predicate.select(context, nodes));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expression.rs:490:30
[INFO] [stdout]     |
[INFO] [stdout] 490 |         let mut left_nodes = try!(as_nodes(&self.left));
[INFO] [stdout]     |                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expression.rs:491:27
[INFO] [stdout]     |
[INFO] [stdout] 491 |         let right_nodes = try!(as_nodes(&self.right));
[INFO] [stdout]     |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:199:9
[INFO] [stdout]     |
[INFO] [stdout] 199 |         try!(args.exactly(0));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:212:9
[INFO] [stdout]     |
[INFO] [stdout] 212 |         try!(args.exactly(0));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:225:9
[INFO] [stdout]     |
[INFO] [stdout] 225 |         try!(args.exactly(1));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:226:19
[INFO] [stdout]     |
[INFO] [stdout] 226 |         let arg = try!(args.pop_nodeset());
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:239:9
[INFO] [stdout]     |
[INFO] [stdout] 239 |         try!(args.at_most(1));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:240:19
[INFO] [stdout]     |
[INFO] [stdout] 240 |         let arg = try!(args.pop_nodeset_or_context_node(context));
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:258:9
[INFO] [stdout]     |
[INFO] [stdout] 258 |         try!(args.at_most(1));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:259:19
[INFO] [stdout]     |
[INFO] [stdout] 259 |         let arg = try!(args.pop_nodeset_or_context_node(context));
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:277:9
[INFO] [stdout]     |
[INFO] [stdout] 277 |         try!(args.at_most(1));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:278:19
[INFO] [stdout]     |
[INFO] [stdout] 278 |         let arg = try!(args.pop_nodeset_or_context_node(context));
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:295:9
[INFO] [stdout]     |
[INFO] [stdout] 295 |         try!(args.at_most(1));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:309:9
[INFO] [stdout]     |
[INFO] [stdout] 309 |         try!(args.at_least(2));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:323:9
[INFO] [stdout]     |
[INFO] [stdout] 323 |         try!(args.exactly(2));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/function.rs:331:64
[INFO] [stdout]     |
[INFO] [stdout] 331 |     fn imp(a: &str, b: &str) -> bool { str::starts_with(a, b) };
[INFO] [stdout]     |                                                                ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/function.rs:335:61
[INFO] [stdout]     |
[INFO] [stdout] 335 |     fn imp(a: &str, b: &str) -> bool { str::contains(a, b) };
[INFO] [stdout]     |                                                             ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:347:9
[INFO] [stdout]     |
[INFO] [stdout] 347 |         try!(args.exactly(2));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:382:9
[INFO] [stdout]     |
[INFO] [stdout] 382 |         try!(args.at_least(2));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:383:9
[INFO] [stdout]     |
[INFO] [stdout] 383 |         try!(args.at_most(3));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:386:23
[INFO] [stdout]     |
[INFO] [stdout] 386 |             let len = try!(args.pop_number());
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:392:21
[INFO] [stdout]     |
[INFO] [stdout] 392 |         let start = try!(args.pop_number());
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:394:17
[INFO] [stdout]     |
[INFO] [stdout] 394 |         let s = try!(args.pop_string());
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:418:9
[INFO] [stdout]     |
[INFO] [stdout] 418 |         try!(args.at_most(1));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:432:9
[INFO] [stdout]     |
[INFO] [stdout] 432 |         try!(args.at_most(1));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:449:9
[INFO] [stdout]     |
[INFO] [stdout] 449 |         try!(args.exactly(3));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:451:18
[INFO] [stdout]     |
[INFO] [stdout] 451 |         let to = try!(args.pop_string());
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:452:20
[INFO] [stdout]     |
[INFO] [stdout] 452 |         let from = try!(args.pop_string());
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:453:17
[INFO] [stdout]     |
[INFO] [stdout] 453 |         let s = try!(args.pop_string());
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:479:9
[INFO] [stdout]     |
[INFO] [stdout] 479 |         try!(args.exactly(1));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:492:9
[INFO] [stdout]     |
[INFO] [stdout] 492 |         try!(args.exactly(1));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:493:19
[INFO] [stdout]     |
[INFO] [stdout] 493 |         let arg = try!(args.pop_boolean());
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:506:9
[INFO] [stdout]     |
[INFO] [stdout] 506 |         try!(args.exactly(0));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:522:9
[INFO] [stdout]     |
[INFO] [stdout] 522 |         try!(args.at_most(1));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:536:9
[INFO] [stdout]     |
[INFO] [stdout] 536 |         try!(args.exactly(1));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:537:19
[INFO] [stdout]     |
[INFO] [stdout] 537 |         let arg = try!(args.pop_nodeset());
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:551:9
[INFO] [stdout]     |
[INFO] [stdout] 551 |         try!(args.exactly(1));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:552:19
[INFO] [stdout]     |
[INFO] [stdout] 552 |         let arg = try!(args.pop_number());
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/node_test.rs:20:28
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub type SubNodeTest = Box<NodeTest + 'static>;
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn NodeTest + 'static`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:140:20
[INFO] [stdout]     |
[INFO] [stdout] 140 |         let left = try!(child_parse(source));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:152:21
[INFO] [stdout]     |
[INFO] [stdout] 152 |                     try!(source.consume(&rule.token));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:154:33
[INFO] [stdout]     |
[INFO] [stdout] 154 |                     let right = try!(child_parse(source));
[INFO] [stdout]     |                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parser.rs:175:20
[INFO] [stdout]     |
[INFO] [stdout] 175 | type Rule<'a, I> = Fn(TokenSource<I>) -> ParseResult + 'a;
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(TokenSource<I>) -> ParseResult + 'a`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:182:20
[INFO] [stdout]     |
[INFO] [stdout] 182 |         let expr = try!((*child_parse)(source));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:258:13
[INFO] [stdout]     |
[INFO] [stdout] 258 |             try!(source.consume(&Token::LeftParen));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:259:26
[INFO] [stdout]     |
[INFO] [stdout] 259 |             let result = try!(self.parse_expression(source));
[INFO] [stdout]     |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:260:13
[INFO] [stdout]     |
[INFO] [stdout] 260 |             try!(source.consume(&Token::RightParen));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:305:13
[INFO] [stdout]     |
[INFO] [stdout] 305 |             try!(source.consume(&Token::Comma));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:307:19
[INFO] [stdout]     |
[INFO] [stdout] 307 |             match try!(self.parse_expression(source)) {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:322:15
[INFO] [stdout]     |
[INFO] [stdout] 322 |         match try!(self.parse_expression(source)) {
[INFO] [stdout]     |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:336:13
[INFO] [stdout]     |
[INFO] [stdout] 336 |             try!(source.consume(&Token::LeftParen));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:337:29
[INFO] [stdout]     |
[INFO] [stdout] 337 |             let arguments = try!(self.parse_function_args(source));
[INFO] [stdout]     |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:338:13
[INFO] [stdout]     |
[INFO] [stdout] 338 |             try!(source.consume(&Token::RightParen));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:364:13
[INFO] [stdout]     |
[INFO] [stdout] 364 |             try!(source.consume(&Token::LeftBracket));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:366:19
[INFO] [stdout]     |
[INFO] [stdout] 366 |             match try!(self.parse_expression(source)) {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:368:21
[INFO] [stdout]     |
[INFO] [stdout] 368 |                     try!(source.consume(&Token::RightBracket));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:383:37
[INFO] [stdout]     |
[INFO] [stdout] 383 |         while let Some(predicate) = try!(self.parse_predicate_expression(source)) {
[INFO] [stdout]     |                                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:393:20
[INFO] [stdout]     |
[INFO] [stdout] 393 |         let axis = try!(self.parse_axis(source));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:395:31
[INFO] [stdout]     |
[INFO] [stdout] 395 |         let node_test = match try!(self.parse_node_test(source)) {
[INFO] [stdout]     |                               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:397:21
[INFO] [stdout]     |
[INFO] [stdout] 397 |             None => try!(self.default_node_test(source, axis)),
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:405:26
[INFO] [stdout]     |
[INFO] [stdout] 405 |         let predicates = try!(self.parse_predicates(source));
[INFO] [stdout]     |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:415:15
[INFO] [stdout]     |
[INFO] [stdout] 415 |         match try!(self.parse_step(source)) {
[INFO] [stdout]     |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:420:21
[INFO] [stdout]     |
[INFO] [stdout] 420 |                     try!(source.consume(&Token::Slash));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:422:27
[INFO] [stdout]     |
[INFO] [stdout] 422 |                     match try!(self.parse_step(source)) {
[INFO] [stdout]     |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:445:13
[INFO] [stdout]     |
[INFO] [stdout] 445 |             try!(source.consume(&Token::Slash));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:448:19
[INFO] [stdout]     |
[INFO] [stdout] 448 |             match try!(self.parse_relative_location_path_raw(source, start_point)) {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:471:15
[INFO] [stdout]     |
[INFO] [stdout] 471 |         match try!(self.parse_primary_expression(source)) {
[INFO] [stdout]     |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:473:34
[INFO] [stdout]     |
[INFO] [stdout] 473 |                 let predicates = try!(self.parse_predicates(source));
[INFO] [stdout]     |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:486:20
[INFO] [stdout]     |
[INFO] [stdout] 486 |         let expr = try!(self.parse_location_path(source));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:491:15
[INFO] [stdout]     |
[INFO] [stdout] 491 |         match try!(self.parse_filter_expression(source)) {
[INFO] [stdout]     |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:494:21
[INFO] [stdout]     |
[INFO] [stdout] 494 |                     try!(source.consume(&Token::Slash));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:496:27
[INFO] [stdout]     |
[INFO] [stdout] 496 |                     match try!(self.parse_relative_location_path_raw(source, expr)) {
[INFO] [stdout]     |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:521:20
[INFO] [stdout]     |
[INFO] [stdout] 521 |         let expr = try!(self.parse_union_expression(source));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:527:13
[INFO] [stdout]     |
[INFO] [stdout] 527 |             try!(source.consume(&Token::MinusSign));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:529:24
[INFO] [stdout]     |
[INFO] [stdout] 529 |             let expr = try!(self.parse_unary_expression(source));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:631:20
[INFO] [stdout]     |
[INFO] [stdout] 631 |         let expr = try!(self.parse_or_expression(&mut source));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/tokenizer.rs:372:21
[INFO] [stdout]     |
[INFO] [stdout] 372 |         let token = try!(self.raw_next_token());
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:339:22
[INFO] [stdout]     |
[INFO] [stdout] 339 | pub struct XPath(Box<expression::Expression + 'static>);
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn expression::Expression + 'static`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:414:40
[INFO] [stdout]     |
[INFO] [stdout] 414 |               fn cause(&self) -> Option<&std::error::Error> {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn std::error::Error`
[INFO] [stdout] ...
[INFO] [stdout] 433 | / opaque_error!(
[INFO] [stdout] 434 | |     /// Errors that may occur when parsing an XPath
[INFO] [stdout] 435 | |     ParserError(parser::Error)
[INFO] [stdout] 436 | | );
[INFO] [stdout]     | |__- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout]     = note: this warning originates in the macro `opaque_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:414:40
[INFO] [stdout]     |
[INFO] [stdout] 414 |               fn cause(&self) -> Option<&std::error::Error> {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn std::error::Error`
[INFO] [stdout] ...
[INFO] [stdout] 438 | / opaque_error!(
[INFO] [stdout] 439 | |     /// Errors that may occur when executing an XPath
[INFO] [stdout] 440 | |     ExecutionError(expression::Error)
[INFO] [stdout] 441 | | );
[INFO] [stdout]     | |__- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout]     = note: this warning originates in the macro `opaque_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/lib.rs:411:24
[INFO] [stdout]     |
[INFO] [stdout] 411 |                   self.0.description()
[INFO] [stdout]     |                          ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 433 | / opaque_error!(
[INFO] [stdout] 434 | |     /// Errors that may occur when parsing an XPath
[INFO] [stdout] 435 | |     ParserError(parser::Error)
[INFO] [stdout] 436 | | );
[INFO] [stdout]     | |__- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `opaque_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/lib.rs:411:24
[INFO] [stdout]     |
[INFO] [stdout] 411 |                   self.0.description()
[INFO] [stdout]     |                          ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 438 | / opaque_error!(
[INFO] [stdout] 439 | |     /// Errors that may occur when executing an XPath
[INFO] [stdout] 440 | |     ExecutionError(expression::Error)
[INFO] [stdout] 441 | | );
[INFO] [stdout]     | |__- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `opaque_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]    --> src/lib.rs:415:24
[INFO] [stdout]     |
[INFO] [stdout] 415 |                   self.0.cause()
[INFO] [stdout]     |                          ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 433 | / opaque_error!(
[INFO] [stdout] 434 | |     /// Errors that may occur when parsing an XPath
[INFO] [stdout] 435 | |     ParserError(parser::Error)
[INFO] [stdout] 436 | | );
[INFO] [stdout]     | |__- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `opaque_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]    --> src/lib.rs:415:24
[INFO] [stdout]     |
[INFO] [stdout] 415 |                   self.0.cause()
[INFO] [stdout]     |                          ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 438 | / opaque_error!(
[INFO] [stdout] 439 | |     /// Errors that may occur when executing an XPath
[INFO] [stdout] 440 | |     ExecutionError(expression::Error)
[INFO] [stdout] 441 | | );
[INFO] [stdout]     | |__- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `opaque_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 110 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 6.18s
[INFO] running `Command { std: "docker" "inspect" "c752c6f5bf5bef1dae2fc89243c39c1b488a997954ca18f9d1d8282b771a3e39", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c752c6f5bf5bef1dae2fc89243c39c1b488a997954ca18f9d1d8282b771a3e39", kill_on_drop: false }`
[INFO] [stdout] c752c6f5bf5bef1dae2fc89243c39c1b488a997954ca18f9d1d8282b771a3e39
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-26/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-26/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" "ghcr.io/rust-lang/crates-build-env/linux@sha256:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+1.54.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4a7b8b0f99c9970108d8b047031d0f75977800e4978d02ba5d6049d6e13248f6
[INFO] running `Command { std: "docker" "start" "-a" "4a7b8b0f99c9970108d8b047031d0f75977800e4978d02ba5d6049d6e13248f6", kill_on_drop: false }`
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]   --> src/nodeset.rs:99:10
[INFO] [stdout]    |
[INFO] [stdout] 99 |         };
[INFO] [stdout]    |          ^ help: remove this semicolon
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(redundant_semicolons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/nodeset.rs:203:10
[INFO] [stdout]     |
[INFO] [stdout] 203 |         };
[INFO] [stdout]     |          ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/context.rs:14:42
[INFO] [stdout]    |
[INFO] [stdout] 14 | type Functions = HashMap<OwnedQName, Box<function::Function + 'static>>;
[INFO] [stdout]    |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn function::Function + 'static`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/context.rs:179:64
[INFO] [stdout]     |
[INFO] [stdout] 179 |     pub fn function_for_name(&self, name: QName) -> Option<&'c function::Function> {
[INFO] [stdout]     |                                                                ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn function::Function`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/axis.rs:22:41
[INFO] [stdout]    |
[INFO] [stdout] 22 | ...                   node_test: &NodeTest) -> OrderedNodes<'d>;
[INFO] [stdout]    |                                   ^^^^^^^^ help: use `dyn`: `dyn NodeTest`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/axis.rs:49:20
[INFO] [stdout]    |
[INFO] [stdout] 49 |     node_test: &'c NodeTest,
[INFO] [stdout]    |                    ^^^^^^^^ help: use `dyn`: `dyn NodeTest`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/axis.rs:54:69
[INFO] [stdout]    |
[INFO] [stdout] 54 |     fn new(context: &'c context::Evaluation<'c, 'd>, node_test: &'c NodeTest) -> Self {
[INFO] [stdout]    |                                                                     ^^^^^^^^ help: use `dyn`: `dyn NodeTest`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/axis.rs:71:41
[INFO] [stdout]    |
[INFO] [stdout] 71 | ...                   node_test: &NodeTest) -> OrderedNodes<'d>
[INFO] [stdout]    |                                   ^^^^^^^^ help: use `dyn`: `dyn NodeTest`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/expression.rs:73:30
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub type SubExpression = Box<Expression + 'static>;
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Expression + 'static`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/expression.rs:95:20
[INFO] [stdout]    |
[INFO] [stdout] 95 |         let left = try!(self.left.evaluate(context)).boolean();
[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/expression.rs:96:25
[INFO] [stdout]    |
[INFO] [stdout] 96 |         let v = left && try!(self.right.evaluate(context)).boolean();
[INFO] [stdout]    |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expression.rs:121:24
[INFO] [stdout]     |
[INFO] [stdout] 121 |         let left_val = try!(self.left.evaluate(context));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expression.rs:122:25
[INFO] [stdout]     |
[INFO] [stdout] 122 |         let right_val = try!(self.right.evaluate(context));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expression.rs:200:28
[INFO] [stdout]     |
[INFO] [stdout] 200 |                 let args = try!(self.arguments.iter().map(|arg| arg.evaluate(context)).collect());
[INFO] [stdout]     |                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expression.rs:259:20
[INFO] [stdout]     |
[INFO] [stdout] 259 |         let left = try!(self.left.evaluate(context));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expression.rs:260:21
[INFO] [stdout]     |
[INFO] [stdout] 260 |         let right = try!(self.right.evaluate(context));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expression.rs:293:20
[INFO] [stdout]     |
[INFO] [stdout] 293 |         let left = try!(self.left.evaluate(context)).boolean();
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expression.rs:294:25
[INFO] [stdout]     |
[INFO] [stdout] 294 |         let v = left || try!(self.right.evaluate(context)).boolean();
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expression.rs:313:22
[INFO] [stdout]     |
[INFO] [stdout] 313 |         let result = try!(self.start_point.evaluate(context));
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expression.rs:314:26
[INFO] [stdout]     |
[INFO] [stdout] 314 |         let mut result = try!(value_into_nodeset(result));
[INFO] [stdout]     |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expression.rs:317:22
[INFO] [stdout]     |
[INFO] [stdout] 317 |             result = try!(step.evaluate(context, result));
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expression.rs:381:24
[INFO] [stdout]     |
[INFO] [stdout] 381 |         let left_val = try!(self.left.evaluate(context));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expression.rs:382:25
[INFO] [stdout]     |
[INFO] [stdout] 382 |         let right_val = try!(self.right.evaluate(context));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expression.rs:423:21
[INFO] [stdout]     |
[INFO] [stdout] 423 |         let value = try!(self.expression.evaluate(context));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/expression.rs:435:25
[INFO] [stdout]     |
[INFO] [stdout] 435 | pub type StepTest = Box<NodeTest + 'static>;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn NodeTest + 'static`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expression.rs:468:25
[INFO] [stdout]     |
[INFO] [stdout] 468 |                 nodes = try!(predicate.select(context, nodes));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expression.rs:490:30
[INFO] [stdout]     |
[INFO] [stdout] 490 |         let mut left_nodes = try!(as_nodes(&self.left));
[INFO] [stdout]     |                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expression.rs:491:27
[INFO] [stdout]     |
[INFO] [stdout] 491 |         let right_nodes = try!(as_nodes(&self.right));
[INFO] [stdout]     |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:199:9
[INFO] [stdout]     |
[INFO] [stdout] 199 |         try!(args.exactly(0));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:212:9
[INFO] [stdout]     |
[INFO] [stdout] 212 |         try!(args.exactly(0));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:225:9
[INFO] [stdout]     |
[INFO] [stdout] 225 |         try!(args.exactly(1));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:226:19
[INFO] [stdout]     |
[INFO] [stdout] 226 |         let arg = try!(args.pop_nodeset());
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:239:9
[INFO] [stdout]     |
[INFO] [stdout] 239 |         try!(args.at_most(1));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:240:19
[INFO] [stdout]     |
[INFO] [stdout] 240 |         let arg = try!(args.pop_nodeset_or_context_node(context));
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:258:9
[INFO] [stdout]     |
[INFO] [stdout] 258 |         try!(args.at_most(1));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:259:19
[INFO] [stdout]     |
[INFO] [stdout] 259 |         let arg = try!(args.pop_nodeset_or_context_node(context));
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:277:9
[INFO] [stdout]     |
[INFO] [stdout] 277 |         try!(args.at_most(1));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:278:19
[INFO] [stdout]     |
[INFO] [stdout] 278 |         let arg = try!(args.pop_nodeset_or_context_node(context));
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:295:9
[INFO] [stdout]     |
[INFO] [stdout] 295 |         try!(args.at_most(1));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:309:9
[INFO] [stdout]     |
[INFO] [stdout] 309 |         try!(args.at_least(2));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:323:9
[INFO] [stdout]     |
[INFO] [stdout] 323 |         try!(args.exactly(2));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/function.rs:331:64
[INFO] [stdout]     |
[INFO] [stdout] 331 |     fn imp(a: &str, b: &str) -> bool { str::starts_with(a, b) };
[INFO] [stdout]     |                                                                ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/function.rs:335:61
[INFO] [stdout]     |
[INFO] [stdout] 335 |     fn imp(a: &str, b: &str) -> bool { str::contains(a, b) };
[INFO] [stdout]     |                                                             ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:347:9
[INFO] [stdout]     |
[INFO] [stdout] 347 |         try!(args.exactly(2));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:382:9
[INFO] [stdout]     |
[INFO] [stdout] 382 |         try!(args.at_least(2));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:383:9
[INFO] [stdout]     |
[INFO] [stdout] 383 |         try!(args.at_most(3));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:386:23
[INFO] [stdout]     |
[INFO] [stdout] 386 |             let len = try!(args.pop_number());
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:392:21
[INFO] [stdout]     |
[INFO] [stdout] 392 |         let start = try!(args.pop_number());
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:394:17
[INFO] [stdout]     |
[INFO] [stdout] 394 |         let s = try!(args.pop_string());
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:418:9
[INFO] [stdout]     |
[INFO] [stdout] 418 |         try!(args.at_most(1));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:432:9
[INFO] [stdout]     |
[INFO] [stdout] 432 |         try!(args.at_most(1));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:449:9
[INFO] [stdout]     |
[INFO] [stdout] 449 |         try!(args.exactly(3));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:451:18
[INFO] [stdout]     |
[INFO] [stdout] 451 |         let to = try!(args.pop_string());
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:452:20
[INFO] [stdout]     |
[INFO] [stdout] 452 |         let from = try!(args.pop_string());
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:453:17
[INFO] [stdout]     |
[INFO] [stdout] 453 |         let s = try!(args.pop_string());
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:479:9
[INFO] [stdout]     |
[INFO] [stdout] 479 |         try!(args.exactly(1));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:492:9
[INFO] [stdout]     |
[INFO] [stdout] 492 |         try!(args.exactly(1));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:493:19
[INFO] [stdout]     |
[INFO] [stdout] 493 |         let arg = try!(args.pop_boolean());
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:506:9
[INFO] [stdout]     |
[INFO] [stdout] 506 |         try!(args.exactly(0));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:522:9
[INFO] [stdout]     |
[INFO] [stdout] 522 |         try!(args.at_most(1));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:536:9
[INFO] [stdout]     |
[INFO] [stdout] 536 |         try!(args.exactly(1));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:537:19
[INFO] [stdout]     |
[INFO] [stdout] 537 |         let arg = try!(args.pop_nodeset());
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:551:9
[INFO] [stdout]     |
[INFO] [stdout] 551 |         try!(args.exactly(1));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:552:19
[INFO] [stdout]     |
[INFO] [stdout] 552 |         let arg = try!(args.pop_number());
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/node_test.rs:20:28
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub type SubNodeTest = Box<NodeTest + 'static>;
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn NodeTest + 'static`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:140:20
[INFO] [stdout]     |
[INFO] [stdout] 140 |         let left = try!(child_parse(source));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:152:21
[INFO] [stdout]     |
[INFO] [stdout] 152 |                     try!(source.consume(&rule.token));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:154:33
[INFO] [stdout]     |
[INFO] [stdout] 154 |                     let right = try!(child_parse(source));
[INFO] [stdout]     |                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parser.rs:175:20
[INFO] [stdout]     |
[INFO] [stdout] 175 | type Rule<'a, I> = Fn(TokenSource<I>) -> ParseResult + 'a;
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(TokenSource<I>) -> ParseResult + 'a`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:182:20
[INFO] [stdout]     |
[INFO] [stdout] 182 |         let expr = try!((*child_parse)(source));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:258:13
[INFO] [stdout]     |
[INFO] [stdout] 258 |             try!(source.consume(&Token::LeftParen));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:259:26
[INFO] [stdout]     |
[INFO] [stdout] 259 |             let result = try!(self.parse_expression(source));
[INFO] [stdout]     |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:260:13
[INFO] [stdout]     |
[INFO] [stdout] 260 |             try!(source.consume(&Token::RightParen));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:305:13
[INFO] [stdout]     |
[INFO] [stdout] 305 |             try!(source.consume(&Token::Comma));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:307:19
[INFO] [stdout]     |
[INFO] [stdout] 307 |             match try!(self.parse_expression(source)) {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:322:15
[INFO] [stdout]     |
[INFO] [stdout] 322 |         match try!(self.parse_expression(source)) {
[INFO] [stdout]     |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:336:13
[INFO] [stdout]     |
[INFO] [stdout] 336 |             try!(source.consume(&Token::LeftParen));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:337:29
[INFO] [stdout]     |
[INFO] [stdout] 337 |             let arguments = try!(self.parse_function_args(source));
[INFO] [stdout]     |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:338:13
[INFO] [stdout]     |
[INFO] [stdout] 338 |             try!(source.consume(&Token::RightParen));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:364:13
[INFO] [stdout]     |
[INFO] [stdout] 364 |             try!(source.consume(&Token::LeftBracket));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:366:19
[INFO] [stdout]     |
[INFO] [stdout] 366 |             match try!(self.parse_expression(source)) {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:368:21
[INFO] [stdout]     |
[INFO] [stdout] 368 |                     try!(source.consume(&Token::RightBracket));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:383:37
[INFO] [stdout]     |
[INFO] [stdout] 383 |         while let Some(predicate) = try!(self.parse_predicate_expression(source)) {
[INFO] [stdout]     |                                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:393:20
[INFO] [stdout]     |
[INFO] [stdout] 393 |         let axis = try!(self.parse_axis(source));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:395:31
[INFO] [stdout]     |
[INFO] [stdout] 395 |         let node_test = match try!(self.parse_node_test(source)) {
[INFO] [stdout]     |                               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:397:21
[INFO] [stdout]     |
[INFO] [stdout] 397 |             None => try!(self.default_node_test(source, axis)),
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:405:26
[INFO] [stdout]     |
[INFO] [stdout] 405 |         let predicates = try!(self.parse_predicates(source));
[INFO] [stdout]     |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:415:15
[INFO] [stdout]     |
[INFO] [stdout] 415 |         match try!(self.parse_step(source)) {
[INFO] [stdout]     |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:420:21
[INFO] [stdout]     |
[INFO] [stdout] 420 |                     try!(source.consume(&Token::Slash));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:422:27
[INFO] [stdout]     |
[INFO] [stdout] 422 |                     match try!(self.parse_step(source)) {
[INFO] [stdout]     |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:445:13
[INFO] [stdout]     |
[INFO] [stdout] 445 |             try!(source.consume(&Token::Slash));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:448:19
[INFO] [stdout]     |
[INFO] [stdout] 448 |             match try!(self.parse_relative_location_path_raw(source, start_point)) {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:471:15
[INFO] [stdout]     |
[INFO] [stdout] 471 |         match try!(self.parse_primary_expression(source)) {
[INFO] [stdout]     |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:473:34
[INFO] [stdout]     |
[INFO] [stdout] 473 |                 let predicates = try!(self.parse_predicates(source));
[INFO] [stdout]     |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:486:20
[INFO] [stdout]     |
[INFO] [stdout] 486 |         let expr = try!(self.parse_location_path(source));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:491:15
[INFO] [stdout]     |
[INFO] [stdout] 491 |         match try!(self.parse_filter_expression(source)) {
[INFO] [stdout]     |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:494:21
[INFO] [stdout]     |
[INFO] [stdout] 494 |                     try!(source.consume(&Token::Slash));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:496:27
[INFO] [stdout]     |
[INFO] [stdout] 496 |                     match try!(self.parse_relative_location_path_raw(source, expr)) {
[INFO] [stdout]     |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:521:20
[INFO] [stdout]     |
[INFO] [stdout] 521 |         let expr = try!(self.parse_union_expression(source));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:527:13
[INFO] [stdout]     |
[INFO] [stdout] 527 |             try!(source.consume(&Token::MinusSign));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:529:24
[INFO] [stdout]     |
[INFO] [stdout] 529 |             let expr = try!(self.parse_unary_expression(source));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:631:20
[INFO] [stdout]     |
[INFO] [stdout] 631 |         let expr = try!(self.parse_or_expression(&mut source));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/tokenizer.rs:372:21
[INFO] [stdout]     |
[INFO] [stdout] 372 |         let token = try!(self.raw_next_token());
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:339:22
[INFO] [stdout]     |
[INFO] [stdout] 339 | pub struct XPath(Box<expression::Expression + 'static>);
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn expression::Expression + 'static`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:414:40
[INFO] [stdout]     |
[INFO] [stdout] 414 |               fn cause(&self) -> Option<&std::error::Error> {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn std::error::Error`
[INFO] [stdout] ...
[INFO] [stdout] 433 | / opaque_error!(
[INFO] [stdout] 434 | |     /// Errors that may occur when parsing an XPath
[INFO] [stdout] 435 | |     ParserError(parser::Error)
[INFO] [stdout] 436 | | );
[INFO] [stdout]     | |__- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout]     = note: this warning originates in the macro `opaque_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:414:40
[INFO] [stdout]     |
[INFO] [stdout] 414 |               fn cause(&self) -> Option<&std::error::Error> {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn std::error::Error`
[INFO] [stdout] ...
[INFO] [stdout] 438 | / opaque_error!(
[INFO] [stdout] 439 | |     /// Errors that may occur when executing an XPath
[INFO] [stdout] 440 | |     ExecutionError(expression::Error)
[INFO] [stdout] 441 | | );
[INFO] [stdout]     | |__- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout]     = note: this warning originates in the macro `opaque_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling sxd-xpath v0.4.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/lib.rs:411:24
[INFO] [stdout]     |
[INFO] [stdout] 411 |                   self.0.description()
[INFO] [stdout]     |                          ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 433 | / opaque_error!(
[INFO] [stdout] 434 | |     /// Errors that may occur when parsing an XPath
[INFO] [stdout] 435 | |     ParserError(parser::Error)
[INFO] [stdout] 436 | | );
[INFO] [stdout]     | |__- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `opaque_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/lib.rs:411:24
[INFO] [stdout]     |
[INFO] [stdout] 411 |                   self.0.description()
[INFO] [stdout]     |                          ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 438 | / opaque_error!(
[INFO] [stdout] 439 | |     /// Errors that may occur when executing an XPath
[INFO] [stdout] 440 | |     ExecutionError(expression::Error)
[INFO] [stdout] 441 | | );
[INFO] [stdout]     | |__- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `opaque_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]    --> src/lib.rs:415:24
[INFO] [stdout]     |
[INFO] [stdout] 415 |                   self.0.cause()
[INFO] [stdout]     |                          ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 433 | / opaque_error!(
[INFO] [stdout] 434 | |     /// Errors that may occur when parsing an XPath
[INFO] [stdout] 435 | |     ParserError(parser::Error)
[INFO] [stdout] 436 | | );
[INFO] [stdout]     | |__- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `opaque_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]    --> src/lib.rs:415:24
[INFO] [stdout]     |
[INFO] [stdout] 415 |                   self.0.cause()
[INFO] [stdout]     |                          ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 438 | / opaque_error!(
[INFO] [stdout] 439 | |     /// Errors that may occur when executing an XPath
[INFO] [stdout] 440 | |     ExecutionError(expression::Error)
[INFO] [stdout] 441 | | );
[INFO] [stdout]     | |__- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `opaque_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 110 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]   --> src/nodeset.rs:99:10
[INFO] [stdout]    |
[INFO] [stdout] 99 |         };
[INFO] [stdout]    |          ^ help: remove this semicolon
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(redundant_semicolons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/nodeset.rs:203:10
[INFO] [stdout]     |
[INFO] [stdout] 203 |         };
[INFO] [stdout]     |          ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/context.rs:14:42
[INFO] [stdout]    |
[INFO] [stdout] 14 | type Functions = HashMap<OwnedQName, Box<function::Function + 'static>>;
[INFO] [stdout]    |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn function::Function + 'static`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/context.rs:179:64
[INFO] [stdout]     |
[INFO] [stdout] 179 |     pub fn function_for_name(&self, name: QName) -> Option<&'c function::Function> {
[INFO] [stdout]     |                                                                ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn function::Function`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/axis.rs:22:41
[INFO] [stdout]    |
[INFO] [stdout] 22 | ...                   node_test: &NodeTest) -> OrderedNodes<'d>;
[INFO] [stdout]    |                                   ^^^^^^^^ help: use `dyn`: `dyn NodeTest`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/axis.rs:49:20
[INFO] [stdout]    |
[INFO] [stdout] 49 |     node_test: &'c NodeTest,
[INFO] [stdout]    |                    ^^^^^^^^ help: use `dyn`: `dyn NodeTest`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/axis.rs:54:69
[INFO] [stdout]    |
[INFO] [stdout] 54 |     fn new(context: &'c context::Evaluation<'c, 'd>, node_test: &'c NodeTest) -> Self {
[INFO] [stdout]    |                                                                     ^^^^^^^^ help: use `dyn`: `dyn NodeTest`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/axis.rs:71:41
[INFO] [stdout]    |
[INFO] [stdout] 71 | ...                   node_test: &NodeTest) -> OrderedNodes<'d>
[INFO] [stdout]    |                                   ^^^^^^^^ help: use `dyn`: `dyn NodeTest`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/expression.rs:73:30
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub type SubExpression = Box<Expression + 'static>;
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Expression + 'static`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/expression.rs:95:20
[INFO] [stdout]    |
[INFO] [stdout] 95 |         let left = try!(self.left.evaluate(context)).boolean();
[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/expression.rs:96:25
[INFO] [stdout]    |
[INFO] [stdout] 96 |         let v = left && try!(self.right.evaluate(context)).boolean();
[INFO] [stdout]    |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expression.rs:121:24
[INFO] [stdout]     |
[INFO] [stdout] 121 |         let left_val = try!(self.left.evaluate(context));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expression.rs:122:25
[INFO] [stdout]     |
[INFO] [stdout] 122 |         let right_val = try!(self.right.evaluate(context));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expression.rs:200:28
[INFO] [stdout]     |
[INFO] [stdout] 200 |                 let args = try!(self.arguments.iter().map(|arg| arg.evaluate(context)).collect());
[INFO] [stdout]     |                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expression.rs:259:20
[INFO] [stdout]     |
[INFO] [stdout] 259 |         let left = try!(self.left.evaluate(context));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expression.rs:260:21
[INFO] [stdout]     |
[INFO] [stdout] 260 |         let right = try!(self.right.evaluate(context));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expression.rs:293:20
[INFO] [stdout]     |
[INFO] [stdout] 293 |         let left = try!(self.left.evaluate(context)).boolean();
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expression.rs:294:25
[INFO] [stdout]     |
[INFO] [stdout] 294 |         let v = left || try!(self.right.evaluate(context)).boolean();
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expression.rs:313:22
[INFO] [stdout]     |
[INFO] [stdout] 313 |         let result = try!(self.start_point.evaluate(context));
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expression.rs:314:26
[INFO] [stdout]     |
[INFO] [stdout] 314 |         let mut result = try!(value_into_nodeset(result));
[INFO] [stdout]     |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expression.rs:317:22
[INFO] [stdout]     |
[INFO] [stdout] 317 |             result = try!(step.evaluate(context, result));
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expression.rs:381:24
[INFO] [stdout]     |
[INFO] [stdout] 381 |         let left_val = try!(self.left.evaluate(context));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expression.rs:382:25
[INFO] [stdout]     |
[INFO] [stdout] 382 |         let right_val = try!(self.right.evaluate(context));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expression.rs:423:21
[INFO] [stdout]     |
[INFO] [stdout] 423 |         let value = try!(self.expression.evaluate(context));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/expression.rs:435:25
[INFO] [stdout]     |
[INFO] [stdout] 435 | pub type StepTest = Box<NodeTest + 'static>;
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn NodeTest + 'static`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expression.rs:468:25
[INFO] [stdout]     |
[INFO] [stdout] 468 |                 nodes = try!(predicate.select(context, nodes));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expression.rs:490:30
[INFO] [stdout]     |
[INFO] [stdout] 490 |         let mut left_nodes = try!(as_nodes(&self.left));
[INFO] [stdout]     |                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/expression.rs:491:27
[INFO] [stdout]     |
[INFO] [stdout] 491 |         let right_nodes = try!(as_nodes(&self.right));
[INFO] [stdout]     |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/expression.rs:750:27
[INFO] [stdout]     |
[INFO] [stdout] 750 |         let arg_expr: Box<Expression> = Box::new(Literal{value: Value::Boolean(true)});
[INFO] [stdout]     |                           ^^^^^^^^^^ help: use `dyn`: `dyn Expression`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/expression.rs:886:46
[INFO] [stdout]     |
[INFO] [stdout] 886 | ...                   _node_test: &NodeTest) -> OrderedNodes<'d>
[INFO] [stdout]     |                                    ^^^^^^^^ help: use `dyn`: `dyn NodeTest`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:199:9
[INFO] [stdout]     |
[INFO] [stdout] 199 |         try!(args.exactly(0));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:212:9
[INFO] [stdout]     |
[INFO] [stdout] 212 |         try!(args.exactly(0));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:225:9
[INFO] [stdout]     |
[INFO] [stdout] 225 |         try!(args.exactly(1));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:226:19
[INFO] [stdout]     |
[INFO] [stdout] 226 |         let arg = try!(args.pop_nodeset());
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:239:9
[INFO] [stdout]     |
[INFO] [stdout] 239 |         try!(args.at_most(1));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:240:19
[INFO] [stdout]     |
[INFO] [stdout] 240 |         let arg = try!(args.pop_nodeset_or_context_node(context));
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:258:9
[INFO] [stdout]     |
[INFO] [stdout] 258 |         try!(args.at_most(1));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:259:19
[INFO] [stdout]     |
[INFO] [stdout] 259 |         let arg = try!(args.pop_nodeset_or_context_node(context));
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:277:9
[INFO] [stdout]     |
[INFO] [stdout] 277 |         try!(args.at_most(1));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:278:19
[INFO] [stdout]     |
[INFO] [stdout] 278 |         let arg = try!(args.pop_nodeset_or_context_node(context));
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:295:9
[INFO] [stdout]     |
[INFO] [stdout] 295 |         try!(args.at_most(1));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:309:9
[INFO] [stdout]     |
[INFO] [stdout] 309 |         try!(args.at_least(2));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:323:9
[INFO] [stdout]     |
[INFO] [stdout] 323 |         try!(args.exactly(2));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/function.rs:331:64
[INFO] [stdout]     |
[INFO] [stdout] 331 |     fn imp(a: &str, b: &str) -> bool { str::starts_with(a, b) };
[INFO] [stdout]     |                                                                ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/function.rs:335:61
[INFO] [stdout]     |
[INFO] [stdout] 335 |     fn imp(a: &str, b: &str) -> bool { str::contains(a, b) };
[INFO] [stdout]     |                                                             ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:347:9
[INFO] [stdout]     |
[INFO] [stdout] 347 |         try!(args.exactly(2));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:382:9
[INFO] [stdout]     |
[INFO] [stdout] 382 |         try!(args.at_least(2));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:383:9
[INFO] [stdout]     |
[INFO] [stdout] 383 |         try!(args.at_most(3));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:386:23
[INFO] [stdout]     |
[INFO] [stdout] 386 |             let len = try!(args.pop_number());
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:392:21
[INFO] [stdout]     |
[INFO] [stdout] 392 |         let start = try!(args.pop_number());
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:394:17
[INFO] [stdout]     |
[INFO] [stdout] 394 |         let s = try!(args.pop_string());
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:418:9
[INFO] [stdout]     |
[INFO] [stdout] 418 |         try!(args.at_most(1));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:432:9
[INFO] [stdout]     |
[INFO] [stdout] 432 |         try!(args.at_most(1));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:449:9
[INFO] [stdout]     |
[INFO] [stdout] 449 |         try!(args.exactly(3));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:451:18
[INFO] [stdout]     |
[INFO] [stdout] 451 |         let to = try!(args.pop_string());
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:452:20
[INFO] [stdout]     |
[INFO] [stdout] 452 |         let from = try!(args.pop_string());
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:453:17
[INFO] [stdout]     |
[INFO] [stdout] 453 |         let s = try!(args.pop_string());
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:479:9
[INFO] [stdout]     |
[INFO] [stdout] 479 |         try!(args.exactly(1));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:492:9
[INFO] [stdout]     |
[INFO] [stdout] 492 |         try!(args.exactly(1));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:493:19
[INFO] [stdout]     |
[INFO] [stdout] 493 |         let arg = try!(args.pop_boolean());
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:506:9
[INFO] [stdout]     |
[INFO] [stdout] 506 |         try!(args.exactly(0));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:522:9
[INFO] [stdout]     |
[INFO] [stdout] 522 |         try!(args.at_most(1));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:536:9
[INFO] [stdout]     |
[INFO] [stdout] 536 |         try!(args.exactly(1));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:537:19
[INFO] [stdout]     |
[INFO] [stdout] 537 |         let arg = try!(args.pop_nodeset());
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:551:9
[INFO] [stdout]     |
[INFO] [stdout] 551 |         try!(args.exactly(1));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/function.rs:552:19
[INFO] [stdout]     |
[INFO] [stdout] 552 |         let arg = try!(args.pop_number());
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/node_test.rs:20:28
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub type SubNodeTest = Box<NodeTest + 'static>;
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn NodeTest + 'static`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:140:20
[INFO] [stdout]     |
[INFO] [stdout] 140 |         let left = try!(child_parse(source));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:152:21
[INFO] [stdout]     |
[INFO] [stdout] 152 |                     try!(source.consume(&rule.token));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:154:33
[INFO] [stdout]     |
[INFO] [stdout] 154 |                     let right = try!(child_parse(source));
[INFO] [stdout]     |                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parser.rs:175:20
[INFO] [stdout]     |
[INFO] [stdout] 175 | type Rule<'a, I> = Fn(TokenSource<I>) -> ParseResult + 'a;
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(TokenSource<I>) -> ParseResult + 'a`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:182:20
[INFO] [stdout]     |
[INFO] [stdout] 182 |         let expr = try!((*child_parse)(source));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:258:13
[INFO] [stdout]     |
[INFO] [stdout] 258 |             try!(source.consume(&Token::LeftParen));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:259:26
[INFO] [stdout]     |
[INFO] [stdout] 259 |             let result = try!(self.parse_expression(source));
[INFO] [stdout]     |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:260:13
[INFO] [stdout]     |
[INFO] [stdout] 260 |             try!(source.consume(&Token::RightParen));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:305:13
[INFO] [stdout]     |
[INFO] [stdout] 305 |             try!(source.consume(&Token::Comma));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:307:19
[INFO] [stdout]     |
[INFO] [stdout] 307 |             match try!(self.parse_expression(source)) {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:322:15
[INFO] [stdout]     |
[INFO] [stdout] 322 |         match try!(self.parse_expression(source)) {
[INFO] [stdout]     |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:336:13
[INFO] [stdout]     |
[INFO] [stdout] 336 |             try!(source.consume(&Token::LeftParen));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:337:29
[INFO] [stdout]     |
[INFO] [stdout] 337 |             let arguments = try!(self.parse_function_args(source));
[INFO] [stdout]     |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:338:13
[INFO] [stdout]     |
[INFO] [stdout] 338 |             try!(source.consume(&Token::RightParen));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:364:13
[INFO] [stdout]     |
[INFO] [stdout] 364 |             try!(source.consume(&Token::LeftBracket));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:366:19
[INFO] [stdout]     |
[INFO] [stdout] 366 |             match try!(self.parse_expression(source)) {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:368:21
[INFO] [stdout]     |
[INFO] [stdout] 368 |                     try!(source.consume(&Token::RightBracket));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:383:37
[INFO] [stdout]     |
[INFO] [stdout] 383 |         while let Some(predicate) = try!(self.parse_predicate_expression(source)) {
[INFO] [stdout]     |                                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:393:20
[INFO] [stdout]     |
[INFO] [stdout] 393 |         let axis = try!(self.parse_axis(source));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:395:31
[INFO] [stdout]     |
[INFO] [stdout] 395 |         let node_test = match try!(self.parse_node_test(source)) {
[INFO] [stdout]     |                               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:397:21
[INFO] [stdout]     |
[INFO] [stdout] 397 |             None => try!(self.default_node_test(source, axis)),
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:405:26
[INFO] [stdout]     |
[INFO] [stdout] 405 |         let predicates = try!(self.parse_predicates(source));
[INFO] [stdout]     |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:415:15
[INFO] [stdout]     |
[INFO] [stdout] 415 |         match try!(self.parse_step(source)) {
[INFO] [stdout]     |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:420:21
[INFO] [stdout]     |
[INFO] [stdout] 420 |                     try!(source.consume(&Token::Slash));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:422:27
[INFO] [stdout]     |
[INFO] [stdout] 422 |                     match try!(self.parse_step(source)) {
[INFO] [stdout]     |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:445:13
[INFO] [stdout]     |
[INFO] [stdout] 445 |             try!(source.consume(&Token::Slash));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:448:19
[INFO] [stdout]     |
[INFO] [stdout] 448 |             match try!(self.parse_relative_location_path_raw(source, start_point)) {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:471:15
[INFO] [stdout]     |
[INFO] [stdout] 471 |         match try!(self.parse_primary_expression(source)) {
[INFO] [stdout]     |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:473:34
[INFO] [stdout]     |
[INFO] [stdout] 473 |                 let predicates = try!(self.parse_predicates(source));
[INFO] [stdout]     |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:486:20
[INFO] [stdout]     |
[INFO] [stdout] 486 |         let expr = try!(self.parse_location_path(source));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:491:15
[INFO] [stdout]     |
[INFO] [stdout] 491 |         match try!(self.parse_filter_expression(source)) {
[INFO] [stdout]     |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:494:21
[INFO] [stdout]     |
[INFO] [stdout] 494 |                     try!(source.consume(&Token::Slash));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:496:27
[INFO] [stdout]     |
[INFO] [stdout] 496 |                     match try!(self.parse_relative_location_path_raw(source, expr)) {
[INFO] [stdout]     |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:521:20
[INFO] [stdout]     |
[INFO] [stdout] 521 |         let expr = try!(self.parse_union_expression(source));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:527:13
[INFO] [stdout]     |
[INFO] [stdout] 527 |             try!(source.consume(&Token::MinusSign));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:529:24
[INFO] [stdout]     |
[INFO] [stdout] 529 |             let expr = try!(self.parse_unary_expression(source));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/parser.rs:631:20
[INFO] [stdout]     |
[INFO] [stdout] 631 |         let expr = try!(self.parse_or_expression(&mut source));
[INFO] [stdout]     |                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/tokenizer.rs:372:21
[INFO] [stdout]     |
[INFO] [stdout] 372 |         let token = try!(self.raw_next_token());
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:339:22
[INFO] [stdout]     |
[INFO] [stdout] 339 | pub struct XPath(Box<expression::Expression + 'static>);
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn expression::Expression + 'static`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:414:40
[INFO] [stdout]     |
[INFO] [stdout] 414 |               fn cause(&self) -> Option<&std::error::Error> {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn std::error::Error`
[INFO] [stdout] ...
[INFO] [stdout] 433 | / opaque_error!(
[INFO] [stdout] 434 | |     /// Errors that may occur when parsing an XPath
[INFO] [stdout] 435 | |     ParserError(parser::Error)
[INFO] [stdout] 436 | | );
[INFO] [stdout]     | |__- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout]     = note: this warning originates in the macro `opaque_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:414:40
[INFO] [stdout]     |
[INFO] [stdout] 414 |               fn cause(&self) -> Option<&std::error::Error> {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn std::error::Error`
[INFO] [stdout] ...
[INFO] [stdout] 438 | / opaque_error!(
[INFO] [stdout] 439 | |     /// Errors that may occur when executing an XPath
[INFO] [stdout] 440 | |     ExecutionError(expression::Error)
[INFO] [stdout] 441 | | );
[INFO] [stdout]     | |__- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout]     = note: this warning originates in the macro `opaque_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/lib.rs:411:24
[INFO] [stdout]     |
[INFO] [stdout] 411 |                   self.0.description()
[INFO] [stdout]     |                          ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 433 | / opaque_error!(
[INFO] [stdout] 434 | |     /// Errors that may occur when parsing an XPath
[INFO] [stdout] 435 | |     ParserError(parser::Error)
[INFO] [stdout] 436 | | );
[INFO] [stdout]     | |__- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `opaque_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/lib.rs:411:24
[INFO] [stdout]     |
[INFO] [stdout] 411 |                   self.0.description()
[INFO] [stdout]     |                          ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 438 | / opaque_error!(
[INFO] [stdout] 439 | |     /// Errors that may occur when executing an XPath
[INFO] [stdout] 440 | |     ExecutionError(expression::Error)
[INFO] [stdout] 441 | | );
[INFO] [stdout]     | |__- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `opaque_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]    --> src/lib.rs:415:24
[INFO] [stdout]     |
[INFO] [stdout] 415 |                   self.0.cause()
[INFO] [stdout]     |                          ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 433 | / opaque_error!(
[INFO] [stdout] 434 | |     /// Errors that may occur when parsing an XPath
[INFO] [stdout] 435 | |     ParserError(parser::Error)
[INFO] [stdout] 436 | | );
[INFO] [stdout]     | |__- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `opaque_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]    --> src/lib.rs:415:24
[INFO] [stdout]     |
[INFO] [stdout] 415 |                   self.0.cause()
[INFO] [stdout]     |                          ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 438 | / opaque_error!(
[INFO] [stdout] 439 | |     /// Errors that may occur when executing an XPath
[INFO] [stdout] 440 | |     ExecutionError(expression::Error)
[INFO] [stdout] 441 | | );
[INFO] [stdout]     | |__- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `opaque_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 112 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 6.07s
[INFO] running `Command { std: "docker" "inspect" "4a7b8b0f99c9970108d8b047031d0f75977800e4978d02ba5d6049d6e13248f6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4a7b8b0f99c9970108d8b047031d0f75977800e4978d02ba5d6049d6e13248f6", kill_on_drop: false }`
[INFO] [stdout] 4a7b8b0f99c9970108d8b047031d0f75977800e4978d02ba5d6049d6e13248f6
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-26/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-26/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" "ghcr.io/rust-lang/crates-build-env/linux@sha256:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+1.54.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 89131dc687bfbf3f60cb772b9f727a793bab90aa380e201c05b8dfcc6b6f3fd4
[INFO] running `Command { std: "docker" "start" "-a" "89131dc687bfbf3f60cb772b9f727a793bab90aa380e201c05b8dfcc6b6f3fd4", kill_on_drop: false }`
[INFO] [stderr] warning: unnecessary trailing semicolon
[INFO] [stderr]   --> src/nodeset.rs:99:10
[INFO] [stderr]    |
[INFO] [stderr] 99 |         };
[INFO] [stderr]    |          ^ help: remove this semicolon
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(redundant_semicolons)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary trailing semicolon
[INFO] [stderr]    --> src/nodeset.rs:203:10
[INFO] [stderr]     |
[INFO] [stderr] 203 |         };
[INFO] [stderr]     |          ^ help: remove this semicolon
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/context.rs:14:42
[INFO] [stderr]    |
[INFO] [stderr] 14 | type Functions = HashMap<OwnedQName, Box<function::Function + 'static>>;
[INFO] [stderr]    |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn function::Function + 'static`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stderr]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/context.rs:179:64
[INFO] [stderr]     |
[INFO] [stderr] 179 |     pub fn function_for_name(&self, name: QName) -> Option<&'c function::Function> {
[INFO] [stderr]     |                                                                ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn function::Function`
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stderr]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/axis.rs:22:41
[INFO] [stderr]    |
[INFO] [stderr] 22 | ...                   node_test: &NodeTest) -> OrderedNodes<'d>;
[INFO] [stderr]    |                                   ^^^^^^^^ help: use `dyn`: `dyn NodeTest`
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stderr]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/axis.rs:49:20
[INFO] [stderr]    |
[INFO] [stderr] 49 |     node_test: &'c NodeTest,
[INFO] [stderr]    |                    ^^^^^^^^ help: use `dyn`: `dyn NodeTest`
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stderr]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/axis.rs:54:69
[INFO] [stderr]    |
[INFO] [stderr] 54 |     fn new(context: &'c context::Evaluation<'c, 'd>, node_test: &'c NodeTest) -> Self {
[INFO] [stderr]    |                                                                     ^^^^^^^^ help: use `dyn`: `dyn NodeTest`
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stderr]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/axis.rs:71:41
[INFO] [stderr]    |
[INFO] [stderr] 71 | ...                   node_test: &NodeTest) -> OrderedNodes<'d>
[INFO] [stderr]    |                                   ^^^^^^^^ help: use `dyn`: `dyn NodeTest`
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stderr]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/expression.rs:73:30
[INFO] [stderr]    |
[INFO] [stderr] 73 | pub type SubExpression = Box<Expression + 'static>;
[INFO] [stderr]    |                              ^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Expression + 'static`
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stderr]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/expression.rs:95:20
[INFO] [stderr]    |
[INFO] [stderr] 95 |         let left = try!(self.left.evaluate(context)).boolean();
[INFO] [stderr]    |                    ^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/expression.rs:96:25
[INFO] [stderr]    |
[INFO] [stderr] 96 |         let v = left && try!(self.right.evaluate(context)).boolean();
[INFO] [stderr]    |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/expression.rs:121:24
[INFO] [stderr]     |
[INFO] [stderr] 121 |         let left_val = try!(self.left.evaluate(context));
[INFO] [stderr]     |                        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/expression.rs:122:25
[INFO] [stderr]     |
[INFO] [stderr] 122 |         let right_val = try!(self.right.evaluate(context));
[INFO] [stderr]     |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/expression.rs:200:28
[INFO] [stderr]     |
[INFO] [stderr] 200 |                 let args = try!(self.arguments.iter().map(|arg| arg.evaluate(context)).collect());
[INFO] [stderr]     |                            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/expression.rs:259:20
[INFO] [stderr]     |
[INFO] [stderr] 259 |         let left = try!(self.left.evaluate(context));
[INFO] [stderr]     |                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/expression.rs:260:21
[INFO] [stderr]     |
[INFO] [stderr] 260 |         let right = try!(self.right.evaluate(context));
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/expression.rs:293:20
[INFO] [stderr]     |
[INFO] [stderr] 293 |         let left = try!(self.left.evaluate(context)).boolean();
[INFO] [stderr]     |                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/expression.rs:294:25
[INFO] [stderr]     |
[INFO] [stderr] 294 |         let v = left || try!(self.right.evaluate(context)).boolean();
[INFO] [stderr]     |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/expression.rs:313:22
[INFO] [stderr]     |
[INFO] [stderr] 313 |         let result = try!(self.start_point.evaluate(context));
[INFO] [stderr]     |                      ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/expression.rs:314:26
[INFO] [stderr]     |
[INFO] [stderr] 314 |         let mut result = try!(value_into_nodeset(result));
[INFO] [stderr]     |                          ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/expression.rs:317:22
[INFO] [stderr]     |
[INFO] [stderr] 317 |             result = try!(step.evaluate(context, result));
[INFO] [stderr]     |                      ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/expression.rs:381:24
[INFO] [stderr]     |
[INFO] [stderr] 381 |         let left_val = try!(self.left.evaluate(context));
[INFO] [stderr]     |                        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/expression.rs:382:25
[INFO] [stderr]     |
[INFO] [stderr] 382 |         let right_val = try!(self.right.evaluate(context));
[INFO] [stderr]     |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/expression.rs:423:21
[INFO] [stderr]     |
[INFO] [stderr] 423 |         let value = try!(self.expression.evaluate(context));
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/expression.rs:435:25
[INFO] [stderr]     |
[INFO] [stderr] 435 | pub type StepTest = Box<NodeTest + 'static>;
[INFO] [stderr]     |                         ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn NodeTest + 'static`
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stderr]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/expression.rs:468:25
[INFO] [stderr]     |
[INFO] [stderr] 468 |                 nodes = try!(predicate.select(context, nodes));
[INFO] [stderr]     |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/expression.rs:490:30
[INFO] [stderr]     |
[INFO] [stderr] 490 |         let mut left_nodes = try!(as_nodes(&self.left));
[INFO] [stderr]     |                              ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/expression.rs:491:27
[INFO] [stderr]     |
[INFO] [stderr] 491 |         let right_nodes = try!(as_nodes(&self.right));
[INFO] [stderr]     |                           ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:199:9
[INFO] [stderr]     |
[INFO] [stderr] 199 |         try!(args.exactly(0));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:212:9
[INFO] [stderr]     |
[INFO] [stderr] 212 |         try!(args.exactly(0));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:225:9
[INFO] [stderr]     |
[INFO] [stderr] 225 |         try!(args.exactly(1));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:226:19
[INFO] [stderr]     |
[INFO] [stderr] 226 |         let arg = try!(args.pop_nodeset());
[INFO] [stderr]     |                   ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:239:9
[INFO] [stderr]     |
[INFO] [stderr] 239 |         try!(args.at_most(1));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:240:19
[INFO] [stderr]     |
[INFO] [stderr] 240 |         let arg = try!(args.pop_nodeset_or_context_node(context));
[INFO] [stderr]     |                   ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:258:9
[INFO] [stderr]     |
[INFO] [stderr] 258 |         try!(args.at_most(1));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:259:19
[INFO] [stderr]     |
[INFO] [stderr] 259 |         let arg = try!(args.pop_nodeset_or_context_node(context));
[INFO] [stderr]     |                   ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:277:9
[INFO] [stderr]     |
[INFO] [stderr] 277 |         try!(args.at_most(1));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:278:19
[INFO] [stderr]     |
[INFO] [stderr] 278 |         let arg = try!(args.pop_nodeset_or_context_node(context));
[INFO] [stderr]     |                   ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:295:9
[INFO] [stderr]     |
[INFO] [stderr] 295 |         try!(args.at_most(1));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:309:9
[INFO] [stderr]     |
[INFO] [stderr] 309 |         try!(args.at_least(2));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:323:9
[INFO] [stderr]     |
[INFO] [stderr] 323 |         try!(args.exactly(2));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary trailing semicolon
[INFO] [stderr]    --> src/function.rs:331:64
[INFO] [stderr]     |
[INFO] [stderr] 331 |     fn imp(a: &str, b: &str) -> bool { str::starts_with(a, b) };
[INFO] [stderr]     |                                                                ^ help: remove this semicolon
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary trailing semicolon
[INFO] [stderr]    --> src/function.rs:335:61
[INFO] [stderr]     |
[INFO] [stderr] 335 |     fn imp(a: &str, b: &str) -> bool { str::contains(a, b) };
[INFO] [stderr]     |                                                             ^ help: remove this semicolon
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:347:9
[INFO] [stderr]     |
[INFO] [stderr] 347 |         try!(args.exactly(2));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:382:9
[INFO] [stderr]     |
[INFO] [stderr] 382 |         try!(args.at_least(2));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:383:9
[INFO] [stderr]     |
[INFO] [stderr] 383 |         try!(args.at_most(3));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:386:23
[INFO] [stderr]     |
[INFO] [stderr] 386 |             let len = try!(args.pop_number());
[INFO] [stderr]     |                       ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:392:21
[INFO] [stderr]     |
[INFO] [stderr] 392 |         let start = try!(args.pop_number());
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:394:17
[INFO] [stderr]     |
[INFO] [stderr] 394 |         let s = try!(args.pop_string());
[INFO] [stderr]     |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:418:9
[INFO] [stderr]     |
[INFO] [stderr] 418 |         try!(args.at_most(1));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:432:9
[INFO] [stderr]     |
[INFO] [stderr] 432 |         try!(args.at_most(1));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:449:9
[INFO] [stderr]     |
[INFO] [stderr] 449 |         try!(args.exactly(3));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:451:18
[INFO] [stderr]     |
[INFO] [stderr] 451 |         let to = try!(args.pop_string());
[INFO] [stderr]     |                  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:452:20
[INFO] [stderr]     |
[INFO] [stderr] 452 |         let from = try!(args.pop_string());
[INFO] [stderr]     |                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:453:17
[INFO] [stderr]     |
[INFO] [stderr] 453 |         let s = try!(args.pop_string());
[INFO] [stderr]     |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:479:9
[INFO] [stderr]     |
[INFO] [stderr] 479 |         try!(args.exactly(1));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:492:9
[INFO] [stderr]     |
[INFO] [stderr] 492 |         try!(args.exactly(1));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:493:19
[INFO] [stderr]     |
[INFO] [stderr] 493 |         let arg = try!(args.pop_boolean());
[INFO] [stderr]     |                   ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:506:9
[INFO] [stderr]     |
[INFO] [stderr] 506 |         try!(args.exactly(0));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:522:9
[INFO] [stderr]     |
[INFO] [stderr] 522 |         try!(args.at_most(1));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:536:9
[INFO] [stderr]     |
[INFO] [stderr] 536 |         try!(args.exactly(1));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:537:19
[INFO] [stderr]     |
[INFO] [stderr] 537 |         let arg = try!(args.pop_nodeset());
[INFO] [stderr]     |                   ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:551:9
[INFO] [stderr]     |
[INFO] [stderr] 551 |         try!(args.exactly(1));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:552:19
[INFO] [stderr]     |
[INFO] [stderr] 552 |         let arg = try!(args.pop_number());
[INFO] [stderr]     |                   ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/node_test.rs:20:28
[INFO] [stderr]    |
[INFO] [stderr] 20 | pub type SubNodeTest = Box<NodeTest + 'static>;
[INFO] [stderr]    |                            ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn NodeTest + 'static`
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stderr]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:140:20
[INFO] [stderr]     |
[INFO] [stderr] 140 |         let left = try!(child_parse(source));
[INFO] [stderr]     |                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:152:21
[INFO] [stderr]     |
[INFO] [stderr] 152 |                     try!(source.consume(&rule.token));
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:154:33
[INFO] [stderr]     |
[INFO] [stderr] 154 |                     let right = try!(child_parse(source));
[INFO] [stderr]     |                                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/parser.rs:175:20
[INFO] [stderr]     |
[INFO] [stderr] 175 | type Rule<'a, I> = Fn(TokenSource<I>) -> ParseResult + 'a;
[INFO] [stderr]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(TokenSource<I>) -> ParseResult + 'a`
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stderr]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:182:20
[INFO] [stderr]     |
[INFO] [stderr] 182 |         let expr = try!((*child_parse)(source));
[INFO] [stderr]     |                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:258:13
[INFO] [stderr]     |
[INFO] [stderr] 258 |             try!(source.consume(&Token::LeftParen));
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:259:26
[INFO] [stderr]     |
[INFO] [stderr] 259 |             let result = try!(self.parse_expression(source));
[INFO] [stderr]     |                          ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:260:13
[INFO] [stderr]     |
[INFO] [stderr] 260 |             try!(source.consume(&Token::RightParen));
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:305:13
[INFO] [stderr]     |
[INFO] [stderr] 305 |             try!(source.consume(&Token::Comma));
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:307:19
[INFO] [stderr]     |
[INFO] [stderr] 307 |             match try!(self.parse_expression(source)) {
[INFO] [stderr]     |                   ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:322:15
[INFO] [stderr]     |
[INFO] [stderr] 322 |         match try!(self.parse_expression(source)) {
[INFO] [stderr]     |               ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:336:13
[INFO] [stderr]     |
[INFO] [stderr] 336 |             try!(source.consume(&Token::LeftParen));
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:337:29
[INFO] [stderr]     |
[INFO] [stderr] 337 |             let arguments = try!(self.parse_function_args(source));
[INFO] [stderr]     |                             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:338:13
[INFO] [stderr]     |
[INFO] [stderr] 338 |             try!(source.consume(&Token::RightParen));
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:364:13
[INFO] [stderr]     |
[INFO] [stderr] 364 |             try!(source.consume(&Token::LeftBracket));
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:366:19
[INFO] [stderr]     |
[INFO] [stderr] 366 |             match try!(self.parse_expression(source)) {
[INFO] [stderr]     |                   ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:368:21
[INFO] [stderr]     |
[INFO] [stderr] 368 |                     try!(source.consume(&Token::RightBracket));
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:383:37
[INFO] [stderr]     |
[INFO] [stderr] 383 |         while let Some(predicate) = try!(self.parse_predicate_expression(source)) {
[INFO] [stderr]     |                                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:393:20
[INFO] [stderr]     |
[INFO] [stderr] 393 |         let axis = try!(self.parse_axis(source));
[INFO] [stderr]     |                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:395:31
[INFO] [stderr]     |
[INFO] [stderr] 395 |         let node_test = match try!(self.parse_node_test(source)) {
[INFO] [stderr]     |                               ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:397:21
[INFO] [stderr]     |
[INFO] [stderr] 397 |             None => try!(self.default_node_test(source, axis)),
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:405:26
[INFO] [stderr]     |
[INFO] [stderr] 405 |         let predicates = try!(self.parse_predicates(source));
[INFO] [stderr]     |                          ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:415:15
[INFO] [stderr]     |
[INFO] [stderr] 415 |         match try!(self.parse_step(source)) {
[INFO] [stderr]     |               ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:420:21
[INFO] [stderr]     |
[INFO] [stderr] 420 |                     try!(source.consume(&Token::Slash));
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:422:27
[INFO] [stderr]     |
[INFO] [stderr] 422 |                     match try!(self.parse_step(source)) {
[INFO] [stderr]     |                           ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:445:13
[INFO] [stderr]     |
[INFO] [stderr] 445 |             try!(source.consume(&Token::Slash));
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:448:19
[INFO] [stderr]     |
[INFO] [stderr] 448 |             match try!(self.parse_relative_location_path_raw(source, start_point)) {
[INFO] [stderr]     |                   ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:471:15
[INFO] [stderr]     |
[INFO] [stderr] 471 |         match try!(self.parse_primary_expression(source)) {
[INFO] [stderr]     |               ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:473:34
[INFO] [stderr]     |
[INFO] [stderr] 473 |                 let predicates = try!(self.parse_predicates(source));
[INFO] [stderr]     |                                  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:486:20
[INFO] [stderr]     |
[INFO] [stderr] 486 |         let expr = try!(self.parse_location_path(source));
[INFO] [stderr]     |                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:491:15
[INFO] [stderr]     |
[INFO] [stderr] 491 |         match try!(self.parse_filter_expression(source)) {
[INFO] [stderr]     |               ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:494:21
[INFO] [stderr]     |
[INFO] [stderr] 494 |                     try!(source.consume(&Token::Slash));
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:496:27
[INFO] [stderr]     |
[INFO] [stderr] 496 |                     match try!(self.parse_relative_location_path_raw(source, expr)) {
[INFO] [stderr]     |                           ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:521:20
[INFO] [stderr]     |
[INFO] [stderr] 521 |         let expr = try!(self.parse_union_expression(source));
[INFO] [stderr]     |                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:527:13
[INFO] [stderr]     |
[INFO] [stderr] 527 |             try!(source.consume(&Token::MinusSign));
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:529:24
[INFO] [stderr]     |
[INFO] [stderr] 529 |             let expr = try!(self.parse_unary_expression(source));
[INFO] [stderr]     |                        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:631:20
[INFO] [stderr]     |
[INFO] [stderr] 631 |         let expr = try!(self.parse_or_expression(&mut source));
[INFO] [stderr]     |                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/tokenizer.rs:372:21
[INFO] [stderr]     |
[INFO] [stderr] 372 |         let token = try!(self.raw_next_token());
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:339:22
[INFO] [stderr]     |
[INFO] [stderr] 339 | pub struct XPath(Box<expression::Expression + 'static>);
[INFO] [stderr]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn expression::Expression + 'static`
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stderr]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:414:40
[INFO] [stderr]     |
[INFO] [stderr] 414 |               fn cause(&self) -> Option<&std::error::Error> {
[INFO] [stderr]     |                                          ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn std::error::Error`
[INFO] [stderr] ...
[INFO] [stderr] 433 | / opaque_error!(
[INFO] [stderr] 434 | |     /// Errors that may occur when parsing an XPath
[INFO] [stderr] 435 | |     ParserError(parser::Error)
[INFO] [stderr] 436 | | );
[INFO] [stderr]     | |__- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stderr]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stderr]     = note: this warning originates in the macro `opaque_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:414:40
[INFO] [stderr]     |
[INFO] [stderr] 414 |               fn cause(&self) -> Option<&std::error::Error> {
[INFO] [stderr]     |                                          ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn std::error::Error`
[INFO] [stderr] ...
[INFO] [stderr] 438 | / opaque_error!(
[INFO] [stderr] 439 | |     /// Errors that may occur when executing an XPath
[INFO] [stderr] 440 | |     ExecutionError(expression::Error)
[INFO] [stderr] 441 | | );
[INFO] [stderr]     | |__- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stderr]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stderr]     = note: this warning originates in the macro `opaque_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]    --> src/lib.rs:411:24
[INFO] [stderr]     |
[INFO] [stderr] 411 |                   self.0.description()
[INFO] [stderr]     |                          ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 433 | / opaque_error!(
[INFO] [stderr] 434 | |     /// Errors that may occur when parsing an XPath
[INFO] [stderr] 435 | |     ParserError(parser::Error)
[INFO] [stderr] 436 | | );
[INFO] [stderr]     | |__- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `opaque_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]    --> src/lib.rs:411:24
[INFO] [stderr]     |
[INFO] [stderr] 411 |                   self.0.description()
[INFO] [stderr]     |                          ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 438 | / opaque_error!(
[INFO] [stderr] 439 | |     /// Errors that may occur when executing an XPath
[INFO] [stderr] 440 | |     ExecutionError(expression::Error)
[INFO] [stderr] 441 | | );
[INFO] [stderr]     | |__- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `opaque_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stderr]    --> src/lib.rs:415:24
[INFO] [stderr]     |
[INFO] [stderr] 415 |                   self.0.cause()
[INFO] [stderr]     |                          ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 433 | / opaque_error!(
[INFO] [stderr] 434 | |     /// Errors that may occur when parsing an XPath
[INFO] [stderr] 435 | |     ParserError(parser::Error)
[INFO] [stderr] 436 | | );
[INFO] [stderr]     | |__- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `opaque_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stderr]    --> src/lib.rs:415:24
[INFO] [stderr]     |
[INFO] [stderr] 415 |                   self.0.cause()
[INFO] [stderr]     |                          ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 438 | / opaque_error!(
[INFO] [stderr] 439 | |     /// Errors that may occur when executing an XPath
[INFO] [stderr] 440 | |     ExecutionError(expression::Error)
[INFO] [stderr] 441 | | );
[INFO] [stderr]     | |__- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `opaque_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: 110 warnings emitted
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary trailing semicolon
[INFO] [stderr]   --> src/nodeset.rs:99:10
[INFO] [stderr]    |
[INFO] [stderr] 99 |         };
[INFO] [stderr]    |          ^ help: remove this semicolon
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(redundant_semicolons)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary trailing semicolon
[INFO] [stderr]    --> src/nodeset.rs:203:10
[INFO] [stderr]     |
[INFO] [stderr] 203 |         };
[INFO] [stderr]     |          ^ help: remove this semicolon
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/context.rs:14:42
[INFO] [stderr]    |
[INFO] [stderr] 14 | type Functions = HashMap<OwnedQName, Box<function::Function + 'static>>;
[INFO] [stderr]    |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn function::Function + 'static`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stderr]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/context.rs:179:64
[INFO] [stderr]     |
[INFO] [stderr] 179 |     pub fn function_for_name(&self, name: QName) -> Option<&'c function::Function> {
[INFO] [stderr]     |                                                                ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn function::Function`
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stderr]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/axis.rs:22:41
[INFO] [stderr]    |
[INFO] [stderr] 22 | ...                   node_test: &NodeTest) -> OrderedNodes<'d>;
[INFO] [stderr]    |                                   ^^^^^^^^ help: use `dyn`: `dyn NodeTest`
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stderr]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/axis.rs:49:20
[INFO] [stderr]    |
[INFO] [stderr] 49 |     node_test: &'c NodeTest,
[INFO] [stderr]    |                    ^^^^^^^^ help: use `dyn`: `dyn NodeTest`
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stderr]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/axis.rs:54:69
[INFO] [stderr]    |
[INFO] [stderr] 54 |     fn new(context: &'c context::Evaluation<'c, 'd>, node_test: &'c NodeTest) -> Self {
[INFO] [stderr]    |                                                                     ^^^^^^^^ help: use `dyn`: `dyn NodeTest`
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stderr]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/axis.rs:71:41
[INFO] [stderr]    |
[INFO] [stderr] 71 | ...                   node_test: &NodeTest) -> OrderedNodes<'d>
[INFO] [stderr]    |                                   ^^^^^^^^ help: use `dyn`: `dyn NodeTest`
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stderr]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/expression.rs:73:30
[INFO] [stderr]    |
[INFO] [stderr] 73 | pub type SubExpression = Box<Expression + 'static>;
[INFO] [stderr]    |                              ^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Expression + 'static`
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stderr]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/expression.rs:95:20
[INFO] [stderr]    |
[INFO] [stderr] 95 |         let left = try!(self.left.evaluate(context)).boolean();
[INFO] [stderr]    |                    ^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]   --> src/expression.rs:96:25
[INFO] [stderr]    |
[INFO] [stderr] 96 |         let v = left && try!(self.right.evaluate(context)).boolean();
[INFO] [stderr]    |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/expression.rs:121:24
[INFO] [stderr]     |
[INFO] [stderr] 121 |         let left_val = try!(self.left.evaluate(context));
[INFO] [stderr]     |                        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/expression.rs:122:25
[INFO] [stderr]     |
[INFO] [stderr] 122 |         let right_val = try!(self.right.evaluate(context));
[INFO] [stderr]     |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/expression.rs:200:28
[INFO] [stderr]     |
[INFO] [stderr] 200 |                 let args = try!(self.arguments.iter().map(|arg| arg.evaluate(context)).collect());
[INFO] [stderr]     |                            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/expression.rs:259:20
[INFO] [stderr]     |
[INFO] [stderr] 259 |         let left = try!(self.left.evaluate(context));
[INFO] [stderr]     |                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/expression.rs:260:21
[INFO] [stderr]     |
[INFO] [stderr] 260 |         let right = try!(self.right.evaluate(context));
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/expression.rs:293:20
[INFO] [stderr]     |
[INFO] [stderr] 293 |         let left = try!(self.left.evaluate(context)).boolean();
[INFO] [stderr]     |                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/expression.rs:294:25
[INFO] [stderr]     |
[INFO] [stderr] 294 |         let v = left || try!(self.right.evaluate(context)).boolean();
[INFO] [stderr]     |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/expression.rs:313:22
[INFO] [stderr]     |
[INFO] [stderr] 313 |         let result = try!(self.start_point.evaluate(context));
[INFO] [stderr]     |                      ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/expression.rs:314:26
[INFO] [stderr]     |
[INFO] [stderr] 314 |         let mut result = try!(value_into_nodeset(result));
[INFO] [stderr]     |                          ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/expression.rs:317:22
[INFO] [stderr]     |
[INFO] [stderr] 317 |             result = try!(step.evaluate(context, result));
[INFO] [stderr]     |                      ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/expression.rs:381:24
[INFO] [stderr]     |
[INFO] [stderr] 381 |         let left_val = try!(self.left.evaluate(context));
[INFO] [stderr]     |                        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/expression.rs:382:25
[INFO] [stderr]     |
[INFO] [stderr] 382 |         let right_val = try!(self.right.evaluate(context));
[INFO] [stderr]     |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/expression.rs:423:21
[INFO] [stderr]     |
[INFO] [stderr] 423 |         let value = try!(self.expression.evaluate(context));
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/expression.rs:435:25
[INFO] [stderr]     |
[INFO] [stderr] 435 | pub type StepTest = Box<NodeTest + 'static>;
[INFO] [stderr]     |                         ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn NodeTest + 'static`
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stderr]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/expression.rs:468:25
[INFO] [stderr]     |
[INFO] [stderr] 468 |                 nodes = try!(predicate.select(context, nodes));
[INFO] [stderr]     |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/expression.rs:490:30
[INFO] [stderr]     |
[INFO] [stderr] 490 |         let mut left_nodes = try!(as_nodes(&self.left));
[INFO] [stderr]     |                              ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/expression.rs:491:27
[INFO] [stderr]     |
[INFO] [stderr] 491 |         let right_nodes = try!(as_nodes(&self.right));
[INFO] [stderr]     |                           ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/expression.rs:750:27
[INFO] [stderr]     |
[INFO] [stderr] 750 |         let arg_expr: Box<Expression> = Box::new(Literal{value: Value::Boolean(true)});
[INFO] [stderr]     |                           ^^^^^^^^^^ help: use `dyn`: `dyn Expression`
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stderr]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/expression.rs:886:46
[INFO] [stderr]     |
[INFO] [stderr] 886 | ...                   _node_test: &NodeTest) -> OrderedNodes<'d>
[INFO] [stderr]     |                                    ^^^^^^^^ help: use `dyn`: `dyn NodeTest`
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stderr]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:199:9
[INFO] [stderr]     |
[INFO] [stderr] 199 |         try!(args.exactly(0));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:212:9
[INFO] [stderr]     |
[INFO] [stderr] 212 |         try!(args.exactly(0));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:225:9
[INFO] [stderr]     |
[INFO] [stderr] 225 |         try!(args.exactly(1));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:226:19
[INFO] [stderr]     |
[INFO] [stderr] 226 |         let arg = try!(args.pop_nodeset());
[INFO] [stderr]     |                   ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:239:9
[INFO] [stderr]     |
[INFO] [stderr] 239 |         try!(args.at_most(1));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:240:19
[INFO] [stderr]     |
[INFO] [stderr] 240 |         let arg = try!(args.pop_nodeset_or_context_node(context));
[INFO] [stderr]     |                   ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:258:9
[INFO] [stderr]     |
[INFO] [stderr] 258 |         try!(args.at_most(1));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:259:19
[INFO] [stderr]     |
[INFO] [stderr] 259 |         let arg = try!(args.pop_nodeset_or_context_node(context));
[INFO] [stderr]     |                   ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:277:9
[INFO] [stderr]     |
[INFO] [stderr] 277 |         try!(args.at_most(1));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:278:19
[INFO] [stderr]     |
[INFO] [stderr] 278 |         let arg = try!(args.pop_nodeset_or_context_node(context));
[INFO] [stderr]     |                   ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:295:9
[INFO] [stderr]     |
[INFO] [stderr] 295 |         try!(args.at_most(1));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:309:9
[INFO] [stderr]     |
[INFO] [stderr] 309 |         try!(args.at_least(2));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:323:9
[INFO] [stderr]     |
[INFO] [stderr] 323 |         try!(args.exactly(2));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary trailing semicolon
[INFO] [stderr]    --> src/function.rs:331:64
[INFO] [stderr]     |
[INFO] [stderr] 331 |     fn imp(a: &str, b: &str) -> bool { str::starts_with(a, b) };
[INFO] [stderr]     |                                                                ^ help: remove this semicolon
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary trailing semicolon
[INFO] [stderr]    --> src/function.rs:335:61
[INFO] [stderr]     |
[INFO] [stderr] 335 |     fn imp(a: &str, b: &str) -> bool { str::contains(a, b) };
[INFO] [stderr]     |                                                             ^ help: remove this semicolon
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:347:9
[INFO] [stderr]     |
[INFO] [stderr] 347 |         try!(args.exactly(2));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:382:9
[INFO] [stderr]     |
[INFO] [stderr] 382 |         try!(args.at_least(2));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:383:9
[INFO] [stderr]     |
[INFO] [stderr] 383 |         try!(args.at_most(3));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:386:23
[INFO] [stderr]     |
[INFO] [stderr] 386 |             let len = try!(args.pop_number());
[INFO] [stderr]     |                       ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:392:21
[INFO] [stderr]     |
[INFO] [stderr] 392 |         let start = try!(args.pop_number());
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:394:17
[INFO] [stderr]     |
[INFO] [stderr] 394 |         let s = try!(args.pop_string());
[INFO] [stderr]     |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:418:9
[INFO] [stderr]     |
[INFO] [stderr] 418 |         try!(args.at_most(1));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:432:9
[INFO] [stderr]     |
[INFO] [stderr] 432 |         try!(args.at_most(1));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:449:9
[INFO] [stderr]     |
[INFO] [stderr] 449 |         try!(args.exactly(3));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:451:18
[INFO] [stderr]     |
[INFO] [stderr] 451 |         let to = try!(args.pop_string());
[INFO] [stderr]     |                  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:452:20
[INFO] [stderr]     |
[INFO] [stderr] 452 |         let from = try!(args.pop_string());
[INFO] [stderr]     |                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:453:17
[INFO] [stderr]     |
[INFO] [stderr] 453 |         let s = try!(args.pop_string());
[INFO] [stderr]     |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:479:9
[INFO] [stderr]     |
[INFO] [stderr] 479 |         try!(args.exactly(1));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:492:9
[INFO] [stderr]     |
[INFO] [stderr] 492 |         try!(args.exactly(1));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:493:19
[INFO] [stderr]     |
[INFO] [stderr] 493 |         let arg = try!(args.pop_boolean());
[INFO] [stderr]     |                   ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:506:9
[INFO] [stderr]     |
[INFO] [stderr] 506 |         try!(args.exactly(0));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:522:9
[INFO] [stderr]     |
[INFO] [stderr] 522 |         try!(args.at_most(1));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:536:9
[INFO] [stderr]     |
[INFO] [stderr] 536 |         try!(args.exactly(1));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:537:19
[INFO] [stderr]     |
[INFO] [stderr] 537 |         let arg = try!(args.pop_nodeset());
[INFO] [stderr]     |                   ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:551:9
[INFO] [stderr]     |
[INFO] [stderr] 551 |         try!(args.exactly(1));
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/function.rs:552:19
[INFO] [stderr]     |
[INFO] [stderr] 552 |         let arg = try!(args.pop_number());
[INFO] [stderr]     |                   ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/node_test.rs:20:28
[INFO] [stderr]    |
[INFO] [stderr] 20 | pub type SubNodeTest = Box<NodeTest + 'static>;
[INFO] [stderr]    |                            ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn NodeTest + 'static`
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stderr]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:140:20
[INFO] [stderr]     |
[INFO] [stderr] 140 |         let left = try!(child_parse(source));
[INFO] [stderr]     |                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:152:21
[INFO] [stderr]     |
[INFO] [stderr] 152 |                     try!(source.consume(&rule.token));
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:154:33
[INFO] [stderr]     |
[INFO] [stderr] 154 |                     let right = try!(child_parse(source));
[INFO] [stderr]     |                                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/parser.rs:175:20
[INFO] [stderr]     |
[INFO] [stderr] 175 | type Rule<'a, I> = Fn(TokenSource<I>) -> ParseResult + 'a;
[INFO] [stderr]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(TokenSource<I>) -> ParseResult + 'a`
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stderr]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:182:20
[INFO] [stderr]     |
[INFO] [stderr] 182 |         let expr = try!((*child_parse)(source));
[INFO] [stderr]     |                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:258:13
[INFO] [stderr]     |
[INFO] [stderr] 258 |             try!(source.consume(&Token::LeftParen));
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:259:26
[INFO] [stderr]     |
[INFO] [stderr] 259 |             let result = try!(self.parse_expression(source));
[INFO] [stderr]     |                          ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:260:13
[INFO] [stderr]     |
[INFO] [stderr] 260 |             try!(source.consume(&Token::RightParen));
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:305:13
[INFO] [stderr]     |
[INFO] [stderr] 305 |             try!(source.consume(&Token::Comma));
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:307:19
[INFO] [stderr]     |
[INFO] [stderr] 307 |             match try!(self.parse_expression(source)) {
[INFO] [stderr]     |                   ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:322:15
[INFO] [stderr]     |
[INFO] [stderr] 322 |         match try!(self.parse_expression(source)) {
[INFO] [stderr]     |               ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:336:13
[INFO] [stderr]     |
[INFO] [stderr] 336 |             try!(source.consume(&Token::LeftParen));
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:337:29
[INFO] [stderr]     |
[INFO] [stderr] 337 |             let arguments = try!(self.parse_function_args(source));
[INFO] [stderr]     |                             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:338:13
[INFO] [stderr]     |
[INFO] [stderr] 338 |             try!(source.consume(&Token::RightParen));
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:364:13
[INFO] [stderr]     |
[INFO] [stderr] 364 |             try!(source.consume(&Token::LeftBracket));
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:366:19
[INFO] [stderr]     |
[INFO] [stderr] 366 |             match try!(self.parse_expression(source)) {
[INFO] [stderr]     |                   ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:368:21
[INFO] [stderr]     |
[INFO] [stderr] 368 |                     try!(source.consume(&Token::RightBracket));
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:383:37
[INFO] [stderr]     |
[INFO] [stderr] 383 |         while let Some(predicate) = try!(self.parse_predicate_expression(source)) {
[INFO] [stderr]     |                                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:393:20
[INFO] [stderr]     |
[INFO] [stderr] 393 |         let axis = try!(self.parse_axis(source));
[INFO] [stderr]     |                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:395:31
[INFO] [stderr]     |
[INFO] [stderr] 395 |         let node_test = match try!(self.parse_node_test(source)) {
[INFO] [stderr]     |                               ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:397:21
[INFO] [stderr]     |
[INFO] [stderr] 397 |             None => try!(self.default_node_test(source, axis)),
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:405:26
[INFO] [stderr]     |
[INFO] [stderr] 405 |         let predicates = try!(self.parse_predicates(source));
[INFO] [stderr]     |                          ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:415:15
[INFO] [stderr]     |
[INFO] [stderr] 415 |         match try!(self.parse_step(source)) {
[INFO] [stderr]     |               ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:420:21
[INFO] [stderr]     |
[INFO] [stderr] 420 |                     try!(source.consume(&Token::Slash));
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:422:27
[INFO] [stderr]     |
[INFO] [stderr] 422 |                     match try!(self.parse_step(source)) {
[INFO] [stderr]     |                           ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:445:13
[INFO] [stderr]     |
[INFO] [stderr] 445 |             try!(source.consume(&Token::Slash));
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:448:19
[INFO] [stderr]     |
[INFO] [stderr] 448 |             match try!(self.parse_relative_location_path_raw(source, start_point)) {
[INFO] [stderr]     |                   ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:471:15
[INFO] [stderr]     |
[INFO] [stderr] 471 |         match try!(self.parse_primary_expression(source)) {
[INFO] [stderr]     |               ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:473:34
[INFO] [stderr]     |
[INFO] [stderr] 473 |                 let predicates = try!(self.parse_predicates(source));
[INFO] [stderr]     |                                  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:486:20
[INFO] [stderr]     |
[INFO] [stderr] 486 |         let expr = try!(self.parse_location_path(source));
[INFO] [stderr]     |                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:491:15
[INFO] [stderr]     |
[INFO] [stderr] 491 |         match try!(self.parse_filter_expression(source)) {
[INFO] [stderr]     |               ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:494:21
[INFO] [stderr]     |
[INFO] [stderr] 494 |                     try!(source.consume(&Token::Slash));
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:496:27
[INFO] [stderr]     |
[INFO] [stderr] 496 |                     match try!(self.parse_relative_location_path_raw(source, expr)) {
[INFO] [stderr]     |                           ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:521:20
[INFO] [stderr]     |
[INFO] [stderr] 521 |         let expr = try!(self.parse_union_expression(source));
[INFO] [stderr]     |                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:527:13
[INFO] [stderr]     |
[INFO] [stderr] 527 |             try!(source.consume(&Token::MinusSign));
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:529:24
[INFO] [stderr]     |
[INFO] [stderr] 529 |             let expr = try!(self.parse_unary_expression(source));
[INFO] [stderr]     |                        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/parser.rs:631:20
[INFO] [stderr]     |
[INFO] [stderr] 631 |         let expr = try!(self.parse_or_expression(&mut source));
[INFO] [stderr]     |                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/tokenizer.rs:372:21
[INFO] [stderr]     |
[INFO] [stderr] 372 |         let token = try!(self.raw_next_token());
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:339:22
[INFO] [stderr]     |
[INFO] [stderr] 339 | pub struct XPath(Box<expression::Expression + 'static>);
[INFO] [stderr]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn expression::Expression + 'static`
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stderr]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:414:40
[INFO] [stderr]     |
[INFO] [stderr] 414 |               fn cause(&self) -> Option<&std::error::Error> {
[INFO] [stderr]     |                                          ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn std::error::Error`
[INFO] [stderr] ...
[INFO] [stderr] 433 | / opaque_error!(
[INFO] [stderr] 434 | |     /// Errors that may occur when parsing an XPath
[INFO] [stderr] 435 | |     ParserError(parser::Error)
[INFO] [stderr] 436 | | );
[INFO] [stderr]     | |__- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stderr]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stderr]     = note: this warning originates in the macro `opaque_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:414:40
[INFO] [stderr]     |
[INFO] [stderr] 414 |               fn cause(&self) -> Option<&std::error::Error> {
[INFO] [stderr]     |                                          ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn std::error::Error`
[INFO] [stderr] ...
[INFO] [stderr] 438 | / opaque_error!(
[INFO] [stderr] 439 | |     /// Errors that may occur when executing an XPath
[INFO] [stderr] 440 | |     ExecutionError(expression::Error)
[INFO] [stderr] 441 | | );
[INFO] [stderr]     | |__- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stderr]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stderr]     = note: this warning originates in the macro `opaque_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]    --> src/lib.rs:411:24
[INFO] [stderr]     |
[INFO] [stderr] 411 |                   self.0.description()
[INFO] [stderr]     |                          ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 433 | / opaque_error!(
[INFO] [stderr] 434 | |     /// Errors that may occur when parsing an XPath
[INFO] [stderr] 435 | |     ParserError(parser::Error)
[INFO] [stderr] 436 | | );
[INFO] [stderr]     | |__- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `opaque_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stderr]    --> src/lib.rs:411:24
[INFO] [stderr]     |
[INFO] [stderr] 411 |                   self.0.description()
[INFO] [stderr]     |                          ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 438 | / opaque_error!(
[INFO] [stderr] 439 | |     /// Errors that may occur when executing an XPath
[INFO] [stderr] 440 | |     ExecutionError(expression::Error)
[INFO] [stderr] 441 | | );
[INFO] [stderr]     | |__- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `opaque_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stderr]    --> src/lib.rs:415:24
[INFO] [stderr]     |
[INFO] [stderr] 415 |                   self.0.cause()
[INFO] [stderr]     |                          ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 433 | / opaque_error!(
[INFO] [stderr] 434 | |     /// Errors that may occur when parsing an XPath
[INFO] [stderr] 435 | |     ParserError(parser::Error)
[INFO] [stderr] 436 | | );
[INFO] [stderr]     | |__- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `opaque_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stderr]    --> src/lib.rs:415:24
[INFO] [stderr]     |
[INFO] [stderr] 415 |                   self.0.cause()
[INFO] [stderr]     |                          ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 438 | / opaque_error!(
[INFO] [stderr] 439 | |     /// Errors that may occur when executing an XPath
[INFO] [stderr] 440 | |     ExecutionError(expression::Error)
[INFO] [stderr] 441 | | );
[INFO] [stderr]     | |__- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `opaque_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: 112 warnings emitted
[INFO] [stderr] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.04s
[INFO] [stderr]      Running unittests (/opt/rustwide/target/debug/deps/sxd_xpath-36767124897beec1)
[INFO] [stdout] 
[INFO] [stdout] running 235 tests
[INFO] [stdout] test axis::test::ancestor_includes_parents ... ok
[INFO] [stdout] test axis::test::ancestor_or_self_also_includes_self ... ok
[INFO] [stdout] test axis::test::descendant_includes_parents ... ok
[INFO] [stdout] test axis::test::descendant_or_self_also_includes_self ... ok
[INFO] [stdout] test axis::test::following_selects_in_document_order ... ok
[INFO] [stdout] test axis::test::following_sibling_selects_in_document_order ... ok
[INFO] [stdout] test axis::test::preceding_selects_in_reverse_document_order ... ok
[INFO] [stdout] test axis::test::preceding_sibling_selects_in_reverse_document_order ... ok
[INFO] [stdout] test expression::test::expression_and_short_circuits_when_left_argument_is_false ... ok
[INFO] [stdout] test expression::test::expression_and_returns_logical_and ... ok
[INFO] [stdout] test expression::test::expression_equal_compares_as_number_if_one_argument_is_a_number ... ok
[INFO] [stdout] test expression::test::expression_equal_compares_as_boolean_if_one_argument_is_a_boolean ... ok
[INFO] [stdout] test expression::test::expression_equal_compares_as_string_otherwise ... ok
[INFO] [stdout] test expression::test::expression_equal_intersects_string_values_of_two_nodesets ... ok
[INFO] [stdout] test expression::test::expression_function_unknown_function_is_reported_as_an_error ... ok
[INFO] [stdout] test expression::test::expression_math_does_basic_math ... ok
[INFO] [stdout] test expression::test::expression_function_evaluates_input_arguments ... ok
[INFO] [stdout] test expression::test::expression_relational_does_basic_comparisons ... ok
[INFO] [stdout] test expression::test::expression_root_node_finds_the_root ... ok
[INFO] [stdout] test expression::test::expression_not_equal_negates_equality ... ok
[INFO] [stdout] test expression::test::expression_equal_compares_number_value_of_nodeset_to_number ... ok
[INFO] [stdout] test expression::test::expression_variable_looks_up_the_variable ... ok
[INFO] [stdout] test expression::test::expression_union_combines_nodesets ... ok
[INFO] [stdout] test expression::test::expression_equal_compares_string_value_of_nodeset_to_string ... ok
[INFO] [stdout] test expression::test::filter_with_numeric_predicate_selects_that_node ... ok
[INFO] [stdout] test expression::test::filter_with_false_predicate_selects_no_nodes ... ok
[INFO] [stdout] test expression::test::step_delegates_to_the_axis ... ok
[INFO] [stdout] test function::test::boolean_converts_to_boolean ... ok
[INFO] [stdout] test function::test::ceiling_rounds_up ... ok
[INFO] [stdout] test function::test::concat_combines_strings ... ok
[INFO] [stdout] test function::test::contains_looks_for_a_needle ... ok
[INFO] [stdout] test function::test::count_counts_nodes_in_nodeset ... ok
[INFO] [stdout] test function::test::floor_rounds_down ... ok
[INFO] [stdout] test function::test::last_returns_context_size ... ok
[INFO] [stdout] test function::test::local_name_gets_name_of_element ... ok
[INFO] [stdout] test function::test::local_name_is_empty_for_empty_nodeset ... ok
[INFO] [stdout] test function::test::name_uses_declared_prefix ... ok
[INFO] [stdout] test function::test::normalize_space_removes_leading_space ... ok
[INFO] [stdout] test function::test::namespace_uri_gets_uri_of_element ... ok
[INFO] [stdout] test function::test::normalize_space_removes_trailing_space ... ok
[INFO] [stdout] test function::test::normalize_space_squashes_intermediate_space ... ok
[INFO] [stdout] test function::test::number_converts_to_number ... ok
[INFO] [stdout] test function::test::number_fails_with_nan ... ok
[INFO] [stdout] test function::test::position_returns_context_position ... ok
[INFO] [stdout] test function::test::round_nan_to_nan ... ok
[INFO] [stdout] test function::test::round_neg_five_to_neg_five ... ok
[INFO] [stdout] test function::test::round_neg_inf_to_neg_inf ... ok
[INFO] [stdout] test function::test::round_neg_zero_to_neg_zero ... ok
[INFO] [stdout] test function::test::round_neg_zero_point_five_to_neg_zero ... ok
[INFO] [stdout] test function::test::round_pos_inf_to_pos_inf ... ok
[INFO] [stdout] test function::test::round_pos_zero_point_five_to_pos_one ... ok
[INFO] [stdout] test function::test::round_pos_zero_to_pos_zero ... ok
[INFO] [stdout] test function::test::starts_with_checks_prefixes ... ok
[INFO] [stdout] test function::test::string_converts_to_string ... ok
[INFO] [stdout] test function::test::string_length_counts_characters ... ok
[INFO] [stdout] test function::test::substring_after_slices_after ... ok
[INFO] [stdout] test function::test::substring_before_slices_before ... ok
[INFO] [stdout] test function::test::substring_has_optional_length ... ok
[INFO] [stdout] test function::test::substring_is_a_window_of_the_characters ... ok
[INFO] [stdout] test function::test::substring_is_one_indexed ... ok
[INFO] [stdout] test function::test::substring_rounds_values ... ok
[INFO] [stdout] test function::test::substring_with_infinite_len_goes_to_end_of_string ... ok
[INFO] [stdout] test function::test::substring_with_negative_infinity_start_is_empty ... ok
[INFO] [stdout] test function::test::substring_with_nan_start_is_empty ... ok
[INFO] [stdout] test function::test::substring_with_nan_len_is_empty ... ok
[INFO] [stdout] test function::test::translate_ignores_extra_replacements ... ok
[INFO] [stdout] test function::test::sum_adds_up_nodeset ... ok
[INFO] [stdout] test function::test::translate_replaces_characters ... ok
[INFO] [stdout] test function::test::translate_removes_characters_without_replacement ... ok
[INFO] [stdout] test function::test::translate_replaces_each_char_only_once ... ok
[INFO] [stdout] test function::test::translate_uses_first_replacement ... ok
[INFO] [stdout] test node_test::test::attribute_test_does_not_match_when_attribute_has_namespace_but_without_prefix ... ok
[INFO] [stdout] test node_test::test::attribute_test_does_not_select_other_names ... ok
[INFO] [stdout] test node_test::test::attribute_test_ignores_namespace_when_wildcard_without_prefix ... ok
[INFO] [stdout] test node_test::test::attribute_test_matches_on_namespace_and_name ... ok
[INFO] [stdout] test node_test::test::attribute_test_matches_on_namespace_when_wildcard_with_prefix ... ok
[INFO] [stdout] test node_test::test::attribute_test_supports_a_wildcard_match ... ok
[INFO] [stdout] test node_test::test::attribute_test_selects_attributes_with_matching_names ... ok
[INFO] [stdout] test node_test::test::element_test_does_not_match_when_element_has_namespace_but_without_prefix ... ok
[INFO] [stdout] test node_test::test::element_test_does_not_select_other_names ... ok
[INFO] [stdout] test node_test::test::element_test_ignores_namespace_when_wildcard_without_prefix ... ok
[INFO] [stdout] test node_test::test::element_test_matches_on_namespace_and_name ... ok
[INFO] [stdout] test node_test::test::element_test_selects_nodes_with_matching_names ... ok
[INFO] [stdout] test node_test::test::element_test_matches_on_namespace_when_wildcard_with_prefix ... ok
[INFO] [stdout] test node_test::test::element_test_supports_a_wildcard_match ... ok
[INFO] [stdout] test nodeset::test::nodeset_can_include_all_node_types ... ok
[INFO] [stdout] test nodeset::test::attributes_come_before_children_in_document_order ... ok
[INFO] [stdout] test nodeset::test::nodeset_knows_first_node_in_document_order ... ok
[INFO] [stdout] test nodeset::test::nodesets_can_be_combined ... ok
[INFO] [stdout] test nodeset::test::prefixed_name_of_attribute_with_preferred_prefix ... ok
[INFO] [stdout] test nodeset::test::prefixed_name_of_attribute_with_prefix ... ok
[INFO] [stdout] test nodeset::test::prefixed_name_of_element_with_preferred_prefix ... ok
[INFO] [stdout] test nodeset::test::prefixed_name_of_element_without_prefix ... ok
[INFO] [stdout] test nodeset::test::prefixed_name_of_processing_instruction ... ok
[INFO] [stdout] test nodeset::test::prefixed_name_of_element_with_prefix ... ok
[INFO] [stdout] test nodeset::test::string_value_of_attribute_node_is_value ... ok
[INFO] [stdout] test nodeset::test::string_value_of_comment_node_is_the_text ... ok
[INFO] [stdout] test nodeset::test::string_value_of_element_node_is_concatenation_of_descendant_text_nodes ... ok
[INFO] [stdout] test nodeset::test::string_value_of_pi_node_is_empty_when_no_value ... ok
[INFO] [stdout] test nodeset::test::string_value_of_pi_node_is_the_value_when_value ... ok
[INFO] [stdout] test nodeset::test::string_value_of_text_node_is_the_text ... ok
[INFO] [stdout] test parser::test::a_tokenizer_error_is_reported_as_an_error ... ok
[INFO] [stdout] test parser::test::absolute_path_expression ... ok
[INFO] [stdout] test parser::test::addition_of_multiple_numbers ... ok
[INFO] [stdout] test parser::test::absolute_path_with_child_expression ... ok
[INFO] [stdout] test parser::test::additive_expression_is_left_associative ... ok
[INFO] [stdout] test parser::test::addition_of_two_numbers ... ok
[INFO] [stdout] test parser::test::binary_operator_without_right_hand_side_is_reported_as_an_error ... ok
[INFO] [stdout] test parser::test::division_of_two_numbers ... ok
[INFO] [stdout] test parser::test::and_expression ... ok
[INFO] [stdout] test parser::test::empty_predicate_is_reported_as_an_error ... ok
[INFO] [stdout] test parser::test::false_function_predicate_selects_no_nodes ... ok
[INFO] [stdout] test parser::test::equality_expression ... ok
[INFO] [stdout] test parser::test::filter_expression_and_relative_path ... ok
[INFO] [stdout] test parser::test::filter_expression ... ok
[INFO] [stdout] test parser::test::greater_than_expression ... ok
[INFO] [stdout] test parser::test::greater_than_or_equal_expression ... ok
[INFO] [stdout] test parser::test::functions_accept_any_expression_as_an_argument ... ok
[INFO] [stdout] test parser::test::inequality_expression ... ok
[INFO] [stdout] test parser::test::filter_expression_with_trailing_slash_is_reported_as_an_error ... ok
[INFO] [stdout] test parser::test::less_than_or_equal_expression ... ok
[INFO] [stdout] test parser::test::having_extra_tokens_is_reported_as_an_error ... ok
[INFO] [stdout] test parser::test::multiple_predicates ... ok
[INFO] [stdout] test parser::test::multiplication_of_two_numbers ... ok
[INFO] [stdout] test parser::test::less_than_expression ... ok
[INFO] [stdout] test parser::test::nested_expression ... ok
[INFO] [stdout] test parser::test::numeric_literal ... ok
[INFO] [stdout] test parser::test::parses_attribute_axis ... ok
[INFO] [stdout] test parser::test::parses_axis_and_node_test ... ok
[INFO] [stdout] test parser::test::parses_child_axis ... ok
[INFO] [stdout] test parser::test::parses_string_as_child ... ok
[INFO] [stdout] test parser::test::functions_accept_arguments ... ok
[INFO] [stdout] test parser::test::parses_comment_node_test ... ok
[INFO] [stdout] test parser::test::parses_node_node_test ... ok
[INFO] [stdout] test parser::test::parses_parent_axis ... ok
[INFO] [stdout] test parser::test::parses_self_axis ... ok
[INFO] [stdout] test parser::test::unary_negation ... ok
[INFO] [stdout] test parser::test::predicate_accepts_any_expression ... ok
[INFO] [stdout] test parser::test::subtraction_of_two_numbers ... ok
[INFO] [stdout] test parser::test::top_level_function_call ... ok
[INFO] [stdout] test parser::test::variable_reference ... ok
[INFO] [stdout] test parser::test::union_expression ... ok
[INFO] [stdout] test parser::test::parses_child_with_same_name_as_an_axis ... ok
[INFO] [stdout] test parser::test::parses_descendant_axis ... ok
[INFO] [stdout] test parser::test::repeated_unary_negation ... ok
[INFO] [stdout] test test::number_of_garbage_string_is_nan ... ok
[INFO] [stdout] test test::number_of_boolean_false_is_0 ... ok
[INFO] [stdout] test test::number_of_string_is_ieee_754_number ... ok
[INFO] [stdout] test test::number_of_nodeset_is_number_value_of_first_node_in_document_order ... ok
[INFO] [stdout] test test::number_of_string_with_negative_is_negative_number ... ok
[INFO] [stdout] test parser::test::parses_text_node_test ... ok
[INFO] [stdout] test parser::test::variable_reference_prefixed_name ... ok
[INFO] [stdout] test tokenizer::test::converts_at_sign_to_attribute_axis ... ok
[INFO] [stdout] test tokenizer::test::converts_current_node_to_self_node ... ok
[INFO] [stdout] test test::xpath_evaluation_parsing_error ... ok
[INFO] [stdout] test parser::test::string_literal ... ok
[INFO] [stdout] test test::xpath_evaluation_success ... ok
[INFO] [stdout] test parser::test::unexpected_token_is_reported_as_an_error ... ok
[INFO] [stdout] test parser::test::parses_descendant_or_self_axis ... ok
[INFO] [stdout] test parser::test::unary_operator_without_right_hand_side_is_reported_as_an_error ... ok
[INFO] [stdout] test test::number_of_string_with_surrounding_whitespace_is_number_without_whitespace ... ok
[INFO] [stdout] test tokenizer::test::special_preceding_token_forces_named_operator_div ... ok
[INFO] [stdout] test tokenizer::test::special_preceding_token_forces_named_operator_mod ... ok
[INFO] [stdout] test tokenizer::test::special_preceding_token_forces_named_operator_multiply ... ok
[INFO] [stdout] test tokenizer::test::tokenizes_apostrophe_literal ... ok
[INFO] [stdout] test tokenizer::test::tokenizes_at_sign ... ok
[INFO] [stdout] test tokenizer::test::special_preceding_token_forces_named_operator_or ... ok
[INFO] [stdout] test tokenizer::test::tokenizes_axis_selector ... ok
[INFO] [stdout] test tokenizer::test::tokenizes_decimal_number ... ok
[INFO] [stdout] test tokenizer::test::tokenizes_axis_selector_that_contains_another_axis ... ok
[INFO] [stdout] test tokenizer::test::tokenizes_decimal_number_without_integral_part ... ok
[INFO] [stdout] test tokenizer::test::tokenizes_double_dot ... ok
[INFO] [stdout] test tokenizer::test::tokenizes_double_quote_literal ... ok
[INFO] [stdout] test tokenizer::test::tokenizes_double_slash ... ok
[INFO] [stdout] test tokenizer::test::tokenizes_double_slash_separator ... ok
[INFO] [stdout] test tokenizer::test::tokenizes_equal_sign ... ok
[INFO] [stdout] test tokenizer::test::tokenizes_function_call ... ok
[INFO] [stdout] test tokenizer::test::tokenizes_function_call_with_argument ... ok
[INFO] [stdout] test tokenizer::test::tokenizes_function_call_with_multiple_arguments ... ok
[INFO] [stdout] test tokenizer::test::tokenizes_function_call_with_prefixed_name ... ok
[INFO] [stdout] test tokenizer::test::tokenizes_grandchild_selector ... ok
[INFO] [stdout] test test::string_of_false_is_false ... ok
[INFO] [stdout] test tokenizer::test::tokenizes_great_grandchild_selector ... ok
[INFO] [stdout] test tokenizer::test::tokenizes_greater_than_or_equal ... ok
[INFO] [stdout] test tokenizer::test::tokenizes_integral_number ... ok
[INFO] [stdout] test tokenizer::test::tokenizes_left_bracket ... ok
[INFO] [stdout] test tokenizer::test::tokenizes_less_than ... ok
[INFO] [stdout] test tokenizer::test::tokenizes_minus_sign ... ok
[INFO] [stdout] test tokenizer::test::tokenizes_less_than_or_equal ... ok
[INFO] [stdout] test tokenizer::test::tokenizes_node_test_without_args ... ok
[INFO] [stdout] test test::string_of_integer_has_no_decimal ... ok
[INFO] [stdout] test test::string_of_nan_is_nan ... ok
[INFO] [stdout] test test::string_of_negative_infinity_is_minus_infinity ... ok
[INFO] [stdout] test tokenizer::test::tokenizes_plus_sign ... ok
[INFO] [stdout] test test::string_of_positive_infinity_is_infinity ... ok
[INFO] [stdout] test tokenizer::test::tokenizes_processing_instruction_node_test_with_args ... ok
[INFO] [stdout] test tokenizer::test::tokenizes_qualified_names ... ok
[INFO] [stdout] test tokenizer::test::tokenizes_processing_instruction_node_test_without_args ... ok
[INFO] [stdout] test test::string_of_positive_zero_is_zero ... ok
[INFO] [stdout] test test::string_of_true_is_true ... ok
[INFO] [stdout] test tokenizer::test::tokenizes_right_paren ... ok
[INFO] [stdout] test tokenizer::test::tokenizes_right_bracket ... ok
[INFO] [stdout] test tokenizer::test::tokenizes_simple_string ... ok
[INFO] [stdout] test tokenizer::test::converts_double_slash_to_descendant_or_self ... ok
[INFO] [stdout] test tokenizer::test::tokenizes_not_equal_sign ... ok
[INFO] [stdout] test tokenizer::test::tokenizes_wildcard_name_test ... ok
[INFO] [stdout] test tokenizer::test::empty_string_has_no_tokens ... ok
[INFO] [stdout] test test::number_of_boolean_true_is_1 ... ok
[INFO] [stdout] test parser::test::parses_processing_instruction_node_test ... ok
[INFO] [stdout] test tokenizer::test::exception_thrown_when_name_test_has_no_local_name ... ok
[INFO] [stdout] test tokenizer::test::exception_thrown_when_quote_characters_mismatched ... ok
[INFO] [stdout] test tokenizer::test::exception_thrown_when_nothing_was_tokenized ... ok
[INFO] [stdout] test tokenizer::test::tokenizes_greater_than ... ok
[INFO] [stdout] test test::string_of_decimal_has_fractional_part ... ok
[INFO] [stdout] test tokenizer::test::tokenizes_single_dot ... ok
[INFO] [stdout] test test::string_of_nodeset_is_string_value_of_first_node_in_document_order ... ok
[INFO] [stdout] test tokenizer::test::ignores_whitespace_around_tokens ... ok
[INFO] [stdout] test tokenizer::test::special_preceding_token_forces_named_operator_and ... ok
[INFO] [stdout] test parser::test::running_out_of_input_is_reported_as_an_error ... ok
[INFO] [stdout] test parser::test::parses_namespace_axis ... ok
[INFO] [stdout] test tokenizer::test::tokenizes_left_paren ... ok
[INFO] [stdout] test tokenizer::test::converts_parent_node_to_parent_node ... ok
[INFO] [stdout] test tokenizer::test::tokenizes_variable_reference ... ok
[INFO] [stdout] test tokenizer::test::tokenizes_variable_reference_prefixed_name ... ok
[INFO] [stdout] test parser::test::numeric_predicate_selects_indexed_node ... ok
[INFO] [stdout] test parser::test::relative_path_with_trailing_slash_is_reported_as_an_error ... ok
[INFO] [stdout] test parser::test::or_expression ... ok
[INFO] [stdout] test tokenizer::test::tokenizes_pipe ... ok
[INFO] [stdout] test parser::test::remainder_of_two_numbers ... ok
[INFO] [stdout] test tokenizer::test::tokenizes_single_slash ... ok
[INFO] [stdout] test parser::test::parses_two_strings_as_grandchild ... ok
[INFO] [stdout] test test::xpath_evaluation_no_xpath_error ... ok
[INFO] [stdout] test test::xpath_evaluation_execution_error ... ok
[INFO] [stdout] test parser::test::true_function_predicate_selects_all_nodes ... ok
[INFO] [stdout] test test::string_of_negative_zero_is_zero ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- test::string_of_negative_zero_is_zero stdout ----
[INFO] [stdout] thread 'test::string_of_negative_zero_is_zero' panicked at 'assertion failed: `(left == right)`
[INFO] [stdout]   left: `"0"`,
[INFO] [stdout]  right: `"-0"`', src/lib.rs:588:9
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x558332643a80 - std::backtrace_rs::backtrace::libunwind::trace::h34055254b57d8e79
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/../../backtrace/src/backtrace/libunwind.rs:90:5
[INFO] [stdout]    1:     0x558332643a80 - std::backtrace_rs::backtrace::trace_unsynchronized::h8f1e3fbd9afff6ec
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
[INFO] [stdout]    2:     0x558332643a80 - std::sys_common::backtrace::_print_fmt::h3a99a796b770c360
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/sys_common/backtrace.rs:67:5
[INFO] [stdout]    3:     0x558332643a80 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h32d1f94a80615d18
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/sys_common/backtrace.rs:46:22
[INFO] [stdout]    4:     0x55833266743c - core::fmt::write::h306731c068f7162c
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/core/src/fmt/mod.rs:1110:17
[INFO] [stdout]    5:     0x5583326409a5 - std::io::Write::write_fmt::h87f19b0a2cd190bc
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/io/mod.rs:1588:15
[INFO] [stdout]    6:     0x558332645beb - std::sys_common::backtrace::_print::h5abaa2601a852287
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/sys_common/backtrace.rs:49:5
[INFO] [stdout]    7:     0x558332645beb - std::sys_common::backtrace::print::h8d81445442bb638f
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/sys_common/backtrace.rs:36:9
[INFO] [stdout]    8:     0x558332645beb - std::panicking::default_hook::{{closure}}::hcfe804496a9fa747
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panicking.rs:208:50
[INFO] [stdout]    9:     0x5583326456fc - std::panicking::default_hook::hbea8e3ccf2ba8901
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panicking.rs:222:9
[INFO] [stdout]   10:     0x5583326462b4 - std::panicking::rust_panic_with_hook::h7ee9e1a2d0f8975a
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panicking.rs:622:17
[INFO] [stdout]   11:     0x558332645d97 - std::panicking::begin_panic_handler::{{closure}}::h8ab3b4491718b2c7
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panicking.rs:519:13
[INFO] [stdout]   12:     0x558332643f7c - std::sys_common::backtrace::__rust_end_short_backtrace::hd489062ffa586a9f
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/sys_common/backtrace.rs:141:18
[INFO] [stdout]   13:     0x558332645cf9 - rust_begin_unwind
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panicking.rs:515:5
[INFO] [stdout]   14:     0x5583324646d1 - core::panicking::panic_fmt::hca6330e3e14086b4
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/core/src/panicking.rs:92:14
[INFO] [stdout]   15:     0x558332665d28 - core::panicking::assert_failed_inner::h33b45280069a80ed
[INFO] [stdout]   16:     0x558332479e1e - core::panicking::assert_failed::h83831a811cec2e1d
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/core/src/panicking.rs:117:5
[INFO] [stdout]   17:     0x55833252c9cb - sxd_xpath::test::string_of_negative_zero_is_zero::h6ed0215ba3fcce4b
[INFO] [stdout]                                at /opt/rustwide/workdir/src/lib.rs:588:9
[INFO] [stdout]   18:     0x55833252c8aa - sxd_xpath::test::string_of_negative_zero_is_zero::{{closure}}::h768789cd4b4e8226
[INFO] [stdout]                                at /opt/rustwide/workdir/src/lib.rs:586:5
[INFO] [stdout]   19:     0x55833251175e - core::ops::function::FnOnce::call_once::ha0b6a5a1f6e6d5be
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/core/src/ops/function.rs:227:5
[INFO] [stdout]   20:     0x55833256ff93 - core::ops::function::FnOnce::call_once::h152e7e439ff59e19
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/core/src/ops/function.rs:227:5
[INFO] [stdout]   21:     0x55833256ff93 - test::__rust_begin_short_backtrace::h0908f3b1fdbb72ab
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/test/src/lib.rs:577:5
[INFO] [stdout]   22:     0x55833256ea50 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hf6d2a51e5587546c
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/alloc/src/boxed.rs:1575:9
[INFO] [stdout]   23:     0x55833256ea50 - <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h8af660f3a89ef593
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panic.rs:347:9
[INFO] [stdout]   24:     0x55833256ea50 - std::panicking::try::do_call::hd36aef60f84b6d36
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panicking.rs:401:40
[INFO] [stdout]   25:     0x55833256ea50 - std::panicking::try::h9932b4480e69817c
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panicking.rs:365:19
[INFO] [stdout]   26:     0x55833256ea50 - std::panic::catch_unwind::h6aa177099cfff5f8
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panic.rs:434:14
[INFO] [stdout]   27:     0x55833256ea50 - test::run_test_in_process::h5884d6f2d99e20c3
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/test/src/lib.rs:600:18
[INFO] [stdout]   28:     0x55833256ea50 - test::run_test::run_test_inner::{{closure}}::h6fdc58c6d5f5b6e3
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/test/src/lib.rs:492:39
[INFO] [stdout]   29:     0x558332548102 - test::run_test::run_test_inner::{{closure}}::h408365d67a78ade8
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/test/src/lib.rs:519:37
[INFO] [stdout]   30:     0x558332548102 - std::sys_common::backtrace::__rust_begin_short_backtrace::hb560b77c4f701523
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/sys_common/backtrace.rs:125:18
[INFO] [stdout]   31:     0x55833254bcb8 - std::thread::Builder::spawn_unchecked::{{closure}}::{{closure}}::hf2e7831dad93c597
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/thread/mod.rs:481:17
[INFO] [stdout]   32:     0x55833254bcb8 - <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hd2e08783d8be4d02
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panic.rs:347:9
[INFO] [stdout]   33:     0x55833254bcb8 - std::panicking::try::do_call::h062597b7acfd6b82
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panicking.rs:401:40
[INFO] [stdout]   34:     0x55833254bcb8 - std::panicking::try::h0d7b79db04c14552
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panicking.rs:365:19
[INFO] [stdout]   35:     0x55833254bcb8 - std::panic::catch_unwind::hb01a0b5e7c8cd43b
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panic.rs:434:14
[INFO] [stdout]   36:     0x55833254bcb8 - std::thread::Builder::spawn_unchecked::{{closure}}::h5bde48cc887e0d1e
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/thread/mod.rs:480:30
[INFO] [stdout]   37:     0x55833254bcb8 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h745ea30807a29e55
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/core/src/ops/function.rs:227:5
[INFO] [stdout]   38:     0x55833264ad77 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h7ece6cfefaff1005
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/alloc/src/boxed.rs:1575:9
[INFO] [stdout]   39:     0x55833264ad77 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hb8b48e55c21f193e
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/alloc/src/boxed.rs:1575:9
[INFO] [stdout]   40:     0x55833264ad77 - std::sys::unix::thread::Thread::new::thread_start::h8c7c4450dba62914
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/sys/unix/thread.rs:71:17
[INFO] [stdout]   41:     0x7fe2d1b4d609 - start_thread
[INFO] [stdout]   42:     0x7fe2d191f293 - clone
[INFO] [stdout]   43:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     test::string_of_negative_zero_is_zero
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 234 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass '--lib'
[INFO] running `Command { std: "docker" "inspect" "89131dc687bfbf3f60cb772b9f727a793bab90aa380e201c05b8dfcc6b6f3fd4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "89131dc687bfbf3f60cb772b9f727a793bab90aa380e201c05b8dfcc6b6f3fd4", kill_on_drop: false }`
[INFO] [stdout] 89131dc687bfbf3f60cb772b9f727a793bab90aa380e201c05b8dfcc6b6f3fd4
