[INFO] cloning repository https://github.com/JKingdom/substrate-storage-example
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/JKingdom/substrate-storage-example" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJKingdom%2Fsubstrate-storage-example", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJKingdom%2Fsubstrate-storage-example'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 542065b4e2416358f2a9d2011e41e75e0a24002b
[INFO] checking JKingdom/substrate-storage-example against master#4008bbdf34b583ce44a467043aae3703afc0a76f for pr-129249-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJKingdom%2Fsubstrate-storage-example" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/JKingdom/substrate-storage-example
[INFO] finished tweaking git repo https://github.com/JKingdom/substrate-storage-example
[INFO] tweaked toml for git repo https://github.com/JKingdom/substrate-storage-example written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/JKingdom/substrate-storage-example on toolchain 4008bbdf34b583ce44a467043aae3703afc0a76f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4008bbdf34b583ce44a467043aae3703afc0a76f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/JKingdom/substrate-storage-example 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" "+4008bbdf34b583ce44a467043aae3703afc0a76f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Updating git repository `https://github.com/paritytech/substrate`
[INFO] [stderr]     Updating git repository `https://github.com/paritytech/trie`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded parity-wasm v0.31.3
[INFO] [stderr]   Downloaded untrusted v0.5.1
[INFO] [stderr]   Downloaded memory_units v0.3.0
[INFO] [stderr]   Downloaded uint v0.5.0
[INFO] [stderr]   Downloaded wasmi v0.4.2
[INFO] [stderr]   Downloaded crunchy v0.2.1
[INFO] [stderr]   Downloaded fixed-hash v0.3.0
[INFO] [stderr]   Downloaded heapsize v0.4.2
[INFO] [stderr]   Downloaded parity-codec-derive v2.1.0
[INFO] [stderr]   Downloaded hex-literal-impl v0.1.1
[INFO] [stderr]   Downloaded environmental v1.0.0
[INFO] [stderr]   Downloaded crossbeam-utils v0.2.2
[INFO] [stderr]   Downloaded proc-macro-hack v0.4.1
[INFO] [stderr]   Downloaded rustc-hex v2.0.1
[INFO] [stderr]   Downloaded num_cpus v1.8.0
[INFO] [stderr]   Downloaded hex-literal v0.1.1
[INFO] [stderr]   Downloaded base58 v0.1.0
[INFO] [stderr]   Downloaded twox-hash v1.1.1
[INFO] [stderr]   Downloaded crunchy v0.1.6
[INFO] [stderr]   Downloaded parity-codec v2.1.5
[INFO] [stderr]   Downloaded proc-macro-hack-impl v0.4.1
[INFO] [stderr]   Downloaded crossbeam-deque v0.2.0
[INFO] [stderr]   Downloaded static_assertions v0.2.5
[INFO] [stderr]   Downloaded rayon-core v1.4.1
[INFO] [stderr]   Downloaded arrayvec v0.4.8
[INFO] [stderr]   Downloaded gcc v0.3.55
[INFO] [stderr]   Downloaded crossbeam-epoch v0.3.1
[INFO] [stderr]   Downloaded rayon v0.8.2
[INFO] [stderr]   Downloaded syn v0.15.22
[INFO] [stderr]   Downloaded libc v0.2.44
[INFO] [stderr]   Downloaded ring v0.12.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/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:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 6fb931ef7c94a9023b2c237177aabc5091057ccf5371ee2ee9bac96629cd0e99
[INFO] running `Command { std: "docker" "start" "6fb931ef7c94a9023b2c237177aabc5091057ccf5371ee2ee9bac96629cd0e99", 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" "6fb931ef7c94a9023b2c237177aabc5091057ccf5371ee2ee9bac96629cd0e99" "/opt/rustwide/cargo-home/bin/cargo" "+4008bbdf34b583ce44a467043aae3703afc0a76f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6fb931ef7c94a9023b2c237177aabc5091057ccf5371ee2ee9bac96629cd0e99", 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" "6fb931ef7c94a9023b2c237177aabc5091057ccf5371ee2ee9bac96629cd0e99" "/opt/rustwide/cargo-home/bin/cargo" "+4008bbdf34b583ce44a467043aae3703afc0a76f" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.44
[INFO] [stderr]    Compiling nodrop v0.1.13
[INFO] [stderr]    Compiling cfg-if v0.1.6
[INFO] [stderr]    Compiling scopeguard v0.3.3
[INFO] [stderr]    Compiling lazy_static v1.2.0
[INFO] [stderr]    Compiling memoffset v0.2.1
[INFO] [stderr]    Compiling proc-macro2 v0.4.24
[INFO] [stderr]    Compiling rayon-core v1.4.1
[INFO] [stderr]    Compiling crossbeam-utils v0.2.2
[INFO] [stderr]     Checking byteorder v1.2.7
[INFO] [stderr]    Compiling arrayvec v0.4.8
[INFO] [stderr]     Checking rand_core v0.3.0
[INFO] [stderr]    Compiling proc-macro-hack-impl v0.4.1
[INFO] [stderr]    Compiling serde v1.0.80
[INFO] [stderr]    Compiling crunchy v0.2.1
[INFO] [stderr]    Compiling crossbeam-epoch v0.3.1
[INFO] [stderr]    Compiling gcc v0.3.55
[INFO] [stderr]    Compiling heapsize v0.4.2
[INFO] [stderr]     Checking rand_core v0.2.2
[INFO] [stderr]    Compiling crunchy v0.1.6
[INFO] [stderr]    Compiling proc-macro-hack v0.4.1
[INFO] [stderr]    Compiling quote v0.6.10
[INFO] [stderr]    Compiling sr-std v0.1.0 (https://github.com/paritytech/substrate#74fae42c)
[INFO] [stderr]     Checking rustc-hex v2.0.1
[INFO] [stderr]    Compiling num_cpus v1.8.0
[INFO] [stderr]    Compiling crossbeam-deque v0.2.0
[INFO] [stderr]     Checking rand v0.5.5
[INFO] [stderr]    Compiling syn v0.15.22
[INFO] [stderr]    Compiling syn v0.14.9
[INFO] [stderr]    Compiling hex-literal-impl v0.1.1
[INFO] [stderr]     Checking parity-wasm v0.31.3
[INFO] [stderr]     Checking memory_units v0.3.0
[INFO] [stderr]     Checking lazy_static v0.2.11
[INFO] [stderr]     Checking untrusted v0.5.1
[INFO] [stderr]     Checking constant_time_eq v0.1.3
[INFO] [stderr]     Checking static_assertions v0.2.5
[INFO] [stderr]     Checking hex-literal v0.1.1
[INFO] [stderr]     Checking blake2-rfc v0.2.18
[INFO] [stderr]     Checking uint v0.5.0
[INFO] [stderr]     Checking hash256-std-hasher v0.9.0 (https://github.com/paritytech/trie#2616db2a)
[INFO] [stderr]     Checking hash-db v0.9.0 (https://github.com/paritytech/trie#2616db2a)
[INFO] [stderr]     Checking base58 v0.1.0
[INFO] [stderr]     Checking environmental v1.0.0
[INFO] [stderr]    Compiling rayon v0.8.2
[INFO] [stderr]     Checking fixed-hash v0.3.0
[INFO] [stderr]     Checking twox-hash v1.1.1
[INFO] [stderr]     Checking wasmi v0.4.2
[INFO] [stderr]    Compiling ring v0.12.1
[INFO] [stderr]    Compiling serde_derive v1.0.80
[INFO] [stderr]    Compiling parity-codec-derive v2.1.0
[INFO] [stderr]     Checking parity-codec v2.1.5
[INFO] [stderr]     Checking substrate-primitives v0.1.0 (https://github.com/paritytech/substrate#74fae42c)
[INFO] [stderr]     Checking storage v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::borrow::Borrow`
[INFO] [stdout]   --> src/storage/generator.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub use std::borrow::Borrow;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::marker::PhantomData`
[INFO] [stdout]   --> src/storage/generator.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub use std::marker::PhantomData;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::marker::PhantomData`
[INFO] [stdout]   --> src/main.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::marker::PhantomData;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/main.rs:89:58
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub fn with_externalities<R, F: FnOnce() -> R>(ext: &mut MemDBT, f: F) -> R {
[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] 89 | pub fn with_externalities<R, F: FnOnce() -> R>(ext: &mut dyn MemDBT, f: F) -> R {
[INFO] [stdout]    |                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Encode`
[INFO] [stdout]   --> src/main.rs:14:26
[INFO] [stdout]    |
[INFO] [stdout] 14 | use self::codec::{Codec, Encode, Decode};
[INFO] [stdout]    |                          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StorageMap`
[INFO] [stdout]   --> src/main.rs:13:21
[INFO] [stdout]    |
[INFO] [stdout] 13 | use self::storage::{StorageMap, StorageValue};
[INFO] [stdout]    |                     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `init` is never used
[INFO] [stdout]   --> src/main.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl MemDB {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 27 |     fn init(&mut self, v: Vec<(Vec<u8>, Vec<u8>)>) {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_or_default` is never used
[INFO] [stdout]   --> src/storage/mod.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn get_or_default<T: Codec + Sized + Default>(key: &[u8]) -> T {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_or` is never used
[INFO] [stdout]   --> src/storage/mod.rs:47:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn get_or<T: Codec + Sized>(key: &[u8], default_value: T) -> T {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_or_else` is never used
[INFO] [stdout]   --> src/storage/mod.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn get_or_else<T: Codec + Sized, F: FnOnce() -> T>(key: &[u8], default_value: F) -> T {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `take` is never used
[INFO] [stdout]   --> src/storage/mod.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub fn take<T: Codec + Sized>(key: &[u8]) -> Option<T> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `take_or_default` is never used
[INFO] [stdout]   --> src/storage/mod.rs:73:8
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub fn take_or_default<T: Codec + Sized + Default>(key: &[u8]) -> T {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `take_or` is never used
[INFO] [stdout]   --> src/storage/mod.rs:79:8
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub fn take_or<T: Codec + Sized>(key: &[u8], default_value: T) -> T {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `take_or_else` is never used
[INFO] [stdout]   --> src/storage/mod.rs:85:8
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub fn take_or_else<T: Codec + Sized, F: FnOnce() -> T>(key: &[u8], default_value: F) -> T {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exists` is never used
[INFO] [stdout]   --> src/storage/mod.rs:90:8
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub fn exists(key: &[u8]) -> bool {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `kill` is never used
[INFO] [stdout]   --> src/storage/mod.rs:95:8
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub fn kill(key: &[u8]) {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_raw` is never used
[INFO] [stdout]    --> src/storage/mod.rs:100:8
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub fn get_raw(key: &[u8]) -> Option<Vec<u8>> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `put_raw` is never used
[INFO] [stdout]    --> src/storage/mod.rs:105:8
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub fn put_raw(key: &[u8], value: &[u8]) {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `key`, `exists`, `mutate`, `kill`, and `take` are never used
[INFO] [stdout]    --> src/storage/mod.rs:144:8
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub trait StorageValue<T: Codec> {
[INFO] [stdout]     |           ------------ associated functions in this trait
[INFO] [stdout] ...
[INFO] [stdout] 144 |     fn key() -> &'static [u8];
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     fn exists() -> bool;
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     fn mutate<R, F: FnOnce(&mut Self::Query) -> R>(f: F) -> R;
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     fn kill();
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     fn take() -> Self::Query;
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `StorageMap` is never used
[INFO] [stdout]    --> src/storage/mod.rs:192:11
[INFO] [stdout]     |
[INFO] [stdout] 192 | pub trait StorageMap<K: Codec, V: Codec> {
[INFO] [stdout]     |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> src/storage/generator.rs:57:8
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub trait Storage {
[INFO] [stdout]    |           ------- methods in this trait
[INFO] [stdout] 56 |     /// true if the key exists in storage.
[INFO] [stdout] 57 |     fn exists(&self, key: &[u8]) -> bool;
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     fn require<T: codec::Codec>(&self, key: &[u8]) -> T { self.get(key).expect("Required values must be in storage") }
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     fn get_or_default<T: codec::Codec + Default>(&self, key: &[u8]) -> T { self.get(key).unwrap_or_default() }
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     fn kill(&self, key: &[u8]);
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     fn take<T: codec::Codec>(&self, key: &[u8]) -> Option<T> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     fn take_or_panic<T: codec::Codec>(&self, key: &[u8]) -> T { self.take(key).expect("Required values must be in storage") }
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 87 |     fn take_or_default<T: codec::Codec + Default>(&self, key: &[u8]) -> T { self.take(key).unwrap_or_default() }
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `exists`, `take`, `mutate`, and `kill` are never used
[INFO] [stdout]    --> src/storage/generator.rs:99:8
[INFO] [stdout]     |
[INFO] [stdout]  91 | pub trait StorageValue<T: codec::Codec> {
[INFO] [stdout]     |           ------------ associated functions in this trait
[INFO] [stdout] ...
[INFO] [stdout]  99 |     fn exists<S: Storage>(storage: &S) -> bool {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     fn take<S: Storage>(storage: &S) -> Self::Query;
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     fn mutate<R, F: FnOnce(&mut Self::Query) -> R, S: Storage>(f: F, storage: &S) -> R;
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     fn kill<S: Storage>(storage: &S) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `StorageMap` is never used
[INFO] [stdout]    --> src/storage/generator.rs:124:11
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub trait StorageMap<K: codec::Codec, V: codec::Codec> {
[INFO] [stdout]     |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `A` is never constructed
[INFO] [stdout]  --> src/datadef.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct A;
[INFO] [stdout]   |            ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `B` is never constructed
[INFO] [stdout]   --> src/datadef.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct B;
[INFO] [stdout]    |            ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::borrow::Borrow`
[INFO] [stdout]   --> src/storage/generator.rs:51:9
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub use std::borrow::Borrow;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::marker::PhantomData`
[INFO] [stdout]   --> src/storage/generator.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub use std::marker::PhantomData;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::marker::PhantomData`
[INFO] [stdout]   --> src/main.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::marker::PhantomData;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/main.rs:89:58
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub fn with_externalities<R, F: FnOnce() -> R>(ext: &mut MemDBT, f: F) -> R {
[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] 89 | pub fn with_externalities<R, F: FnOnce() -> R>(ext: &mut dyn MemDBT, f: F) -> R {
[INFO] [stdout]    |                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Encode`
[INFO] [stdout]   --> src/main.rs:14:26
[INFO] [stdout]    |
[INFO] [stdout] 14 | use self::codec::{Codec, Encode, Decode};
[INFO] [stdout]    |                          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StorageMap`
[INFO] [stdout]   --> src/main.rs:13:21
[INFO] [stdout]    |
[INFO] [stdout] 13 | use self::storage::{StorageMap, StorageValue};
[INFO] [stdout]    |                     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `init` is never used
[INFO] [stdout]   --> src/main.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl MemDB {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 27 |     fn init(&mut self, v: Vec<(Vec<u8>, Vec<u8>)>) {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_or_default` is never used
[INFO] [stdout]   --> src/storage/mod.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn get_or_default<T: Codec + Sized + Default>(key: &[u8]) -> T {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_or` is never used
[INFO] [stdout]   --> src/storage/mod.rs:47:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn get_or<T: Codec + Sized>(key: &[u8], default_value: T) -> T {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_or_else` is never used
[INFO] [stdout]   --> src/storage/mod.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn get_or_else<T: Codec + Sized, F: FnOnce() -> T>(key: &[u8], default_value: F) -> T {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `take` is never used
[INFO] [stdout]   --> src/storage/mod.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub fn take<T: Codec + Sized>(key: &[u8]) -> Option<T> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `take_or_default` is never used
[INFO] [stdout]   --> src/storage/mod.rs:73:8
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub fn take_or_default<T: Codec + Sized + Default>(key: &[u8]) -> T {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `take_or` is never used
[INFO] [stdout]   --> src/storage/mod.rs:79:8
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub fn take_or<T: Codec + Sized>(key: &[u8], default_value: T) -> T {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `take_or_else` is never used
[INFO] [stdout]   --> src/storage/mod.rs:85:8
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub fn take_or_else<T: Codec + Sized, F: FnOnce() -> T>(key: &[u8], default_value: F) -> T {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exists` is never used
[INFO] [stdout]   --> src/storage/mod.rs:90:8
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub fn exists(key: &[u8]) -> bool {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `kill` is never used
[INFO] [stdout]   --> src/storage/mod.rs:95:8
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub fn kill(key: &[u8]) {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_raw` is never used
[INFO] [stdout]    --> src/storage/mod.rs:100:8
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub fn get_raw(key: &[u8]) -> Option<Vec<u8>> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `put_raw` is never used
[INFO] [stdout]    --> src/storage/mod.rs:105:8
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub fn put_raw(key: &[u8], value: &[u8]) {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `key`, `exists`, `mutate`, `kill`, and `take` are never used
[INFO] [stdout]    --> src/storage/mod.rs:144:8
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub trait StorageValue<T: Codec> {
[INFO] [stdout]     |           ------------ associated functions in this trait
[INFO] [stdout] ...
[INFO] [stdout] 144 |     fn key() -> &'static [u8];
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     fn exists() -> bool;
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     fn mutate<R, F: FnOnce(&mut Self::Query) -> R>(f: F) -> R;
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     fn kill();
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     fn take() -> Self::Query;
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `StorageMap` is never used
[INFO] [stdout]    --> src/storage/mod.rs:192:11
[INFO] [stdout]     |
[INFO] [stdout] 192 | pub trait StorageMap<K: Codec, V: Codec> {
[INFO] [stdout]     |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> src/storage/generator.rs:57:8
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub trait Storage {
[INFO] [stdout]    |           ------- methods in this trait
[INFO] [stdout] 56 |     /// true if the key exists in storage.
[INFO] [stdout] 57 |     fn exists(&self, key: &[u8]) -> bool;
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     fn require<T: codec::Codec>(&self, key: &[u8]) -> T { self.get(key).expect("Required values must be in storage") }
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     fn get_or_default<T: codec::Codec + Default>(&self, key: &[u8]) -> T { self.get(key).unwrap_or_default() }
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     fn kill(&self, key: &[u8]);
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     fn take<T: codec::Codec>(&self, key: &[u8]) -> Option<T> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     fn take_or_panic<T: codec::Codec>(&self, key: &[u8]) -> T { self.take(key).expect("Required values must be in storage") }
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 87 |     fn take_or_default<T: codec::Codec + Default>(&self, key: &[u8]) -> T { self.take(key).unwrap_or_default() }
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `exists`, `take`, `mutate`, and `kill` are never used
[INFO] [stdout]    --> src/storage/generator.rs:99:8
[INFO] [stdout]     |
[INFO] [stdout]  91 | pub trait StorageValue<T: codec::Codec> {
[INFO] [stdout]     |           ------------ associated functions in this trait
[INFO] [stdout] ...
[INFO] [stdout]  99 |     fn exists<S: Storage>(storage: &S) -> bool {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     fn take<S: Storage>(storage: &S) -> Self::Query;
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     fn mutate<R, F: FnOnce(&mut Self::Query) -> R, S: Storage>(f: F, storage: &S) -> R;
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     fn kill<S: Storage>(storage: &S) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 23.52s
[INFO] [stdout] warning: trait `StorageMap` is never used
[INFO] [stdout]    --> src/storage/generator.rs:124:11
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub trait StorageMap<K: codec::Codec, V: codec::Codec> {
[INFO] [stdout]     |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `A` is never constructed
[INFO] [stdout]  --> src/datadef.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct A;
[INFO] [stdout]   |            ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `B` is never constructed
[INFO] [stdout]   --> src/datadef.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct B;
[INFO] [stdout]    |            ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: syn v0.14.9
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2`
[INFO] running `Command { std: "docker" "inspect" "6fb931ef7c94a9023b2c237177aabc5091057ccf5371ee2ee9bac96629cd0e99", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6fb931ef7c94a9023b2c237177aabc5091057ccf5371ee2ee9bac96629cd0e99", kill_on_drop: false }`
[INFO] [stdout] 6fb931ef7c94a9023b2c237177aabc5091057ccf5371ee2ee9bac96629cd0e99
