[INFO] fetching crate townhopper 0.1.1...
[INFO] checking townhopper-0.1.1 against a5689b034ad287112f709693384a37f1377eb9cc for pr-129249-3
[INFO] extracting crate townhopper 0.1.1 into /workspace/builds/worker-6-tc2/source
[INFO] started tweaking crates.io crate townhopper 0.1.1
[INFO] finished tweaking crates.io crate townhopper 0.1.1
[INFO] tweaked toml for crates.io crate townhopper 0.1.1 written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate townhopper 0.1.1 on toolchain a5689b034ad287112f709693384a37f1377eb9cc
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 66 packages to highest compatible versions
[INFO] [stderr]       Adding chrono-tz v0.5.3 (available: v0.10.4)
[INFO] [stderr]       Adding rusqlite v0.19.0 (available: v0.40.2)
[INFO] [stderr]       Adding wasi v0.10.0+wasi-snapshot-preview1 (available: v0.10.2+wasi-snapshot-preview1)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] a1340dfe820bda9391ccd44173ed6c45fc68a6a7039df69198d1219b5ea6196f
[INFO] running `Command { std: "docker" "start" "a1340dfe820bda9391ccd44173ed6c45fc68a6a7039df69198d1219b5ea6196f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a1340dfe820bda9391ccd44173ed6c45fc68a6a7039df69198d1219b5ea6196f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "a1340dfe820bda9391ccd44173ed6c45fc68a6a7039df69198d1219b5ea6196f" "/opt/rustwide/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a1340dfe820bda9391ccd44173ed6c45fc68a6a7039df69198d1219b5ea6196f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "a1340dfe820bda9391ccd44173ed6c45fc68a6a7039df69198d1219b5ea6196f" "/opt/rustwide/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling aho-corasick v1.1.5
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]     Checking linked-hash-map v0.5.6
[INFO] [stderr]     Checking fallible-iterator v0.2.0
[INFO] [stderr]    Compiling libsqlite3-sys v0.15.0
[INFO] [stderr]     Checking csv-core v0.1.13
[INFO] [stderr]     Checking fallible-streaming-iterator v0.1.9
[INFO] [stderr]     Checking unidecode v0.3.0
[INFO] [stderr]     Checking time v0.1.45
[INFO] [stderr]    Compiling syn v3.0.9
[INFO] [stderr]     Checking lru-cache v0.1.2
[INFO] [stderr]     Checking rusqlite v0.19.0
[INFO] [stderr]    Compiling regex-automata v0.4.18
[INFO] [stderr]     Checking csv v1.4.0
[INFO] [stderr]     Checking serde v1.0.229
[INFO] [stderr]    Compiling regex v1.13.1
[INFO] [stderr]    Compiling parse-zoneinfo v0.3.1
[INFO] [stderr]    Compiling chrono-tz v0.5.3
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]     Checking townhopper v0.1.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]  --> src/lib.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[macro_use]
[INFO] [stdout]   | ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/db/import.rs:25:41
[INFO] [stdout]    |
[INFO] [stdout] 25 |     let mut rows = stmt.query(&[] as &[&ToSql])?;
[INFO] [stdout]    |                                         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 25 |     let mut rows = stmt.query(&[] as &[&dyn ToSql])?;
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/db/import.rs:46:41
[INFO] [stdout]    |
[INFO] [stdout] 46 |         stmt.execute(&[&a.agency_id as &ToSql, &a.agency_name, &a.agency_timezone.name()])?;
[INFO] [stdout]    |                                         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 46 |         stmt.execute(&[&a.agency_id as &dyn ToSql, &a.agency_name, &a.agency_timezone.name()])?;
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/db/import.rs:57:42
[INFO] [stdout]    |
[INFO] [stdout] 57 |         stmt.execute(&[&c.service_id as &ToSql,
[INFO] [stdout]    |                                          ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 57 |         stmt.execute(&[&c.service_id as &dyn ToSql,
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/db/import.rs:69:42
[INFO] [stdout]    |
[INFO] [stdout] 69 |         stmt.execute(&[&d.service_id as &ToSql, &conv::to_db_date(&d.date), &d.exception_type])?;
[INFO] [stdout]    |                                          ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 69 |         stmt.execute(&[&d.service_id as &dyn ToSql, &conv::to_db_date(&d.date), &d.exception_type])?;
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/db/import.rs:79:40
[INFO] [stdout]    |
[INFO] [stdout] 79 |         stmt.execute(&[&r.route_id as &ToSql, &r.agency_id,
[INFO] [stdout]    |                                        ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 79 |         stmt.execute(&[&r.route_id as &dyn ToSql, &r.agency_id,
[INFO] [stdout]    |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/db/import.rs:90:39
[INFO] [stdout]    |
[INFO] [stdout] 90 |         stmt.execute(&[&s.stop_id as &ToSql, &s.stop_name, &slug(&s.stop_name),
[INFO] [stdout]    |                                       ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 90 |         stmt.execute(&[&s.stop_id as &dyn ToSql, &s.stop_name, &slug(&s.stop_name),
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/db/import.rs:101:39
[INFO] [stdout]     |
[INFO] [stdout] 101 |         stmt.execute(&[&t.trip_id as &ToSql,
[INFO] [stdout]     |                                       ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 101 |         stmt.execute(&[&t.trip_id as &dyn ToSql,
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/db/import.rs:113:40
[INFO] [stdout]     |
[INFO] [stdout] 113 |         stmt.execute(&[&t.route_id as &ToSql, &t.service_id, &t.trip_id, &t.direction_id,
[INFO] [stdout]     |                                        ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 113 |         stmt.execute(&[&t.route_id as &dyn ToSql, &t.service_id, &t.trip_id, &t.direction_id,
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::NaiveTime::from_hms`: use `from_hms_opt()` instead
[INFO] [stdout]   --> src/db/conv.rs:19:31
[INFO] [stdout]    |
[INFO] [stdout] 19 |     (*local_time - NaiveTime::from_hms(0, 0, 0)).num_seconds()
[INFO] [stdout]    |                               ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]  --> src/lib.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[macro_use]
[INFO] [stdout]   | ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/db/mod.rs:41:54
[INFO] [stdout]    |
[INFO] [stdout] 41 |     c.execute("PRAGMA foreign_keys = ON;", &[] as &[&ToSql]).map(|_| ()).map_err(|e| e.into())
[INFO] [stdout]    |                                                      ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 41 |     c.execute("PRAGMA foreign_keys = ON;", &[] as &[&dyn ToSql]).map(|_| ()).map_err(|e| e.into())
[INFO] [stdout]    |                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/db/mod.rs:45:55
[INFO] [stdout]    |
[INFO] [stdout] 45 |     c.execute("PRAGMA foreign_keys = OFF;", &[] as &[&ToSql]).map(|_| ()).map_err(|e| e.into())
[INFO] [stdout]    |                                                       ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 45 |     c.execute("PRAGMA foreign_keys = OFF;", &[] as &[&dyn ToSql]).map(|_| ()).map_err(|e| e.into())
[INFO] [stdout]    |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/db/mod.rs:49:35
[INFO] [stdout]    |
[INFO] [stdout] 49 |     c.execute("BEGIN;", &[] as &[&ToSql]).map(|_| ()).map_err(|e| e.into())
[INFO] [stdout]    |                                   ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 49 |     c.execute("BEGIN;", &[] as &[&dyn ToSql]).map(|_| ()).map_err(|e| e.into())
[INFO] [stdout]    |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/db/mod.rs:53:33
[INFO] [stdout]    |
[INFO] [stdout] 53 |     c.execute("END;", &[] as &[&ToSql]).map(|_| ()).map_err(|e| e.into())
[INFO] [stdout]    |                                 ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 53 |     c.execute("END;", &[] as &[&dyn ToSql]).map(|_| ()).map_err(|e| e.into())
[INFO] [stdout]    |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/db/import.rs:25:41
[INFO] [stdout]    |
[INFO] [stdout] 25 |     let mut rows = stmt.query(&[] as &[&ToSql])?;
[INFO] [stdout]    |                                         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 25 |     let mut rows = stmt.query(&[] as &[&dyn ToSql])?;
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/db/import.rs:46:41
[INFO] [stdout]    |
[INFO] [stdout] 46 |         stmt.execute(&[&a.agency_id as &ToSql, &a.agency_name, &a.agency_timezone.name()])?;
[INFO] [stdout]    |                                         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 46 |         stmt.execute(&[&a.agency_id as &dyn ToSql, &a.agency_name, &a.agency_timezone.name()])?;
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/db/import.rs:57:42
[INFO] [stdout]    |
[INFO] [stdout] 57 |         stmt.execute(&[&c.service_id as &ToSql,
[INFO] [stdout]    |                                          ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 57 |         stmt.execute(&[&c.service_id as &dyn ToSql,
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/db/import.rs:69:42
[INFO] [stdout]    |
[INFO] [stdout] 69 |         stmt.execute(&[&d.service_id as &ToSql, &conv::to_db_date(&d.date), &d.exception_type])?;
[INFO] [stdout]    |                                          ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 69 |         stmt.execute(&[&d.service_id as &dyn ToSql, &conv::to_db_date(&d.date), &d.exception_type])?;
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/db/import.rs:79:40
[INFO] [stdout]    |
[INFO] [stdout] 79 |         stmt.execute(&[&r.route_id as &ToSql, &r.agency_id,
[INFO] [stdout]    |                                        ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 79 |         stmt.execute(&[&r.route_id as &dyn ToSql, &r.agency_id,
[INFO] [stdout]    |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/db/import.rs:90:39
[INFO] [stdout]    |
[INFO] [stdout] 90 |         stmt.execute(&[&s.stop_id as &ToSql, &s.stop_name, &slug(&s.stop_name),
[INFO] [stdout]    |                                       ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 90 |         stmt.execute(&[&s.stop_id as &dyn ToSql, &s.stop_name, &slug(&s.stop_name),
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/db/import.rs:101:39
[INFO] [stdout]     |
[INFO] [stdout] 101 |         stmt.execute(&[&t.trip_id as &ToSql,
[INFO] [stdout]     |                                       ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 101 |         stmt.execute(&[&t.trip_id as &dyn ToSql,
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/db/import.rs:113:40
[INFO] [stdout]     |
[INFO] [stdout] 113 |         stmt.execute(&[&t.route_id as &ToSql, &t.service_id, &t.trip_id, &t.direction_id,
[INFO] [stdout]     |                                        ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 113 |         stmt.execute(&[&t.route_id as &dyn ToSql, &t.service_id, &t.trip_id, &t.direction_id,
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/db/import.rs:157:58
[INFO] [stdout]     |
[INFO] [stdout] 157 |         let actual_count: i32 = stmt.query_map(&[] as &[&ToSql], |row| row.get(0))
[INFO] [stdout]     |                                                          ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 157 |         let actual_count: i32 = stmt.query_map(&[] as &[&dyn ToSql], |row| row.get(0))
[INFO] [stdout]     |                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::NaiveTime::from_hms`: use `from_hms_opt()` instead
[INFO] [stdout]   --> src/db/conv.rs:19:31
[INFO] [stdout]    |
[INFO] [stdout] 19 |     (*local_time - NaiveTime::from_hms(0, 0, 0)).num_seconds()
[INFO] [stdout]    |                               ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/db/mod.rs:41:54
[INFO] [stdout]    |
[INFO] [stdout] 41 |     c.execute("PRAGMA foreign_keys = ON;", &[] as &[&ToSql]).map(|_| ()).map_err(|e| e.into())
[INFO] [stdout]    |                                                      ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 41 |     c.execute("PRAGMA foreign_keys = ON;", &[] as &[&dyn ToSql]).map(|_| ()).map_err(|e| e.into())
[INFO] [stdout]    |                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/db/mod.rs:45:55
[INFO] [stdout]    |
[INFO] [stdout] 45 |     c.execute("PRAGMA foreign_keys = OFF;", &[] as &[&ToSql]).map(|_| ()).map_err(|e| e.into())
[INFO] [stdout]    |                                                       ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 45 |     c.execute("PRAGMA foreign_keys = OFF;", &[] as &[&dyn ToSql]).map(|_| ()).map_err(|e| e.into())
[INFO] [stdout]    |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/db/mod.rs:49:35
[INFO] [stdout]    |
[INFO] [stdout] 49 |     c.execute("BEGIN;", &[] as &[&ToSql]).map(|_| ()).map_err(|e| e.into())
[INFO] [stdout]    |                                   ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 49 |     c.execute("BEGIN;", &[] as &[&dyn ToSql]).map(|_| ()).map_err(|e| e.into())
[INFO] [stdout]    |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/db/mod.rs:53:33
[INFO] [stdout]    |
[INFO] [stdout] 53 |     c.execute("END;", &[] as &[&ToSql]).map(|_| ()).map_err(|e| e.into())
[INFO] [stdout]    |                                 ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 53 |     c.execute("END;", &[] as &[&dyn ToSql]).map(|_| ()).map_err(|e| e.into())
[INFO] [stdout]    |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::NaiveDate::from_ymd`: use `from_ymd_opt()` instead
[INFO] [stdout]   --> src/gtfs/calendar.rs:47:56
[INFO] [stdout]    |
[INFO] [stdout] 47 |         assert_eq!(calendars[0].start_date, NaiveDate::from_ymd(2009, 1, 1));
[INFO] [stdout]    |                                                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::NaiveDate::from_ymd`: use `from_ymd_opt()` instead
[INFO] [stdout]   --> src/gtfs/calendar.rs:48:54
[INFO] [stdout]    |
[INFO] [stdout] 48 |         assert_eq!(calendars[0].end_date, NaiveDate::from_ymd(2009, 12, 31));
[INFO] [stdout]    |                                                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::NaiveDate::and_hms`: use `and_hms_opt()` instead
[INFO] [stdout]    --> src/query/itinerary.rs:147:39
[INFO] [stdout]     |
[INFO] [stdout] 147 |             departure_time: dt.date().and_hms(0, 0, 0) + Duration::seconds(departure_time),
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::NaiveDate::and_hms`: use `and_hms_opt()` instead
[INFO] [stdout]    --> src/query/itinerary.rs:149:37
[INFO] [stdout]     |
[INFO] [stdout] 149 |             arrival_time: dt.date().and_hms(0, 0, 0) + Duration::seconds(arrival_time),
[INFO] [stdout]     |                                     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::NaiveDate::from_ymd`: use `from_ymd_opt()` instead
[INFO] [stdout]   --> src/gtfs/calendar_date.rs:35:46
[INFO] [stdout]    |
[INFO] [stdout] 35 |         assert_eq!(dates[0].date, NaiveDate::from_ymd(2009, 9, 28));
[INFO] [stdout]    |                                              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::NaiveDateTime::from_timestamp`: use `DateTime::from_timestamp` instead
[INFO] [stdout]   --> src/model/itinerary_query.rs:94:49
[INFO] [stdout]    |
[INFO] [stdout] 94 |             .set_departure_time(&NaiveDateTime::from_timestamp(1546185340, 0))
[INFO] [stdout]    |                                                 ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::NaiveDate::and_hms`: use `and_hms_opt()` instead
[INFO] [stdout]    --> src/query/itinerary.rs:147:39
[INFO] [stdout]     |
[INFO] [stdout] 147 |             departure_time: dt.date().and_hms(0, 0, 0) + Duration::seconds(departure_time),
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::NaiveDate::and_hms`: use `and_hms_opt()` instead
[INFO] [stdout]    --> src/query/itinerary.rs:149:37
[INFO] [stdout]     |
[INFO] [stdout] 149 |             arrival_time: dt.date().and_hms(0, 0, 0) + Duration::seconds(arrival_time),
[INFO] [stdout]     |                                     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::NaiveDate::from_ymd`: use `from_ymd_opt()` instead
[INFO] [stdout]    --> src/query/itinerary.rs:183:45
[INFO] [stdout]     |
[INFO] [stdout] 183 |             .set_departure_time(&NaiveDate::from_ymd(2009, 4, 14).and_hms(8, 0, 0))
[INFO] [stdout]     |                                             ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::NaiveDate::and_hms`: use `and_hms_opt()` instead
[INFO] [stdout]    --> src/query/itinerary.rs:183:67
[INFO] [stdout]     |
[INFO] [stdout] 183 |             .set_departure_time(&NaiveDate::from_ymd(2009, 4, 14).and_hms(8, 0, 0))
[INFO] [stdout]     |                                                                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::NaiveDate::from_ymd`: use `from_ymd_opt()` instead
[INFO] [stdout]    --> src/query/itinerary.rs:192:35
[INFO] [stdout]     |
[INFO] [stdout] 192 |                        NaiveDate::from_ymd(2009, 4, 14).and_hms(8, 11, 0));
[INFO] [stdout]     |                                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::NaiveDate::and_hms`: use `and_hms_opt()` instead
[INFO] [stdout]    --> src/query/itinerary.rs:192:57
[INFO] [stdout]     |
[INFO] [stdout] 192 |                        NaiveDate::from_ymd(2009, 4, 14).and_hms(8, 11, 0));
[INFO] [stdout]     |                                                         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::NaiveDate::from_ymd`: use `from_ymd_opt()` instead
[INFO] [stdout]    --> src/query/itinerary.rs:195:35
[INFO] [stdout]     |
[INFO] [stdout] 195 |                        NaiveDate::from_ymd(2009, 4, 14).and_hms(8, 17, 0));
[INFO] [stdout]     |                                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::NaiveDate::and_hms`: use `and_hms_opt()` instead
[INFO] [stdout]    --> src/query/itinerary.rs:195:57
[INFO] [stdout]     |
[INFO] [stdout] 195 |                        NaiveDate::from_ymd(2009, 4, 14).and_hms(8, 17, 0));
[INFO] [stdout]     |                                                         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/result.rs:92:20
[INFO] [stdout]    |
[INFO] [stdout] 92 |         let _: Box<Error> = Box::new(ThprError::Generic("Some error".into()));
[INFO] [stdout]    |                    ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 92 |         let _: Box<dyn Error> = Box::new(ThprError::Generic("Some error".into()));
[INFO] [stdout]    |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::NaiveDate::from_ymd`: use `from_ymd_opt()` instead
[INFO] [stdout]   --> src/util/fmt.rs:14:44
[INFO] [stdout]    |
[INFO] [stdout] 14 |         assert_eq!(datetime_hm(&NaiveDate::from_ymd(2019, 1, 1).and_hms(22, 21, 16)),
[INFO] [stdout]    |                                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::NaiveDate::and_hms`: use `and_hms_opt()` instead
[INFO] [stdout]   --> src/util/fmt.rs:14:65
[INFO] [stdout]    |
[INFO] [stdout] 14 |         assert_eq!(datetime_hm(&NaiveDate::from_ymd(2019, 1, 1).and_hms(22, 21, 16)),
[INFO] [stdout]    |                                                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `&str`
[INFO] [stdout]   --> src/query/route.rs:33:32
[INFO] [stdout]    |
[INFO] [stdout] 33 |         assert_eq!(&routes.get("1".into()).expect("Route not found").short_name, "30");
[INFO] [stdout]    |                                ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 33 -         assert_eq!(&routes.get("1".into()).expect("Route not found").short_name, "30");
[INFO] [stdout] 33 +         assert_eq!(&routes.get("1").expect("Route not found").short_name, "30");
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 33 -         assert_eq!(&routes.get("1".into()).expect("Route not found").short_name, "30");
[INFO] [stdout] 33 +         assert_eq!(&routes.get(<&str as Into<_>>::into("1")).expect("Route not found").short_name, "30");
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `townhopper` (lib test) due to 1 previous error; 30 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "a1340dfe820bda9391ccd44173ed6c45fc68a6a7039df69198d1219b5ea6196f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a1340dfe820bda9391ccd44173ed6c45fc68a6a7039df69198d1219b5ea6196f", kill_on_drop: false }`
[INFO] [stdout] a1340dfe820bda9391ccd44173ed6c45fc68a6a7039df69198d1219b5ea6196f
