[INFO] cloning repository https://github.com/vdbe/rust-diesel-test [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/vdbe/rust-diesel-test" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvdbe%2Frust-diesel-test", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvdbe%2Frust-diesel-test'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] b8e4074f2c007a2cdeb990993d441401ca89d0c4 [INFO] checking vdbe/rust-diesel-test against try#4f260f0f20b3133d20cfb50353c0221943af5796+rustflags=-Dunmustuse_in_always_ok for pr-148577 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvdbe%2Frust-diesel-test" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/vdbe/rust-diesel-test [INFO] finished tweaking git repo https://github.com/vdbe/rust-diesel-test [INFO] tweaked toml for git repo https://github.com/vdbe/rust-diesel-test written to /workspace/builds/worker-0-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/vdbe/rust-diesel-test on toolchain 4f260f0f20b3133d20cfb50353c0221943af5796 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4f260f0f20b3133d20cfb50353c0221943af5796" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/vdbe/rust-diesel-test 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" "+4f260f0f20b3133d20cfb50353c0221943af5796" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+4f260f0f20b3133d20cfb50353c0221943af5796" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 89b44165bb6ed222859645d4a5b9bdc420d547a33d2c2000b6568b36a7353c42 [INFO] running `Command { std: "docker" "start" "-a" "89b44165bb6ed222859645d4a5b9bdc420d547a33d2c2000b6568b36a7353c42", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "89b44165bb6ed222859645d4a5b9bdc420d547a33d2c2000b6568b36a7353c42", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "89b44165bb6ed222859645d4a5b9bdc420d547a33d2c2000b6568b36a7353c42", kill_on_drop: false }` [INFO] [stdout] 89b44165bb6ed222859645d4a5b9bdc420d547a33d2c2000b6568b36a7353c42 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/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 -Dunmustuse_in_always_ok" "-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+4f260f0f20b3133d20cfb50353c0221943af5796" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 66d5f532d3fcacd391ba8138b0370d17cff9f9ecc04eedcd46cd49397268ae37 [INFO] running `Command { std: "docker" "start" "-a" "66d5f532d3fcacd391ba8138b0370d17cff9f9ecc04eedcd46cd49397268ae37", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.36 [INFO] [stderr] Compiling libc v0.2.112 [INFO] [stderr] Compiling syn v1.0.85 [INFO] [stderr] Compiling futures-core v0.3.19 [INFO] [stderr] Checking futures-sink v0.3.19 [INFO] [stderr] Compiling futures-channel v0.3.19 [INFO] [stderr] Checking smallvec v1.7.0 [INFO] [stderr] Compiling futures-task v0.3.19 [INFO] [stderr] Compiling futures-util v0.3.19 [INFO] [stderr] Checking futures-io v0.3.19 [INFO] [stderr] Checking lock_api v0.4.5 [INFO] [stderr] Compiling pin-project-internal v0.4.29 [INFO] [stderr] Compiling serde_derive v1.0.133 [INFO] [stderr] Compiling standback v0.2.17 [INFO] [stderr] Compiling serde v1.0.133 [INFO] [stderr] Checking unicode-bidi v0.3.7 [INFO] [stderr] Compiling async-trait v0.1.52 [INFO] [stderr] Compiling generic-array v0.14.5 [INFO] [stderr] Compiling indexmap v1.7.0 [INFO] [stderr] Compiling const_fn v0.4.9 [INFO] [stderr] Compiling cc v1.0.72 [INFO] [stderr] Checking http v0.2.6 [INFO] [stderr] Checking idna v0.2.3 [INFO] [stderr] Compiling time v0.2.27 [INFO] [stderr] Checking tracing-core v0.1.21 [INFO] [stderr] Compiling serde_json v1.0.74 [INFO] [stderr] Compiling crc32fast v1.3.0 [INFO] [stderr] Checking regex v1.5.4 [INFO] [stderr] Compiling cookie v0.14.4 [INFO] [stderr] Compiling httparse v1.5.1 [INFO] [stderr] Compiling encoding_rs v0.8.30 [INFO] [stderr] Checking cpufeatures v0.2.1 [INFO] [stderr] Checking tracing v0.1.29 [INFO] [stderr] Checking bytestring v1.0.0 [INFO] [stderr] Checking os_str_bytes v6.0.0 [INFO] [stderr] Checking textwrap v0.14.2 [INFO] [stderr] Checking url v2.2.2 [INFO] [stderr] Compiling quote v1.0.14 [INFO] [stderr] Compiling brotli-sys v0.3.2 [INFO] [stderr] Checking digest v0.9.0 [INFO] [stderr] Checking block-buffer v0.9.0 [INFO] [stderr] Checking sha-1 v0.9.8 [INFO] [stderr] Checking net2 v0.2.37 [INFO] [stderr] Checking iovec v0.1.4 [INFO] [stderr] Checking signal-hook-registry v1.4.0 [INFO] [stderr] Checking parking_lot_core v0.8.5 [INFO] [stderr] Checking num_cpus v1.13.1 [INFO] [stderr] Checking getrandom v0.1.16 [INFO] [stderr] Checking hostname v0.3.1 [INFO] [stderr] Checking socket2 v0.3.19 [INFO] [stderr] Checking flate2 v1.0.22 [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Checking rand_core v0.5.1 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking threadpool v1.8.1 [INFO] [stderr] Checking time v0.1.44 [INFO] [stderr] Checking resolv-conf v0.7.0 [INFO] [stderr] Checking env_logger v0.9.0 [INFO] [stderr] Checking parking_lot v0.11.2 [INFO] [stderr] Checking scheduled-thread-pool v0.2.5 [INFO] [stderr] Checking rand_chacha v0.2.2 [INFO] [stderr] Checking mio v0.6.23 [INFO] [stderr] Checking r2d2 v0.8.9 [INFO] [stderr] Checking rand v0.7.3 [INFO] [stderr] Checking mio-uds v0.6.8 [INFO] [stderr] Checking tokio v0.2.25 [INFO] [stderr] Checking tokio-util v0.3.1 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stderr] Compiling futures-macro v0.3.19 [INFO] [stderr] Compiling derive_more v0.99.17 [INFO] [stderr] Compiling actix-macros v0.1.3 [INFO] [stderr] Compiling thiserror-impl v1.0.30 [INFO] [stderr] Compiling pin-project-internal v1.0.10 [INFO] [stderr] Compiling enum-as-inner v0.3.3 [INFO] [stderr] Compiling time-macros-impl v0.1.2 [INFO] [stderr] Compiling actix-web-codegen v0.4.0 [INFO] [stderr] Compiling clap_derive v3.0.5 [INFO] [stderr] Compiling diesel_derives v1.4.1 [INFO] [stderr] Checking brotli2 v0.3.2 [INFO] [stderr] Checking time-macros v0.1.1 [INFO] [stderr] Checking pin-project v1.0.10 [INFO] [stderr] Checking tracing-futures v0.2.5 [INFO] [stderr] Checking pin-project v0.4.29 [INFO] [stderr] Checking clap v3.0.5 [INFO] [stderr] Checking actix-codec v0.3.0 [INFO] [stderr] Checking thiserror v1.0.30 [INFO] [stderr] Checking actix-threadpool v0.3.3 [INFO] [stderr] Checking actix-service v1.0.6 [INFO] [stderr] Checking actix-rt v1.1.1 [INFO] [stderr] Checking futures v0.3.19 [INFO] [stderr] Checking h2 v0.2.7 [INFO] [stderr] Checking trust-dns-proto v0.19.7 [INFO] [stderr] Checking actix-utils v2.0.0 [INFO] [stderr] Checking actix-server v1.0.4 [INFO] [stderr] Checking actix-tls v2.0.0 [INFO] [stderr] Checking actix-testing v1.0.1 [INFO] [stderr] Checking trust-dns-resolver v0.19.7 [INFO] [stderr] Checking serde_urlencoded v0.7.0 [INFO] [stderr] Checking actix-router v0.2.7 [INFO] [stderr] Checking actix-connect v2.0.0 [INFO] [stderr] Checking diesel v1.4.8 [INFO] [stderr] Checking actix-http v2.2.1 [INFO] [stderr] Checking awc v2.0.3 [INFO] [stderr] Checking actix-web v3.3.3 [INFO] [stderr] Checking rest-api v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/errors.rs:9:15 [INFO] [stdout] | [INFO] [stdout] 9 | Serialize(String), [INFO] [stdout] | --------- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `CustomError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 9 - Serialize(String), [INFO] [stdout] 9 + Serialize(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/errors.rs:11:17 [INFO] [stdout] | [INFO] [stdout] 11 | Deserialize(String), [INFO] [stdout] | ----------- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `CustomError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 11 - Deserialize(String), [INFO] [stdout] 11 + Deserialize(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/errors.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 13 | Diesel(diesel::result::Error), [INFO] [stdout] | ------ ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `CustomError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 13 - Diesel(diesel::result::Error), [INFO] [stdout] 13 + Diesel(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/errors.rs:15:10 [INFO] [stdout] | [INFO] [stdout] 15 | R2d2(r2d2::Error), [INFO] [stdout] | ---- ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `CustomError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 15 - R2d2(r2d2::Error), [INFO] [stdout] 15 + R2d2(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: this type will no longer be must used: std::result::Result [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | / /// Specify alternate bind address [default: 127.0.0.1:8000] [INFO] [stdout] 25 | | #[clap(short, long)] [INFO] [stdout] 26 | | bind: Option, [INFO] [stdout] | |________________________^ [INFO] [stdout] | [INFO] [stdout] = note: requested on the command line with `-D unmustuse-in-always-ok` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/models.rs:11:17 [INFO] [stdout] | [INFO] [stdout] 11 | #[derive(Debug, Insertable)] [INFO] [stdout] | ^--------- [INFO] [stdout] | | [INFO] [stdout] | `Insertable` is not local [INFO] [stdout] | `table` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_insertable_for_newuser` [INFO] [stdout] 12 | #[table_name = "users"] [INFO] [stdout] 13 | pub struct NewUser<'a> { [INFO] [stdout] | ------- `NewUser` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Insertable` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Insertable` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: `#[warn(non_local_definitions)]` on by default [INFO] [stdout] = note: this warning originates in the derive macro `Insertable` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/models.rs:11:17 [INFO] [stdout] | [INFO] [stdout] 11 | #[derive(Debug, Insertable)] [INFO] [stdout] | -^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `Insertable` is not local [INFO] [stdout] | `table` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_insertable_for_newuser` [INFO] [stdout] 12 | #[table_name = "users"] [INFO] [stdout] 13 | pub struct NewUser<'a> { [INFO] [stdout] | ------- `NewUser` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Insertable` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Insertable` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `Insertable` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/models.rs:11:17 [INFO] [stdout] | [INFO] [stdout] 11 | #[derive(Debug, Insertable)] [INFO] [stdout] | ^--------- [INFO] [stdout] | | [INFO] [stdout] | `UndecoratedInsertRecord` is not local [INFO] [stdout] | `table` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_insertable_for_newuser` [INFO] [stdout] 12 | #[table_name = "users"] [INFO] [stdout] 13 | pub struct NewUser<'a> { [INFO] [stdout] | ------- `NewUser` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Insertable` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Insertable` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `Insertable` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/models.rs:20:28 [INFO] [stdout] | [INFO] [stdout] 20 | #[derive(Debug, Serialize, Queryable)] [INFO] [stdout] | ^-------- [INFO] [stdout] | | [INFO] [stdout] | `Queryable` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_queryable_for_user` [INFO] [stdout] 21 | pub struct User { [INFO] [stdout] | ---- `User` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Queryable` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Queryable` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `Queryable` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/schema.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / table! { [INFO] [stdout] 2 | | users (id) { [INFO] [stdout] 3 | | id -> Int4, [INFO] [stdout] 4 | | username -> Varchar, [INFO] [stdout] ... | [INFO] [stdout] 9 | | } [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | | `table` is not local [INFO] [stdout] | |_`QueryId` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_query_id_for_table` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `QueryId` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `QueryId` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `QueryId` which comes from the expansion of the macro `table` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/schema.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / table! { [INFO] [stdout] 2 | | users (id) { [INFO] [stdout] 3 | | id -> Int4, [INFO] [stdout] | | -- `id` is not local [INFO] [stdout] 4 | | username -> Varchar, [INFO] [stdout] ... | [INFO] [stdout] 9 | | } [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_`QueryId` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_query_id_for_id` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `QueryId` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `QueryId` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `QueryId` which comes from the expansion of the macro `table` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/schema.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / table! { [INFO] [stdout] 2 | | users (id) { [INFO] [stdout] 3 | | id -> Int4, [INFO] [stdout] 4 | | username -> Varchar, [INFO] [stdout] | | -------- `username` is not local [INFO] [stdout] ... | [INFO] [stdout] 9 | | } [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_`QueryId` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_query_id_for_username` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `QueryId` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `QueryId` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `QueryId` which comes from the expansion of the macro `table` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/schema.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / table! { [INFO] [stdout] 2 | | users (id) { [INFO] [stdout] 3 | | id -> Int4, [INFO] [stdout] 4 | | username -> Varchar, [INFO] [stdout] 5 | | password -> Varchar, [INFO] [stdout] | | -------- `password` is not local [INFO] [stdout] ... | [INFO] [stdout] 9 | | } [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_`QueryId` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_query_id_for_password` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `QueryId` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `QueryId` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `QueryId` which comes from the expansion of the macro `table` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/schema.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / table! { [INFO] [stdout] 2 | | users (id) { [INFO] [stdout] 3 | | id -> Int4, [INFO] [stdout] 4 | | username -> Varchar, [INFO] [stdout] 5 | | password -> Varchar, [INFO] [stdout] 6 | | first_name -> Varchar, [INFO] [stdout] | | ---------- `first_name` is not local [INFO] [stdout] ... | [INFO] [stdout] 9 | | } [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_`QueryId` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_query_id_for_first_name` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `QueryId` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `QueryId` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `QueryId` which comes from the expansion of the macro `table` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/schema.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / table! { [INFO] [stdout] 2 | | users (id) { [INFO] [stdout] 3 | | id -> Int4, [INFO] [stdout] 4 | | username -> Varchar, [INFO] [stdout] ... | [INFO] [stdout] 7 | | created_at -> Timestamp, [INFO] [stdout] | | ---------- `created_at` is not local [INFO] [stdout] 8 | | } [INFO] [stdout] 9 | | } [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_`QueryId` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_query_id_for_created_at` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `QueryId` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `QueryId` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `QueryId` which comes from the expansion of the macro `table` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/errors.rs:9:15 [INFO] [stdout] | [INFO] [stdout] 9 | Serialize(String), [INFO] [stdout] | --------- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `CustomError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 9 - Serialize(String), [INFO] [stdout] 9 + Serialize(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/errors.rs:11:17 [INFO] [stdout] | [INFO] [stdout] 11 | Deserialize(String), [INFO] [stdout] | ----------- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `CustomError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 11 - Deserialize(String), [INFO] [stdout] 11 + Deserialize(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/errors.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 13 | Diesel(diesel::result::Error), [INFO] [stdout] | ------ ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `CustomError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 13 - Diesel(diesel::result::Error), [INFO] [stdout] 13 + Diesel(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/errors.rs:15:10 [INFO] [stdout] | [INFO] [stdout] 15 | R2d2(r2d2::Error), [INFO] [stdout] | ---- ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `CustomError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 15 - R2d2(r2d2::Error), [INFO] [stdout] 15 + R2d2(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: this type will no longer be must used: std::result::Result [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | / /// Specify alternate bind address [default: 127.0.0.1:8000] [INFO] [stdout] 25 | | #[clap(short, long)] [INFO] [stdout] 26 | | bind: Option, [INFO] [stdout] | |________________________^ [INFO] [stdout] | [INFO] [stdout] = note: requested on the command line with `-D unmustuse-in-always-ok` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/models.rs:11:17 [INFO] [stdout] | [INFO] [stdout] 11 | #[derive(Debug, Insertable)] [INFO] [stdout] | ^--------- [INFO] [stdout] | | [INFO] [stdout] | `Insertable` is not local [INFO] [stdout] | `table` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_insertable_for_newuser` [INFO] [stdout] 12 | #[table_name = "users"] [INFO] [stdout] 13 | pub struct NewUser<'a> { [INFO] [stdout] | ------- `NewUser` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Insertable` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Insertable` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: `#[warn(non_local_definitions)]` on by default [INFO] [stdout] = note: this warning originates in the derive macro `Insertable` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/models.rs:11:17 [INFO] [stdout] | [INFO] [stdout] 11 | #[derive(Debug, Insertable)] [INFO] [stdout] | -^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `Insertable` is not local [INFO] [stdout] | `table` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_insertable_for_newuser` [INFO] [stdout] 12 | #[table_name = "users"] [INFO] [stdout] 13 | pub struct NewUser<'a> { [INFO] [stdout] | ------- `NewUser` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Insertable` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Insertable` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `Insertable` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/models.rs:11:17 [INFO] [stdout] | [INFO] [stdout] 11 | #[derive(Debug, Insertable)] [INFO] [stdout] | ^--------- [INFO] [stdout] | | [INFO] [stdout] | `UndecoratedInsertRecord` is not local [INFO] [stdout] | `table` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_insertable_for_newuser` [INFO] [stdout] 12 | #[table_name = "users"] [INFO] [stdout] 13 | pub struct NewUser<'a> { [INFO] [stdout] | ------- `NewUser` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Insertable` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Insertable` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `Insertable` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/models.rs:20:28 [INFO] [stdout] | [INFO] [stdout] 20 | #[derive(Debug, Serialize, Queryable)] [INFO] [stdout] | ^-------- [INFO] [stdout] | | [INFO] [stdout] | `Queryable` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_queryable_for_user` [INFO] [stdout] 21 | pub struct User { [INFO] [stdout] | ---- `User` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Queryable` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Queryable` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `Queryable` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/schema.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / table! { [INFO] [stdout] 2 | | users (id) { [INFO] [stdout] 3 | | id -> Int4, [INFO] [stdout] 4 | | username -> Varchar, [INFO] [stdout] ... | [INFO] [stdout] 9 | | } [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | | `table` is not local [INFO] [stdout] | |_`QueryId` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_query_id_for_table` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `QueryId` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `QueryId` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `QueryId` which comes from the expansion of the macro `table` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/schema.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / table! { [INFO] [stdout] 2 | | users (id) { [INFO] [stdout] 3 | | id -> Int4, [INFO] [stdout] | | -- `id` is not local [INFO] [stdout] 4 | | username -> Varchar, [INFO] [stdout] ... | [INFO] [stdout] 9 | | } [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_`QueryId` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_query_id_for_id` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `QueryId` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `QueryId` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `QueryId` which comes from the expansion of the macro `table` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/schema.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / table! { [INFO] [stdout] 2 | | users (id) { [INFO] [stdout] 3 | | id -> Int4, [INFO] [stdout] 4 | | username -> Varchar, [INFO] [stdout] | | -------- `username` is not local [INFO] [stdout] ... | [INFO] [stdout] 9 | | } [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_`QueryId` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_query_id_for_username` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `QueryId` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `QueryId` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `QueryId` which comes from the expansion of the macro `table` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/schema.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / table! { [INFO] [stdout] 2 | | users (id) { [INFO] [stdout] 3 | | id -> Int4, [INFO] [stdout] 4 | | username -> Varchar, [INFO] [stdout] 5 | | password -> Varchar, [INFO] [stdout] | | -------- `password` is not local [INFO] [stdout] ... | [INFO] [stdout] 9 | | } [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_`QueryId` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_query_id_for_password` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `QueryId` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `QueryId` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `QueryId` which comes from the expansion of the macro `table` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/schema.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / table! { [INFO] [stdout] 2 | | users (id) { [INFO] [stdout] 3 | | id -> Int4, [INFO] [stdout] 4 | | username -> Varchar, [INFO] [stdout] 5 | | password -> Varchar, [INFO] [stdout] 6 | | first_name -> Varchar, [INFO] [stdout] | | ---------- `first_name` is not local [INFO] [stdout] ... | [INFO] [stdout] 9 | | } [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_`QueryId` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_query_id_for_first_name` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `QueryId` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `QueryId` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `QueryId` which comes from the expansion of the macro `table` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/schema.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / table! { [INFO] [stdout] 2 | | users (id) { [INFO] [stdout] 3 | | id -> Int4, [INFO] [stdout] 4 | | username -> Varchar, [INFO] [stdout] ... | [INFO] [stdout] 7 | | created_at -> Timestamp, [INFO] [stdout] | | ---------- `created_at` is not local [INFO] [stdout] 8 | | } [INFO] [stdout] 9 | | } [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |_`QueryId` is not local [INFO] [stdout] | move the `impl` block outside of this function `_impl_query_id_for_created_at` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `QueryId` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `QueryId` may come from an old version of the `diesel_derives` crate, try updating your dependency with `cargo update -p diesel_derives` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the derive macro `QueryId` which comes from the expansion of the macro `table` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `rest-api` (bin "rest-api" test) due to 1 previous error; 14 warnings emitted [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: could not compile `rest-api` (bin "rest-api") due to 1 previous error; 14 warnings emitted [INFO] running `Command { std: "docker" "inspect" "66d5f532d3fcacd391ba8138b0370d17cff9f9ecc04eedcd46cd49397268ae37", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "66d5f532d3fcacd391ba8138b0370d17cff9f9ecc04eedcd46cd49397268ae37", kill_on_drop: false }` [INFO] [stdout] 66d5f532d3fcacd391ba8138b0370d17cff9f9ecc04eedcd46cd49397268ae37