[INFO] cloning repository https://github.com/vagicc/xueyigou
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/vagicc/xueyigou" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvagicc%2Fxueyigou", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvagicc%2Fxueyigou'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] dbb1cb970c3d3af1de8acfdbd3e27f11b8c12bd1
[INFO] checking vagicc/xueyigou against master#5518eaa946291f00471af8b254b2a1715f234882 for pr-120393
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvagicc%2Fxueyigou" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/vagicc/xueyigou on toolchain 5518eaa946291f00471af8b254b2a1715f234882
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+5518eaa946291f00471af8b254b2a1715f234882" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/vagicc/xueyigou
[INFO] finished tweaking git repo https://github.com/vagicc/xueyigou
[INFO] tweaked toml for git repo https://github.com/vagicc/xueyigou written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/vagicc/xueyigou already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+5518eaa946291f00471af8b254b2a1715f234882" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded input_buffer v0.4.0
[INFO] [stderr]   Downloaded cpufeatures v0.1.1
[INFO] [stderr]   Downloaded blowfish v0.7.0
[INFO] [stderr]   Downloaded sha-1 v0.9.6
[INFO] [stderr]   Downloaded tungstenite v0.12.0
[INFO] [stderr]   Downloaded tokio-tungstenite v0.13.0
[INFO] [stderr]   Downloaded diesel v1.4.6
[INFO] [stderr]   Downloaded hyper v0.14.7
[INFO] [stderr]   Downloaded bcrypt v0.9.0
[INFO] [stderr]   Downloaded httpdate v1.0.0
[INFO] [stderr]   Downloaded warp v0.3.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+5518eaa946291f00471af8b254b2a1715f234882" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] cb9c0b63785680c7ed57913c83bd4f7dc6ce13bf6142f207f84e716b4b57de62
[INFO] running `Command { std: "docker" "start" "-a" "cb9c0b63785680c7ed57913c83bd4f7dc6ce13bf6142f207f84e716b4b57de62", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "cb9c0b63785680c7ed57913c83bd4f7dc6ce13bf6142f207f84e716b4b57de62", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cb9c0b63785680c7ed57913c83bd4f7dc6ce13bf6142f207f84e716b4b57de62", kill_on_drop: false }`
[INFO] [stdout] cb9c0b63785680c7ed57913c83bd4f7dc6ce13bf6142f207f84e716b4b57de62
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+5518eaa946291f00471af8b254b2a1715f234882" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6baa399081be5d3e725031d177398e81dc078c57c3e1a388669df0cf60a0e7b1
[INFO] running `Command { std: "docker" "start" "-a" "6baa399081be5d3e725031d177398e81dc078c57c3e1a388669df0cf60a0e7b1", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.26
[INFO] [stderr]    Compiling syn v1.0.72
[INFO] [stderr]    Compiling log v0.4.14
[INFO] [stderr]     Checking bytes v1.0.1
[INFO] [stderr]     Checking instant v0.1.9
[INFO] [stderr]     Checking smallvec v1.6.1
[INFO] [stderr]     Checking itoa v0.4.7
[INFO] [stderr]    Compiling typenum v1.13.0
[INFO] [stderr]    Compiling memchr v2.4.0
[INFO] [stderr]     Checking lock_api v0.4.4
[INFO] [stderr]     Checking parking_lot_core v0.8.3
[INFO] [stderr]    Compiling generic-array v0.14.4
[INFO] [stderr]     Checking pin-project-lite v0.2.6
[INFO] [stderr]     Checking once_cell v1.7.2
[INFO] [stderr]    Compiling getrandom v0.2.2
[INFO] [stderr]     Checking parking_lot v0.11.1
[INFO] [stderr]    Compiling futures-core v0.3.15
[INFO] [stderr]    Compiling serde_derive v1.0.125
[INFO] [stderr]    Compiling tokio v1.5.0
[INFO] [stderr]    Compiling serde v1.0.125
[INFO] [stderr]     Checking ppv-lite86 v0.2.10
[INFO] [stderr]     Checking http v0.2.4
[INFO] [stderr]    Compiling quote v1.0.9
[INFO] [stderr]     Checking mio v0.7.11
[INFO] [stderr]     Checking num_cpus v1.13.0
[INFO] [stderr]     Checking signal-hook-registry v1.3.0
[INFO] [stderr]    Compiling unicase v2.6.0
[INFO] [stderr]     Checking matches v0.1.8
[INFO] [stderr]    Compiling futures-task v0.3.15
[INFO] [stderr]    Compiling cc v1.0.67
[INFO] [stderr]     Checking futures-sink v0.3.15
[INFO] [stderr]     Checking rand_core v0.6.2
[INFO] [stderr]    Compiling num-traits v0.2.14
[INFO] [stderr]    Compiling futures-util v0.3.15
[INFO] [stderr]     Checking opaque-debug v0.3.0
[INFO] [stderr]    Compiling httparse v1.4.1
[INFO] [stderr]    Compiling getrandom v0.1.16
[INFO] [stderr]     Checking tinyvec v1.2.0
[INFO] [stderr]     Checking rand_chacha v0.3.0
[INFO] [stderr]    Compiling num-integer v0.1.44
[INFO] [stderr]     Checking slab v0.4.3
[INFO] [stderr]     Checking form_urlencoded v1.0.1
[INFO] [stderr]     Checking block-buffer v0.9.0
[INFO] [stderr]     Checking digest v0.9.0
[INFO] [stderr]     Checking rand v0.8.3
[INFO] [stderr]    Compiling ring v0.16.20
[INFO] [stderr]     Checking unicode-normalization v0.1.17
[INFO] [stderr]     Checking unicode-bidi v0.3.5
[INFO] [stderr]    Compiling indexmap v1.6.2
[INFO] [stderr]     Checking cpufeatures v0.1.1
[INFO] [stderr]    Compiling futures-channel v0.3.15
[INFO] [stderr]    Compiling ucd-trie v0.1.3
[INFO] [stderr]     Checking tracing-core v0.1.18
[INFO] [stderr]    Compiling pest v2.1.3
[INFO] [stderr]     Checking sha-1 v0.9.6
[INFO] [stderr]    Compiling mime_guess v2.0.3
[INFO] [stderr]     Checking idna v0.2.3
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]     Checking time v0.1.43
[INFO] [stderr]    Compiling num-bigint v0.2.6
[INFO] [stderr]     Checking hashbrown v0.9.1
[INFO] [stderr]    Compiling maplit v1.0.2
[INFO] [stderr]     Checking url v2.2.2
[INFO] [stderr]    Compiling pest_meta v2.1.3
[INFO] [stderr]     Checking rand_chacha v0.2.2
[INFO] [stderr]     Checking tracing v0.1.26
[INFO] [stderr]     Checking input_buffer v0.4.0
[INFO] [stderr]     Checking remove_dir_all v0.5.3
[INFO] [stderr]     Checking utf-8 v0.7.6
[INFO] [stderr]    Compiling pq-sys v0.4.6
[INFO] [stderr]     Checking safemem v0.3.3
[INFO] [stderr]     Checking tungstenite v0.12.0
[INFO] [stderr]     Checking buf_redux v0.8.4
[INFO] [stderr]     Checking tempfile v3.2.0
[INFO] [stderr]     Checking want v0.3.0
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr]     Checking http-body v0.4.2
[INFO] [stderr]    Compiling pest_generator v2.1.3
[INFO] [stderr]     Checking headers-core v0.2.0
[INFO] [stderr]     Checking cipher v0.2.5
[INFO] [stderr]     Checking twoway v0.1.8
[INFO] [stderr]     Checking scheduled-thread-pool v0.2.5
[INFO] [stderr]     Checking socket2 v0.4.0
[INFO] [stderr]     Checking httpdate v1.0.0
[INFO] [stderr]     Checking quick-error v1.2.3
[INFO] [stderr]     Checking futures-io v0.3.15
[INFO] [stderr]     Checking futures v0.3.15
[INFO] [stderr]     Checking uuid v0.6.5
[INFO] [stderr]     Checking multipart v0.17.1
[INFO] [stderr]     Checking bigdecimal v0.1.2
[INFO] [stderr]     Checking r2d2 v0.8.9
[INFO] [stderr]     Checking blowfish v0.7.0
[INFO] [stderr]     Checking headers v0.3.4
[INFO] [stderr]     Checking quick-error v2.0.1
[INFO] [stderr]     Checking scoped-tls v1.0.0
[INFO] [stderr]     Checking bcrypt v0.9.0
[INFO] [stderr]     Checking sct v0.6.1
[INFO] [stderr]     Checking webpki v0.21.4
[INFO] [stderr]    Compiling tokio-macros v1.1.0
[INFO] [stderr]    Compiling pin-project-internal v1.0.7
[INFO] [stderr]    Compiling diesel_derives v1.4.1
[INFO] [stderr]    Compiling pest_derive v2.1.0
[INFO] [stderr]     Checking rustls v0.19.1
[INFO] [stderr]     Checking pin-project v1.0.7
[INFO] [stderr]     Checking tokio-util v0.6.6
[INFO] [stderr]     Checking tokio-stream v0.1.5
[INFO] [stderr]     Checking tokio-rustls v0.22.0
[INFO] [stderr]     Checking tokio-tungstenite v0.13.0
[INFO] [stderr]     Checking h2 v0.3.3
[INFO] [stderr]     Checking serde_json v1.0.64
[INFO] [stderr]     Checking ipnetwork v0.17.0
[INFO] [stderr]     Checking serde_urlencoded v0.7.0
[INFO] [stderr]     Checking chrono v0.4.19
[INFO] [stderr]     Checking diesel v1.4.6
[INFO] [stderr]     Checking handlebars v3.5.5
[INFO] [stderr]     Checking hyper v0.14.7
[INFO] [stderr]     Checking warp v0.3.1
[INFO] [stderr]     Checking xueyigou v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `handlebars::to_json`
[INFO] [stdout]  --> src/handlers/login_handler.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use handlebars::to_json;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `handlebars::to_json`
[INFO] [stdout]  --> src/handlers/login_handler.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use handlebars::to_json;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TemplateFileError`
[INFO] [stdout]  --> src/models/register_model.rs:2:39
[INFO] [stdout]   |
[INFO] [stdout] 2 | use handlebars::{to_json, Handlebars, TemplateFileError};
[INFO] [stdout]   |                                       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TemplateFileError`
[INFO] [stdout]  --> src/models/register_model.rs:2:39
[INFO] [stdout]   |
[INFO] [stdout] 2 | use handlebars::{to_json, Handlebars, TemplateFileError};
[INFO] [stdout]   |                                       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DEFAULT_COST`, `hash_with_salt`
[INFO] [stdout]  --> src/models/user_model.rs:4:14
[INFO] [stdout]   |
[INFO] [stdout] 4 | use bcrypt::{hash_with_salt, verify, DEFAULT_COST};
[INFO] [stdout]   |              ^^^^^^^^^^^^^^          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DEFAULT_COST`, `hash_with_salt`
[INFO] [stdout]  --> src/models/user_model.rs:4:14
[INFO] [stdout]   |
[INFO] [stdout] 4 | use bcrypt::{hash_with_salt, verify, DEFAULT_COST};
[INFO] [stdout]   |              ^^^^^^^^^^^^^^          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::session::Session`
[INFO] [stdout]  --> src/routes/home_route.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::session::Session;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::session::Session`
[INFO] [stdout]  --> src/routes/home_route.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::session::Session;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `filters::BoxedFilter`
[INFO] [stdout]  --> src/routes/home_route.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | use warp::{filters::BoxedFilter, Filter};
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `filters::BoxedFilter`
[INFO] [stdout]  --> src/routes/home_route.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | use warp::{filters::BoxedFilter, Filter};
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::format`
[INFO] [stdout]  --> src/routes/link_route.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fmt::format;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::format`
[INFO] [stdout]  --> src/routes/link_route.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fmt::format;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::session::Session`
[INFO] [stdout]  --> src/routes/login_route.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::session::Session;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::session::Session`
[INFO] [stdout]  --> src/routes/login_route.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::session::Session;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `filters::BoxedFilter`
[INFO] [stdout]  --> src/routes/login_route.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | use warp::{filters::BoxedFilter, Filter};
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `filters::BoxedFilter`
[INFO] [stdout]  --> src/routes/login_route.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | use warp::{filters::BoxedFilter, Filter};
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::prelude`
[INFO] [stdout]  --> src/session.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use chrono::prelude;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::prelude`
[INFO] [stdout]  --> src/session.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use chrono::prelude;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/handlers/login_handler.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let mut data = Map::new();
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/handlers/login_handler.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let mut data = Map::new();
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `html` is never read
[INFO] [stdout]   --> src/handlers/signup_handler.rs:57:13
[INFO] [stdout]    |
[INFO] [stdout] 57 |     let mut html = "处理注册表单".to_string();
[INFO] [stdout]    |             ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `html` is never read
[INFO] [stdout]   --> src/handlers/signup_handler.rs:57:13
[INFO] [stdout]    |
[INFO] [stdout] 57 |     let mut html = "处理注册表单".to_string();
[INFO] [stdout]    |             ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/session.rs:74:27
[INFO] [stdout]    |
[INFO] [stdout] 74 |                 .map_err(|e| {
[INFO] [stdout]    |                           ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/session.rs:74:27
[INFO] [stdout]    |
[INFO] [stdout] 74 |                 .map_err(|e| {
[INFO] [stdout]    |                           ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `LinkId` is never used
[INFO] [stdout]   --> src/models/link_model.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub type LinkId = i32;
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `add_link`, `get_links`, and `rm_links` are never used
[INFO] [stdout]   --> src/models/link_model.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl Link {
[INFO] [stdout]    | --------- associated functions in this implementation
[INFO] [stdout] 28 |     pub fn add_link(new_link: AddLink, conn: &PgPooledConnection) -> QueryResult<usize> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn get_links(conn: &PgPooledConnection) -> QueryResult<Vec<Link>> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn rm_links(id: LinkId, conn: &PgPooledConnection) -> QueryResult<usize> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `register_html` is never used
[INFO] [stdout]  --> src/models/register_model.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn register_html() -> String {
[INFO] [stdout]   |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `register_template` is never used
[INFO] [stdout]   --> src/models/register_model.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn register_template(name: &str, mut data: Map<String, Json>) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `TYPES` is never used
[INFO] [stdout]   --> src/models/register_model.rs:54:8
[INFO] [stdout]    |
[INFO] [stdout] 54 | static TYPES: &'static str = "serde_json";
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_data` is never used
[INFO] [stdout]   --> src/models/register_model.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn make_data() -> Map<String, Json> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `authenticate` is never used
[INFO] [stdout]   --> src/models/user_model.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl User {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] 17 |     /* 身份认证 */
[INFO] [stdout] 18 |     pub fn authenticate(db: &PgPooledConnection, user: &str, passwd: &str) -> Option<Self> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id` and `user` are never read
[INFO] [stdout]   --> src/session.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct Session {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 17 |     db: PgPooledConnection,
[INFO] [stdout] 18 |     id: Option<i32>,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 19 |     user: Option<User>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `authenticate`, `clear`, and `user` are never used
[INFO] [stdout]   --> src/session.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl Session {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn authenticate(&mut self, username: &str, passwd: &str) -> Option<String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn clear(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn user(&self) -> Option<&User> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `random_key` is never used
[INFO] [stdout]   --> src/session.rs:91:4
[INFO] [stdout]    |
[INFO] [stdout] 91 | fn random_key(len: usize) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `insertID` should have a snake case name
[INFO] [stdout]   --> src/handlers/signup_handler.rs:71:17
[INFO] [stdout]    |
[INFO] [stdout] 71 |             let insertID = User::insert_user(form, session.db());
[INFO] [stdout]    |                 ^^^^^^^^ help: convert the identifier to snake case: `insert_id`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `insertID` should have a snake case name
[INFO] [stdout]   --> src/models/link_model.rs:54:13
[INFO] [stdout]    |
[INFO] [stdout] 54 |         let insertID=diesel::insert_into(linksnap)
[INFO] [stdout]    |             ^^^^^^^^ help: convert the identifier to snake case: `insert_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `insertID` should have a snake case name
[INFO] [stdout]   --> src/models/user_model.rs:45:13
[INFO] [stdout]    |
[INFO] [stdout] 45 |         let insertID = diesel::insert_into(users)
[INFO] [stdout]    |             ^^^^^^^^ help: convert the identifier to snake case: `insert_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 25 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `LinkId` is never used
[INFO] [stdout]   --> src/models/link_model.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub type LinkId = i32;
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `add_link`, `get_links`, and `rm_links` are never used
[INFO] [stdout]   --> src/models/link_model.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl Link {
[INFO] [stdout]    | --------- associated functions in this implementation
[INFO] [stdout] 28 |     pub fn add_link(new_link: AddLink, conn: &PgPooledConnection) -> QueryResult<usize> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn get_links(conn: &PgPooledConnection) -> QueryResult<Vec<Link>> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn rm_links(id: LinkId, conn: &PgPooledConnection) -> QueryResult<usize> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `register_html` is never used
[INFO] [stdout]  --> src/models/register_model.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn register_html() -> String {
[INFO] [stdout]   |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `register_template` is never used
[INFO] [stdout]   --> src/models/register_model.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn register_template(name: &str, mut data: Map<String, Json>) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `TYPES` is never used
[INFO] [stdout]   --> src/models/register_model.rs:54:8
[INFO] [stdout]    |
[INFO] [stdout] 54 | static TYPES: &'static str = "serde_json";
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_data` is never used
[INFO] [stdout]   --> src/models/register_model.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn make_data() -> Map<String, Json> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `authenticate` is never used
[INFO] [stdout]   --> src/models/user_model.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl User {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] 17 |     /* 身份认证 */
[INFO] [stdout] 18 |     pub fn authenticate(db: &PgPooledConnection, user: &str, passwd: &str) -> Option<Self> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id` and `user` are never read
[INFO] [stdout]   --> src/session.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct Session {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 17 |     db: PgPooledConnection,
[INFO] [stdout] 18 |     id: Option<i32>,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 19 |     user: Option<User>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `authenticate`, `clear`, and `user` are never used
[INFO] [stdout]   --> src/session.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl Session {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn authenticate(&mut self, username: &str, passwd: &str) -> Option<String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn clear(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn user(&self) -> Option<&User> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `random_key` is never used
[INFO] [stdout]   --> src/session.rs:91:4
[INFO] [stdout]    |
[INFO] [stdout] 91 | fn random_key(len: usize) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `insertID` should have a snake case name
[INFO] [stdout]   --> src/handlers/signup_handler.rs:71:17
[INFO] [stdout]    |
[INFO] [stdout] 71 |             let insertID = User::insert_user(form, session.db());
[INFO] [stdout]    |                 ^^^^^^^^ help: convert the identifier to snake case: `insert_id`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `insertID` should have a snake case name
[INFO] [stdout]   --> src/models/link_model.rs:54:13
[INFO] [stdout]    |
[INFO] [stdout] 54 |         let insertID=diesel::insert_into(linksnap)
[INFO] [stdout]    |             ^^^^^^^^ help: convert the identifier to snake case: `insert_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `insertID` should have a snake case name
[INFO] [stdout]   --> src/models/user_model.rs:45:13
[INFO] [stdout]    |
[INFO] [stdout] 45 |         let insertID = diesel::insert_into(users)
[INFO] [stdout]    |             ^^^^^^^^ help: convert the identifier to snake case: `insert_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 25 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 15.09s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: buf_redux v0.8.4, multipart v0.17.1
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "6baa399081be5d3e725031d177398e81dc078c57c3e1a388669df0cf60a0e7b1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6baa399081be5d3e725031d177398e81dc078c57c3e1a388669df0cf60a0e7b1", kill_on_drop: false }`
[INFO] [stdout] 6baa399081be5d3e725031d177398e81dc078c57c3e1a388669df0cf60a0e7b1
