[INFO] updating cached repository timpbrenner/rustassone [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/timpbrenner/rustassone [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/timpbrenner/rustassone" "work/ex/pr-59199/sources/master#bc44841ad2a2ad5f6c5e67b9e35ed8e7e71d4dc7/gh/timpbrenner/rustassone"` [INFO] [stderr] Cloning into 'work/ex/pr-59199/sources/master#bc44841ad2a2ad5f6c5e67b9e35ed8e7e71d4dc7/gh/timpbrenner/rustassone'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/timpbrenner/rustassone" "work/ex/pr-59199/sources/try#68fcf881bd1e4dbfc21e22f8c7a56b8a5d8e8f7b/gh/timpbrenner/rustassone"` [INFO] [stderr] Cloning into 'work/ex/pr-59199/sources/try#68fcf881bd1e4dbfc21e22f8c7a56b8a5d8e8f7b/gh/timpbrenner/rustassone'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] ab0de3fe69741d8f5f0493cf13904e2637c659cd [INFO] sha for GitHub repo timpbrenner/rustassone: ab0de3fe69741d8f5f0493cf13904e2637c659cd [INFO] validating manifest of timpbrenner/rustassone on toolchain master#bc44841ad2a2ad5f6c5e67b9e35ed8e7e71d4dc7 [INFO] running `"/mnt/crater-raid/crater/work/local/cargo-home/bin/cargo" "+bc44841ad2a2ad5f6c5e67b9e35ed8e7e71d4dc7-alt" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of timpbrenner/rustassone on toolchain try#68fcf881bd1e4dbfc21e22f8c7a56b8a5d8e8f7b [INFO] running `"/mnt/crater-raid/crater/work/local/cargo-home/bin/cargo" "+68fcf881bd1e4dbfc21e22f8c7a56b8a5d8e8f7b-alt" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing timpbrenner/rustassone [INFO] finished frobbing timpbrenner/rustassone [INFO] frobbed toml for timpbrenner/rustassone written to work/ex/pr-59199/sources/master#bc44841ad2a2ad5f6c5e67b9e35ed8e7e71d4dc7/gh/timpbrenner/rustassone/Cargo.toml [INFO] started frobbing timpbrenner/rustassone [INFO] finished frobbing timpbrenner/rustassone [INFO] frobbed toml for timpbrenner/rustassone written to work/ex/pr-59199/sources/try#68fcf881bd1e4dbfc21e22f8c7a56b8a5d8e8f7b/gh/timpbrenner/rustassone/Cargo.toml [INFO] crate timpbrenner/rustassone already has a lockfile, it will not be regenerated [INFO] running `"/mnt/crater-raid/crater/work/local/cargo-home/bin/cargo" "+bc44841ad2a2ad5f6c5e67b9e35ed8e7e71d4dc7-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/crater-raid/crater/work/local/cargo-home/bin/cargo" "+68fcf881bd1e4dbfc21e22f8c7a56b8a5d8e8f7b-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] checking timpbrenner/rustassone against master#bc44841ad2a2ad5f6c5e67b9e35ed8e7e71d4dc7 for pr-59199 [INFO] running `"docker" "create" "-v" "/mnt/crater-raid/crater/work/local/target-dirs/pr-59199/worker-5/master#bc44841ad2a2ad5f6c5e67b9e35ed8e7e71d4dc7:/opt/crater/target:rw,Z" "-v" "/mnt/crater-raid/crater/work/ex/pr-59199/sources/master#bc44841ad2a2ad5f6c5e67b9e35ed8e7e71d4dc7/gh/timpbrenner/rustassone:/opt/crater/workdir:ro,Z" "-v" "/mnt/crater-raid/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/crater-raid/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+bc44841ad2a2ad5f6c5e67b9e35ed8e7e71d4dc7-alt" "check" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 54cfb5638af1b86e7bfb48b2e165071127161787e2556027e431b374edf621d2 [INFO] running `"docker" "start" "-a" "54cfb5638af1b86e7bfb48b2e165071127161787e2556027e431b374edf621d2"` [INFO] [stderr] Compiling serde v1.0.62 [INFO] [stderr] Compiling pq-sys v0.4.5 [INFO] [stderr] Compiling backtrace-sys v0.1.22 [INFO] [stderr] Checking resolv-conf v0.6.1 [INFO] [stderr] Checking http v0.1.5 [INFO] [stderr] Compiling serde_derive v1.0.62 [INFO] [stderr] Checking regex v0.2.11 [INFO] [stderr] Checking regex v1.0.0 [INFO] [stderr] Checking tokio-fs v0.1.0 [INFO] [stderr] Compiling diesel_derives v1.3.0 [INFO] [stderr] Checking tokio v0.1.6 [INFO] [stderr] Checking tokio-core v0.1.17 [INFO] [stderr] Compiling backtrace v0.3.8 [INFO] [stderr] Checking backtrace v0.2.3 [INFO] [stderr] Checking error-chain v0.1.12 [INFO] [stderr] Checking failure v0.1.1 [INFO] [stderr] Checking trust-dns-proto v0.3.3 [INFO] [stderr] Checking tokio-signal v0.1.5 [INFO] [stderr] Checking env_logger v0.5.10 [INFO] [stderr] Checking dotenv v0.9.0 [INFO] [stderr] Compiling error-chain v0.11.0 [INFO] [stderr] Checking h2 v0.1.8 [INFO] [stderr] Checking diesel v1.3.0 [INFO] [stderr] Checking trust-dns-resolver v0.8.2 [INFO] [stderr] Checking serde_urlencoded v0.5.2 [INFO] [stderr] Checking serde_json v1.0.18 [INFO] [stderr] Compiling semver v0.9.0 [INFO] [stderr] Compiling cargo_metadata v0.5.4 [INFO] [stderr] Compiling skeptic v0.13.3 [INFO] [stderr] Compiling actix v0.5.7 [INFO] [stderr] Checking actix-web v0.6.10 [INFO] [stderr] Checking carcassonne v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: cannot find type `table` in this scope [INFO] [stderr] --> <::diesel::macros::table_body macros>:165:33 [INFO] [stderr] | [INFO] [stderr] 165 | derive ( Debug , Clone , Copy , QueryId ) ] /// The actual table struct [INFO] [stderr] | ^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = note: #[warn(proc_macro_derive_resolution_fallback)] on by default [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `table` in this scope [INFO] [stderr] --> <::diesel::macros::table_body macros>:165:33 [INFO] [stderr] | [INFO] [stderr] 165 | derive ( Debug , Clone , Copy , QueryId ) ] /// The actual table struct [INFO] [stderr] | ^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `id` in this scope [INFO] [stderr] --> <::diesel::macros::__diesel_column macros>:5:33 [INFO] [stderr] | [INFO] [stderr] 5 | derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name [INFO] [stderr] | ^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `tile_id` in this scope [INFO] [stderr] --> <::diesel::macros::__diesel_column macros>:5:33 [INFO] [stderr] | [INFO] [stderr] 5 | derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name [INFO] [stderr] | ^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `game_id` in this scope [INFO] [stderr] --> <::diesel::macros::__diesel_column macros>:5:33 [INFO] [stderr] | [INFO] [stderr] 5 | derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name [INFO] [stderr] | ^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `player_id` in this scope [INFO] [stderr] --> <::diesel::macros::__diesel_column macros>:5:33 [INFO] [stderr] | [INFO] [stderr] 5 | derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name [INFO] [stderr] | ^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `side` in this scope [INFO] [stderr] --> <::diesel::macros::__diesel_column macros>:5:33 [INFO] [stderr] | [INFO] [stderr] 5 | derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name [INFO] [stderr] | ^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `turn_order` in this scope [INFO] [stderr] --> <::diesel::macros::__diesel_column macros>:5:33 [INFO] [stderr] | [INFO] [stderr] 5 | derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name [INFO] [stderr] | ^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `score` in this scope [INFO] [stderr] --> <::diesel::macros::__diesel_column macros>:5:33 [INFO] [stderr] | [INFO] [stderr] 5 | derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name [INFO] [stderr] | ^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `row_offset` in this scope [INFO] [stderr] --> <::diesel::macros::__diesel_column macros>:5:33 [INFO] [stderr] | [INFO] [stderr] 5 | derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name [INFO] [stderr] | ^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `column_offset` in this scope [INFO] [stderr] --> <::diesel::macros::__diesel_column macros>:5:33 [INFO] [stderr] | [INFO] [stderr] 5 | derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name [INFO] [stderr] | ^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `rotation` in this scope [INFO] [stderr] --> <::diesel::macros::__diesel_column macros>:5:33 [INFO] [stderr] | [INFO] [stderr] 5 | derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name [INFO] [stderr] | ^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `current_player_id` in this scope [INFO] [stderr] --> <::diesel::macros::__diesel_column macros>:5:33 [INFO] [stderr] | [INFO] [stderr] 5 | derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name [INFO] [stderr] | ^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `current_state` in this scope [INFO] [stderr] --> <::diesel::macros::__diesel_column macros>:5:33 [INFO] [stderr] | [INFO] [stderr] 5 | derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name [INFO] [stderr] | ^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `current_tile_id` in this scope [INFO] [stderr] --> <::diesel::macros::__diesel_column macros>:5:33 [INFO] [stderr] | [INFO] [stderr] 5 | derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name [INFO] [stderr] | ^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `username` in this scope [INFO] [stderr] --> <::diesel::macros::__diesel_column macros>:5:33 [INFO] [stderr] | [INFO] [stderr] 5 | derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name [INFO] [stderr] | ^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `city_side` in this scope [INFO] [stderr] --> <::diesel::macros::__diesel_column macros>:5:33 [INFO] [stderr] | [INFO] [stderr] 5 | derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name [INFO] [stderr] | ^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `tile_group` in this scope [INFO] [stderr] --> <::diesel::macros::__diesel_column macros>:5:33 [INFO] [stderr] | [INFO] [stderr] 5 | derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name [INFO] [stderr] | ^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `road_side` in this scope [INFO] [stderr] --> <::diesel::macros::__diesel_column macros>:5:33 [INFO] [stderr] | [INFO] [stderr] 5 | derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name [INFO] [stderr] | ^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `Tile` in this scope [INFO] [stderr] --> src/models.rs:3:10 [INFO] [stderr] | [INFO] [stderr] 3 | #[derive(Queryable, QueryableByName)] [INFO] [stderr] | ^^^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `tiles` in this scope [INFO] [stderr] --> src/models.rs:3:21 [INFO] [stderr] | [INFO] [stderr] 3 | #[derive(Queryable, QueryableByName)] [INFO] [stderr] | ^^^^^^^^^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `Tile` in this scope [INFO] [stderr] --> src/models.rs:3:21 [INFO] [stderr] | [INFO] [stderr] 3 | #[derive(Queryable, QueryableByName)] [INFO] [stderr] | ^^^^^^^^^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `TileCity` in this scope [INFO] [stderr] --> src/models.rs:9:10 [INFO] [stderr] | [INFO] [stderr] 9 | #[derive(Queryable)] [INFO] [stderr] | ^^^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `TileRoad` in this scope [INFO] [stderr] --> src/models.rs:17:10 [INFO] [stderr] | [INFO] [stderr] 17 | #[derive(Queryable)] [INFO] [stderr] | ^^^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `Game` in this scope [INFO] [stderr] --> src/models.rs:25:10 [INFO] [stderr] | [INFO] [stderr] 25 | #[derive(Queryable)] [INFO] [stderr] | ^^^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `Player` in this scope [INFO] [stderr] --> src/models.rs:33:10 [INFO] [stderr] | [INFO] [stderr] 33 | #[derive(Queryable)] [INFO] [stderr] | ^^^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `GamePlayer` in this scope [INFO] [stderr] --> src/models.rs:39:10 [INFO] [stderr] | [INFO] [stderr] 39 | #[derive(Queryable)] [INFO] [stderr] | ^^^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `GameTile` in this scope [INFO] [stderr] --> src/models.rs:48:10 [INFO] [stderr] | [INFO] [stderr] 48 | #[derive(Queryable)] [INFO] [stderr] | ^^^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `GamePiece` in this scope [INFO] [stderr] --> src/models.rs:59:10 [INFO] [stderr] | [INFO] [stderr] 59 | #[derive(Queryable)] [INFO] [stderr] | ^^^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `table` in this scope [INFO] [stderr] --> <::diesel::macros::table_body macros>:165:33 [INFO] [stderr] | [INFO] [stderr] 165 | derive ( Debug , Clone , Copy , QueryId ) ] /// The actual table struct [INFO] [stderr] | ^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = note: #[warn(proc_macro_derive_resolution_fallback)] on by default [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `table` in this scope [INFO] [stderr] --> <::diesel::macros::table_body macros>:165:33 [INFO] [stderr] | [INFO] [stderr] 165 | derive ( Debug , Clone , Copy , QueryId ) ] /// The actual table struct [INFO] [stderr] | ^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `id` in this scope [INFO] [stderr] --> <::diesel::macros::__diesel_column macros>:5:33 [INFO] [stderr] | [INFO] [stderr] 5 | derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name [INFO] [stderr] | ^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `tile_id` in this scope [INFO] [stderr] --> <::diesel::macros::__diesel_column macros>:5:33 [INFO] [stderr] | [INFO] [stderr] 5 | derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name [INFO] [stderr] | ^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `game_id` in this scope [INFO] [stderr] --> <::diesel::macros::__diesel_column macros>:5:33 [INFO] [stderr] | [INFO] [stderr] 5 | derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name [INFO] [stderr] | ^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `player_id` in this scope [INFO] [stderr] --> <::diesel::macros::__diesel_column macros>:5:33 [INFO] [stderr] | [INFO] [stderr] 5 | derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name [INFO] [stderr] | ^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `side` in this scope [INFO] [stderr] --> <::diesel::macros::__diesel_column macros>:5:33 [INFO] [stderr] | [INFO] [stderr] 5 | derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name [INFO] [stderr] | ^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `turn_order` in this scope [INFO] [stderr] --> <::diesel::macros::__diesel_column macros>:5:33 [INFO] [stderr] | [INFO] [stderr] 5 | derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name [INFO] [stderr] | ^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `score` in this scope [INFO] [stderr] --> <::diesel::macros::__diesel_column macros>:5:33 [INFO] [stderr] | [INFO] [stderr] 5 | derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name [INFO] [stderr] | ^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `row_offset` in this scope [INFO] [stderr] --> <::diesel::macros::__diesel_column macros>:5:33 [INFO] [stderr] | [INFO] [stderr] 5 | derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name [INFO] [stderr] | ^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `column_offset` in this scope [INFO] [stderr] --> <::diesel::macros::__diesel_column macros>:5:33 [INFO] [stderr] | [INFO] [stderr] 5 | derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name [INFO] [stderr] | ^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `rotation` in this scope [INFO] [stderr] --> <::diesel::macros::__diesel_column macros>:5:33 [INFO] [stderr] | [INFO] [stderr] 5 | derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name [INFO] [stderr] | ^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `current_player_id` in this scope [INFO] [stderr] --> <::diesel::macros::__diesel_column macros>:5:33 [INFO] [stderr] | [INFO] [stderr] 5 | derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name [INFO] [stderr] | ^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `current_state` in this scope [INFO] [stderr] --> <::diesel::macros::__diesel_column macros>:5:33 [INFO] [stderr] | [INFO] [stderr] 5 | derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name [INFO] [stderr] | ^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `current_tile_id` in this scope [INFO] [stderr] --> <::diesel::macros::__diesel_column macros>:5:33 [INFO] [stderr] | [INFO] [stderr] 5 | derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name [INFO] [stderr] | ^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `username` in this scope [INFO] [stderr] --> <::diesel::macros::__diesel_column macros>:5:33 [INFO] [stderr] | [INFO] [stderr] 5 | derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name [INFO] [stderr] | ^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `city_side` in this scope [INFO] [stderr] --> <::diesel::macros::__diesel_column macros>:5:33 [INFO] [stderr] | [INFO] [stderr] 5 | derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name [INFO] [stderr] | ^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `tile_group` in this scope [INFO] [stderr] --> <::diesel::macros::__diesel_column macros>:5:33 [INFO] [stderr] | [INFO] [stderr] 5 | derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name [INFO] [stderr] | ^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `road_side` in this scope [INFO] [stderr] --> <::diesel::macros::__diesel_column macros>:5:33 [INFO] [stderr] | [INFO] [stderr] 5 | derive ( Debug , Clone , Copy , QueryId , Default ) ] pub struct $ column_name [INFO] [stderr] | ^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `Tile` in this scope [INFO] [stderr] --> src/models.rs:3:10 [INFO] [stderr] | [INFO] [stderr] 3 | #[derive(Queryable, QueryableByName)] [INFO] [stderr] | ^^^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `tiles` in this scope [INFO] [stderr] --> src/models.rs:3:21 [INFO] [stderr] | [INFO] [stderr] 3 | #[derive(Queryable, QueryableByName)] [INFO] [stderr] | ^^^^^^^^^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `Tile` in this scope [INFO] [stderr] --> src/models.rs:3:21 [INFO] [stderr] | [INFO] [stderr] 3 | #[derive(Queryable, QueryableByName)] [INFO] [stderr] | ^^^^^^^^^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `TileCity` in this scope [INFO] [stderr] --> src/models.rs:9:10 [INFO] [stderr] | [INFO] [stderr] 9 | #[derive(Queryable)] [INFO] [stderr] | ^^^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `TileRoad` in this scope [INFO] [stderr] --> src/models.rs:17:10 [INFO] [stderr] | [INFO] [stderr] 17 | #[derive(Queryable)] [INFO] [stderr] | ^^^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `Game` in this scope [INFO] [stderr] --> src/models.rs:25:10 [INFO] [stderr] | [INFO] [stderr] 25 | #[derive(Queryable)] [INFO] [stderr] | ^^^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `Player` in this scope [INFO] [stderr] --> src/models.rs:33:10 [INFO] [stderr] | [INFO] [stderr] 33 | #[derive(Queryable)] [INFO] [stderr] | ^^^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `GamePlayer` in this scope [INFO] [stderr] --> src/models.rs:39:10 [INFO] [stderr] | [INFO] [stderr] 39 | #[derive(Queryable)] [INFO] [stderr] | ^^^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `GameTile` in this scope [INFO] [stderr] --> src/models.rs:48:10 [INFO] [stderr] | [INFO] [stderr] 48 | #[derive(Queryable)] [INFO] [stderr] | ^^^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `GamePiece` in this scope [INFO] [stderr] --> src/models.rs:59:10 [INFO] [stderr] | [INFO] [stderr] 59 | #[derive(Queryable)] [INFO] [stderr] | ^^^^^^^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: unused variable: `req` [INFO] [stderr] --> src/js_models.rs:19:28 [INFO] [stderr] | [INFO] [stderr] 19 | fn respond_to(self, req: &HttpRequest) -> Result { [INFO] [stderr] | ^^^ help: consider prefixing with an underscore: `_req` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `req` [INFO] [stderr] --> src/js_models.rs:56:28 [INFO] [stderr] | [INFO] [stderr] 56 | fn respond_to(self, req: &HttpRequest) -> Result { [INFO] [stderr] | ^^^ help: consider prefixing with an underscore: `_req` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `req` [INFO] [stderr] --> src/player.rs:20:28 [INFO] [stderr] | [INFO] [stderr] 20 | fn respond_to(self, req: &HttpRequest) -> Result { [INFO] [stderr] | ^^^ help: consider prefixing with an underscore: `_req` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `req` [INFO] [stderr] --> src/js_models.rs:19:28 [INFO] [stderr] | [INFO] [stderr] 19 | fn respond_to(self, req: &HttpRequest) -> Result { [INFO] [stderr] | ^^^ help: consider prefixing with an underscore: `_req` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `req` [INFO] [stderr] --> src/js_models.rs:56:28 [INFO] [stderr] | [INFO] [stderr] 56 | fn respond_to(self, req: &HttpRequest) -> Result { [INFO] [stderr] | ^^^ help: consider prefixing with an underscore: `_req` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `req` [INFO] [stderr] --> src/player.rs:20:28 [INFO] [stderr] | [INFO] [stderr] 20 | fn respond_to(self, req: &HttpRequest) -> Result { [INFO] [stderr] | ^^^ help: consider prefixing with an underscore: `_req` [INFO] [stderr] [INFO] [stderr] warning: structure field `playerId` should have a snake case name [INFO] [stderr] --> src/js_models.rs:7:9 [INFO] [stderr] | [INFO] [stderr] 7 | pub playerId: i32, [INFO] [stderr] | ^^^^^^^^ help: convert the identifier to snake case: `player_id` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: structure field `rowOffset` should have a snake case name [INFO] [stderr] --> src/js_models.rs:10:9 [INFO] [stderr] | [INFO] [stderr] 10 | pub rowOffset: i32, [INFO] [stderr] | ^^^^^^^^^ help: convert the identifier to snake case: `row_offset` [INFO] [stderr] [INFO] [stderr] warning: structure field `columnOffset` should have a snake case name [INFO] [stderr] --> src/js_models.rs:11:9 [INFO] [stderr] | [INFO] [stderr] 11 | pub columnOffset: i32, [INFO] [stderr] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `column_offset` [INFO] [stderr] [INFO] [stderr] warning: structure field `playerId` should have a snake case name [INFO] [stderr] --> src/js_models.rs:31:9 [INFO] [stderr] | [INFO] [stderr] 31 | pub playerId: i32, [INFO] [stderr] | ^^^^^^^^ help: convert the identifier to snake case: `player_id` [INFO] [stderr] [INFO] [stderr] warning: structure field `tileId` should have a snake case name [INFO] [stderr] --> src/js_models.rs:32:9 [INFO] [stderr] | [INFO] [stderr] 32 | pub tileId: i32, [INFO] [stderr] | ^^^^^^ help: convert the identifier to snake case: `tile_id` [INFO] [stderr] [INFO] [stderr] warning: structure field `currentPlayerId` should have a snake case name [INFO] [stderr] --> src/js_models.rs:47:9 [INFO] [stderr] | [INFO] [stderr] 47 | pub currentPlayerId: i32, [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `current_player_id` [INFO] [stderr] [INFO] [stderr] warning: structure field `currentState` should have a snake case name [INFO] [stderr] --> src/js_models.rs:48:9 [INFO] [stderr] | [INFO] [stderr] 48 | pub currentState: String, [INFO] [stderr] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `current_state` [INFO] [stderr] [INFO] [stderr] warning: structure field `currentTile` should have a snake case name [INFO] [stderr] --> src/js_models.rs:49:9 [INFO] [stderr] | [INFO] [stderr] 49 | pub currentTile: Option, [INFO] [stderr] | ^^^^^^^^^^^ help: convert the identifier to snake case: `current_tile` [INFO] [stderr] [INFO] [stderr] warning: structure field `playerId` should have a snake case name [INFO] [stderr] --> src/js_models.rs:7:9 [INFO] [stderr] | [INFO] [stderr] 7 | pub playerId: i32, [INFO] [stderr] | ^^^^^^^^ help: convert the identifier to snake case: `player_id` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: structure field `rowOffset` should have a snake case name [INFO] [stderr] --> src/js_models.rs:10:9 [INFO] [stderr] | [INFO] [stderr] 10 | pub rowOffset: i32, [INFO] [stderr] | ^^^^^^^^^ help: convert the identifier to snake case: `row_offset` [INFO] [stderr] [INFO] [stderr] warning: structure field `columnOffset` should have a snake case name [INFO] [stderr] --> src/js_models.rs:11:9 [INFO] [stderr] | [INFO] [stderr] 11 | pub columnOffset: i32, [INFO] [stderr] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `column_offset` [INFO] [stderr] [INFO] [stderr] warning: structure field `playerId` should have a snake case name [INFO] [stderr] --> src/js_models.rs:31:9 [INFO] [stderr] | [INFO] [stderr] 31 | pub playerId: i32, [INFO] [stderr] | ^^^^^^^^ help: convert the identifier to snake case: `player_id` [INFO] [stderr] [INFO] [stderr] warning: structure field `tileId` should have a snake case name [INFO] [stderr] --> src/js_models.rs:32:9 [INFO] [stderr] | [INFO] [stderr] 32 | pub tileId: i32, [INFO] [stderr] | ^^^^^^ help: convert the identifier to snake case: `tile_id` [INFO] [stderr] [INFO] [stderr] warning: structure field `currentPlayerId` should have a snake case name [INFO] [stderr] --> src/js_models.rs:47:9 [INFO] [stderr] | [INFO] [stderr] 47 | pub currentPlayerId: i32, [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `current_player_id` [INFO] [stderr] [INFO] [stderr] warning: structure field `currentState` should have a snake case name [INFO] [stderr] --> src/js_models.rs:48:9 [INFO] [stderr] | [INFO] [stderr] 48 | pub currentState: String, [INFO] [stderr] | ^^^^^^^^^^^^ help: convert the identifier to snake case: `current_state` [INFO] [stderr] [INFO] [stderr] warning: structure field `currentTile` should have a snake case name [INFO] [stderr] --> src/js_models.rs:49:9 [INFO] [stderr] | [INFO] [stderr] 49 | pub currentTile: Option, [INFO] [stderr] | ^^^^^^^^^^^ help: convert the identifier to snake case: `current_tile` [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1m 15s [INFO] running `"docker" "inspect" "54cfb5638af1b86e7bfb48b2e165071127161787e2556027e431b374edf621d2"` [INFO] running `"docker" "rm" "-f" "54cfb5638af1b86e7bfb48b2e165071127161787e2556027e431b374edf621d2"` [INFO] [stdout] 54cfb5638af1b86e7bfb48b2e165071127161787e2556027e431b374edf621d2