[INFO] updating cached repository coderedtails/tic_tac_toe_rust [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/coderedtails/tic_tac_toe_rust [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/coderedtails/tic_tac_toe_rust" "work/ex/pr-63376/sources/master#60960a260f7b5c695fd0717311d72ce62dd4eb43/gh/coderedtails/tic_tac_toe_rust"` [INFO] [stderr] Cloning into 'work/ex/pr-63376/sources/master#60960a260f7b5c695fd0717311d72ce62dd4eb43/gh/coderedtails/tic_tac_toe_rust'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/coderedtails/tic_tac_toe_rust" "work/ex/pr-63376/sources/try#266783e4e09e4e9d5307c1c8e695659c58bbcac7/gh/coderedtails/tic_tac_toe_rust"` [INFO] [stderr] Cloning into 'work/ex/pr-63376/sources/try#266783e4e09e4e9d5307c1c8e695659c58bbcac7/gh/coderedtails/tic_tac_toe_rust'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 9d6d3dd87180a9b88e54b1231de17428b4a8250c [INFO] sha for GitHub repo coderedtails/tic_tac_toe_rust: 9d6d3dd87180a9b88e54b1231de17428b4a8250c [INFO] validating manifest of coderedtails/tic_tac_toe_rust on toolchain master#60960a260f7b5c695fd0717311d72ce62dd4eb43 [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+60960a260f7b5c695fd0717311d72ce62dd4eb43-alt" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of coderedtails/tic_tac_toe_rust on toolchain try#266783e4e09e4e9d5307c1c8e695659c58bbcac7 [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+266783e4e09e4e9d5307c1c8e695659c58bbcac7-alt" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing coderedtails/tic_tac_toe_rust [INFO] removed 0 missing tests [INFO] finished frobbing coderedtails/tic_tac_toe_rust [INFO] frobbed toml for coderedtails/tic_tac_toe_rust written to work/ex/pr-63376/sources/master#60960a260f7b5c695fd0717311d72ce62dd4eb43/gh/coderedtails/tic_tac_toe_rust/Cargo.toml [INFO] started frobbing coderedtails/tic_tac_toe_rust [INFO] removed 0 missing tests [INFO] finished frobbing coderedtails/tic_tac_toe_rust [INFO] frobbed toml for coderedtails/tic_tac_toe_rust written to work/ex/pr-63376/sources/try#266783e4e09e4e9d5307c1c8e695659c58bbcac7/gh/coderedtails/tic_tac_toe_rust/Cargo.toml [INFO] crate coderedtails/tic_tac_toe_rust already has a lockfile, it will not be regenerated [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+60960a260f7b5c695fd0717311d72ce62dd4eb43-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] [stderr] error: the lock file /mnt/big/crater/work/ex/pr-63376/sources/master#60960a260f7b5c695fd0717311d72ce62dd4eb43/gh/coderedtails/tic_tac_toe_rust/Cargo.lock needs to be updated but --locked was passed to prevent this [INFO] the lockfile is outdated, regenerating it [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+60960a260f7b5c695fd0717311d72ce62dd4eb43-alt" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] [stderr] Updating git repository `https://github.com/ogham/rust-ansi-term` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+266783e4e09e4e9d5307c1c8e695659c58bbcac7-alt" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] [stderr] Updating git repository `https://github.com/ogham/rust-ansi-term` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+60960a260f7b5c695fd0717311d72ce62dd4eb43-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+266783e4e09e4e9d5307c1c8e695659c58bbcac7-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] checking coderedtails/tic_tac_toe_rust against try#266783e4e09e4e9d5307c1c8e695659c58bbcac7 for pr-63376 [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/pr-63376/worker-5/try#266783e4e09e4e9d5307c1c8e695659c58bbcac7:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/pr-63376/sources/try#266783e4e09e4e9d5307c1c8e695659c58bbcac7/gh/coderedtails/tic_tac_toe_rust:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/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" "+266783e4e09e4e9d5307c1c8e695659c58bbcac7-alt" "check" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 17a6539b4e0d1224a564757a40a1e8afd165fe68f960102c11183b37bd6b43ba [INFO] running `"docker" "start" "-a" "17a6539b4e0d1224a564757a40a1e8afd165fe68f960102c11183b37bd6b43ba"` [INFO] [stderr] Checking ansi_term v0.12.0 (https://github.com/ogham/rust-ansi-term#6755eaa7) [INFO] [stderr] Checking tic_tac_toe v0.0.1 (/opt/crater/workdir) [INFO] [stderr] error: invalid suffix `u` for integer literal [INFO] [stderr] --> src/game/game_mode.rs:37:65 [INFO] [stderr] | [INFO] [stderr] 37 | GameMode { first: first, second: second, counter: Cell::new(0u) } [INFO] [stderr] | ^^ invalid suffix `u` [INFO] [stderr] | [INFO] [stderr] = help: the suffix must be one of the integral types (`u32`, `isize`, etc) [INFO] [stderr] [INFO] [stderr] error: invalid suffix `u` for integer literal [INFO] [stderr] --> src/players/ai.rs:31:29 [INFO] [stderr] | [INFO] [stderr] 31 | let mut best_move = 0u; [INFO] [stderr] | ^^ invalid suffix `u` [INFO] [stderr] | [INFO] [stderr] = help: the suffix must be one of the integral types (`u32`, `isize`, etc) [INFO] [stderr] [INFO] [stderr] error: invalid suffix `u` for integer literal [INFO] [stderr] --> src/game/game_mode.rs:37:65 [INFO] [stderr] | [INFO] [stderr] 37 | GameMode { first: first, second: second, counter: Cell::new(0u) } [INFO] [stderr] | ^^ invalid suffix `u` [INFO] [stderr] | [INFO] [stderr] = help: the suffix must be one of the integral types (`u32`, `isize`, etc) [INFO] [stderr] [INFO] [stderr] error: invalid suffix `u` for integer literal [INFO] [stderr] --> src/players/ai.rs:31:29 [INFO] [stderr] | [INFO] [stderr] 31 | let mut best_move = 0u; [INFO] [stderr] | ^^ invalid suffix `u` [INFO] [stderr] | [INFO] [stderr] = help: the suffix must be one of the integral types (`u32`, `isize`, etc) [INFO] [stderr] [INFO] [stderr] error[E0432]: unresolved import `std::num::Int` [INFO] [stderr] --> src/players/ai.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use std::num::Int; [INFO] [stderr] | ^^^^^^^^^^^^^ no `Int` in `num` [INFO] [stderr] [INFO] [stderr] error[E0432]: unresolved import `std::rand` [INFO] [stderr] --> src/players/ai.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use std::rand; [INFO] [stderr] | ^^^^^^^^^ no `rand` in the root [INFO] [stderr] [INFO] [stderr] error[E0432]: unresolved import `std::rand` [INFO] [stderr] --> src/players/ai.rs:8:10 [INFO] [stderr] | [INFO] [stderr] 8 | use std::rand::Rng; [INFO] [stderr] | ^^^^ could not find `rand` in `std` [INFO] [stderr] [INFO] [stderr] error: cannot find derive macro `Show` in this scope [INFO] [stderr] --> src/core/board.rs:6:10 [INFO] [stderr] | [INFO] [stderr] 6 | #[derive(Show, Clone, Copy, PartialEq)] [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] error: cannot find derive macro `Show` in this scope [INFO] [stderr] --> src/core/marker.rs:1:10 [INFO] [stderr] | [INFO] [stderr] 1 | #[derive(Show, Clone, Copy, PartialEq)] [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] error: cannot find derive macro `Show` in this scope [INFO] [stderr] --> src/core/slot.rs:3:10 [INFO] [stderr] | [INFO] [stderr] 3 | #[derive(Show, Copy, PartialEq)] [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] error[E0432]: unresolved import `std::num::Int` [INFO] [stderr] --> src/players/ai.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use std::num::Int; [INFO] [stderr] | ^^^^^^^^^^^^^ no `Int` in `num` [INFO] [stderr] [INFO] [stderr] error[E0432]: unresolved import `std::rand` [INFO] [stderr] --> src/players/ai.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use std::rand; [INFO] [stderr] | ^^^^^^^^^ no `rand` in the root [INFO] [stderr] [INFO] [stderr] error[E0432]: unresolved import `std::rand` [INFO] [stderr] --> src/players/ai.rs:8:10 [INFO] [stderr] | [INFO] [stderr] 8 | use std::rand::Rng; [INFO] [stderr] | ^^^^ could not find `rand` in `std` [INFO] [stderr] [INFO] [stderr] error: cannot find derive macro `Show` in this scope [INFO] [stderr] --> src/core/board.rs:6:10 [INFO] [stderr] | [INFO] [stderr] 6 | #[derive(Show, Clone, Copy, PartialEq)] [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] error: cannot find derive macro `Show` in this scope [INFO] [stderr] --> src/core/marker.rs:1:10 [INFO] [stderr] | [INFO] [stderr] 1 | #[derive(Show, Clone, Copy, PartialEq)] [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] error: cannot find derive macro `Show` in this scope [INFO] [stderr] --> src/core/slot.rs:3:10 [INFO] [stderr] | [INFO] [stderr] 3 | #[derive(Show, Copy, PartialEq)] [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `uint` in this scope [INFO] [stderr] --> src/core/board.rs:11:24 [INFO] [stderr] | [INFO] [stderr] 11 | pub static BOARD_SIZE: uint = 3; [INFO] [stderr] | ^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `uint` in this scope [INFO] [stderr] --> src/core/board.rs:20:42 [INFO] [stderr] | [INFO] [stderr] 20 | pub fn remaining_moves(&self) -> Vec { [INFO] [stderr] | ^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `uint` in this scope [INFO] [stderr] --> src/core/board.rs:49:38 [INFO] [stderr] | [INFO] [stderr] 49 | pub fn make_move(self, location: uint, player: &Marker) -> Board { [INFO] [stderr] | ^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `int` in this scope [INFO] [stderr] --> src/core/board.rs:59:27 [INFO] [stderr] | [INFO] [stderr] 59 | pub fn value(self) -> int { [INFO] [stderr] | ^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `int` in this scope [INFO] [stderr] --> src/core/board.rs:61:51 [INFO] [stderr] | [INFO] [stderr] 61 | (self.remaining_moves().len() + 1) as int [INFO] [stderr] | ^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `uint` in this scope [INFO] [stderr] --> src/core/board.rs:76:38 [INFO] [stderr] | [INFO] [stderr] 76 | fn keep_moves(slot: &Slot) -> Option { [INFO] [stderr] | ^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `uint` in this scope [INFO] [stderr] --> src/core/board.rs:108:30 [INFO] [stderr] | [INFO] [stderr] 108 | fn of(board: &[Slot], first: uint, second: uint, third: uint) -> line::Line { [INFO] [stderr] | ^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `uint` in this scope [INFO] [stderr] --> src/core/board.rs:108:44 [INFO] [stderr] | [INFO] [stderr] 108 | fn of(board: &[Slot], first: uint, second: uint, third: uint) -> line::Line { [INFO] [stderr] | ^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `uint` in this scope [INFO] [stderr] --> src/core/board.rs:108:57 [INFO] [stderr] | [INFO] [stderr] 108 | fn of(board: &[Slot], first: uint, second: uint, third: uint) -> line::Line { [INFO] [stderr] | ^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `uint` in this scope [INFO] [stderr] --> src/core/slot.rs:6:10 [INFO] [stderr] | [INFO] [stderr] 6 | Move(uint) [INFO] [stderr] | ^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `uint` in this scope [INFO] [stderr] --> src/game/game_mode.rs:13:23 [INFO] [stderr] | [INFO] [stderr] 13 | pub counter: Cell, [INFO] [stderr] | ^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `uint` in this scope [INFO] [stderr] --> src/game/game_mode.rs:18:17 [INFO] [stderr] | [INFO] [stderr] 18 | let val: uint = self.counter.get(); [INFO] [stderr] | ^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `uint` in this scope [INFO] [stderr] --> src/io/display.rs:45:61 [INFO] [stderr] | [INFO] [stderr] 45 | pub fn show_option<'a>(&self, mode: &GameMode<'a>, idx: uint) { [INFO] [stderr] | ^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `uint` in this scope [INFO] [stderr] --> src/io/display.rs:59:35 [INFO] [stderr] | [INFO] [stderr] 59 | pub fn request_mode(&self) -> uint { [INFO] [stderr] | ^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `uint` in this scope [INFO] [stderr] --> src/io/display.rs:63:35 [INFO] [stderr] | [INFO] [stderr] 63 | pub fn request_move(&self) -> uint { [INFO] [stderr] | ^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `uint` in this scope [INFO] [stderr] --> src/io/display.rs:67:53 [INFO] [stderr] | [INFO] [stderr] 67 | fn read_int_with_output(&self, output: &str) -> uint { [INFO] [stderr] | ^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `uint` in this scope [INFO] [stderr] --> src/io/display.rs:73:40 [INFO] [stderr] | [INFO] [stderr] 73 | fn to_int(&self, input: String) -> uint { [INFO] [stderr] | ^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `uint` in this scope [INFO] [stderr] --> src/io/display.rs:74:25 [INFO] [stderr] | [INFO] [stderr] 74 | let raw: Option = input.as_slice().trim().parse(); [INFO] [stderr] | ^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `uint` in this scope [INFO] [stderr] --> src/players/ai.rs:30:46 [INFO] [stderr] | [INFO] [stderr] 30 | pub fn best_move(&self, board: Board) -> uint { [INFO] [stderr] | ^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `int` in this scope [INFO] [stderr] --> src/players/ai.rs:32:29 [INFO] [stderr] | [INFO] [stderr] 32 | let mut best_score: int = Int::min_value(); [INFO] [stderr] | ^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `int` in this scope [INFO] [stderr] --> src/players/ai.rs:45:37 [INFO] [stderr] | [INFO] [stderr] 45 | fn negamax(board: Board, alpha: int, beta: int, name: Marker) -> int { [INFO] [stderr] | ^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `int` in this scope [INFO] [stderr] --> src/players/ai.rs:45:48 [INFO] [stderr] | [INFO] [stderr] 45 | fn negamax(board: Board, alpha: int, beta: int, name: Marker) -> int { [INFO] [stderr] | ^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `int` in this scope [INFO] [stderr] --> src/players/ai.rs:45:70 [INFO] [stderr] | [INFO] [stderr] 45 | fn negamax(board: Board, alpha: int, beta: int, name: Marker) -> int { [INFO] [stderr] | ^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `int` in this scope [INFO] [stderr] --> src/players/ai.rs:53:54 [INFO] [stderr] | [INFO] [stderr] 53 | fn value_of_board(board: Board, name: Marker) -> int { [INFO] [stderr] | ^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `int` in this scope [INFO] [stderr] --> src/players/ai.rs:61:45 [INFO] [stderr] | [INFO] [stderr] 61 | fn score_unfinshed(board: Board, alpha: int, beta: int, name: Marker) -> int { [INFO] [stderr] | ^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `int` in this scope [INFO] [stderr] --> src/players/ai.rs:61:56 [INFO] [stderr] | [INFO] [stderr] 61 | fn score_unfinshed(board: Board, alpha: int, beta: int, name: Marker) -> int { [INFO] [stderr] | ^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `int` in this scope [INFO] [stderr] --> src/players/ai.rs:61:78 [INFO] [stderr] | [INFO] [stderr] 61 | fn score_unfinshed(board: Board, alpha: int, beta: int, name: Marker) -> int { [INFO] [stderr] | ^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `uint` in this scope [INFO] [stderr] --> src/players/ai.rs:77:28 [INFO] [stderr] | [INFO] [stderr] 77 | fn shuffled(moves: Vec) -> Vec { [INFO] [stderr] | ^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `uint` in this scope [INFO] [stderr] --> src/players/ai.rs:77:42 [INFO] [stderr] | [INFO] [stderr] 77 | fn shuffled(moves: Vec) -> Vec { [INFO] [stderr] | ^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `uint` in this scope [INFO] [stderr] --> src/players/ai.rs:78:29 [INFO] [stderr] | [INFO] [stderr] 78 | let mut result: Vec = moves; [INFO] [stderr] | ^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `uint` in this scope [INFO] [stderr] --> src/players/ai.rs:80:34 [INFO] [stderr] | [INFO] [stderr] 80 | let mut slice: &mut [uint] = &mut *result; [INFO] [stderr] | ^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `uint` in this scope [INFO] [stderr] --> src/players/human.rs:29:43 [INFO] [stderr] | [INFO] [stderr] 29 | fn choose_move_from(&self, moves: Vec) -> uint { [INFO] [stderr] | ^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `uint` in this scope [INFO] [stderr] --> src/players/human.rs:29:53 [INFO] [stderr] | [INFO] [stderr] 29 | fn choose_move_from(&self, moves: Vec) -> uint { [INFO] [stderr] | ^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `uint` in this scope [INFO] [stderr] --> src/players/scripted_player.rs:9:28 [INFO] [stderr] | [INFO] [stderr] 9 | pub moves: RefCell>, [INFO] [stderr] | ^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `uint` in this scope [INFO] [stderr] --> src/players/scripted_player.rs:25:48 [INFO] [stderr] | [INFO] [stderr] 25 | pub fn new_with_moves(name: Marker, moves: Vec) -> ScriptedPlayer { [INFO] [stderr] | ^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0658]: box expression syntax is experimental; you can call `Box::new` instead [INFO] [stderr] --> src/game/game_mode.rs:61:9 [INFO] [stderr] | [INFO] [stderr] 61 | new(box human, box ai) [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: for more information, see https://github.com/rust-lang/rust/issues/49733 [INFO] [stderr] = help: add `#![feature(box_syntax)]` to the crate attributes to enable [INFO] [stderr] [INFO] [stderr] error[E0658]: box expression syntax is experimental; you can call `Box::new` instead [INFO] [stderr] --> src/game/game_mode.rs:61:20 [INFO] [stderr] | [INFO] [stderr] 61 | new(box human, box ai) [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: for more information, see https://github.com/rust-lang/rust/issues/49733 [INFO] [stderr] = help: add `#![feature(box_syntax)]` to the crate attributes to enable [INFO] [stderr] [INFO] [stderr] error[E0658]: box expression syntax is experimental; you can call `Box::new` instead [INFO] [stderr] --> src/game/game_mode.rs:67:9 [INFO] [stderr] | [INFO] [stderr] 67 | new(box ai, box human) [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: for more information, see https://github.com/rust-lang/rust/issues/49733 [INFO] [stderr] = help: add `#![feature(box_syntax)]` to the crate attributes to enable [INFO] [stderr] [INFO] [stderr] error[E0658]: box expression syntax is experimental; you can call `Box::new` instead [INFO] [stderr] --> src/game/game_mode.rs:67:17 [INFO] [stderr] | [INFO] [stderr] 67 | new(box ai, box human) [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: for more information, see https://github.com/rust-lang/rust/issues/49733 [INFO] [stderr] = help: add `#![feature(box_syntax)]` to the crate attributes to enable [INFO] [stderr] [INFO] [stderr] error[E0658]: box expression syntax is experimental; you can call `Box::new` instead [INFO] [stderr] --> src/game/game_mode.rs:73:9 [INFO] [stderr] | [INFO] [stderr] 73 | new(box human1, box human2) [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: for more information, see https://github.com/rust-lang/rust/issues/49733 [INFO] [stderr] = help: add `#![feature(box_syntax)]` to the crate attributes to enable [INFO] [stderr] [INFO] [stderr] error[E0658]: box expression syntax is experimental; you can call `Box::new` instead [INFO] [stderr] --> src/game/game_mode.rs:73:21 [INFO] [stderr] | [INFO] [stderr] 73 | new(box human1, box human2) [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: for more information, see https://github.com/rust-lang/rust/issues/49733 [INFO] [stderr] = help: add `#![feature(box_syntax)]` to the crate attributes to enable [INFO] [stderr] [INFO] [stderr] error[E0658]: box expression syntax is experimental; you can call `Box::new` instead [INFO] [stderr] --> src/game/game_mode.rs:79:9 [INFO] [stderr] | [INFO] [stderr] 79 | new(box ai1, box ai2) [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: for more information, see https://github.com/rust-lang/rust/issues/49733 [INFO] [stderr] = help: add `#![feature(box_syntax)]` to the crate attributes to enable [INFO] [stderr] [INFO] [stderr] error[E0658]: box expression syntax is experimental; you can call `Box::new` instead [INFO] [stderr] --> src/game/game_mode.rs:79:18 [INFO] [stderr] | [INFO] [stderr] 79 | new(box ai1, box ai2) [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: for more information, see https://github.com/rust-lang/rust/issues/49733 [INFO] [stderr] = help: add `#![feature(box_syntax)]` to the crate attributes to enable [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/game/game_mode.rs:11:21 [INFO] [stderr] | [INFO] [stderr] 11 | pub first: Box, [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn Player + 'a` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/game/game_mode.rs:12:21 [INFO] [stderr] | [INFO] [stderr] 12 | pub second: Box, [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn Player + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/game/game_mode.rs:17:34 [INFO] [stderr] | [INFO] [stderr] 17 | pub fn next_player(&self) -> &Player { [INFO] [stderr] | ^^^^^^ help: use `dyn`: `dyn Player` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/game/game_mode.rs:19:21 [INFO] [stderr] | [INFO] [stderr] 19 | let player: &Player = if val % 2 == 0 { [INFO] [stderr] | ^^^^^^ help: use `dyn`: `dyn Player` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/game/game_mode.rs:36:27 [INFO] [stderr] | [INFO] [stderr] 36 | pub fn new<'a>(first: Box, second: Box) -> GameMode<'a> { [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn Player + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/game/game_mode.rs:36:53 [INFO] [stderr] | [INFO] [stderr] 36 | pub fn new<'a>(first: Box, second: Box) -> GameMode<'a> { [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn Player + 'a` [INFO] [stderr] [INFO] [stderr] error[E0277]: the trait bound `core::slot::Slot: std::clone::Clone` is not satisfied [INFO] [stderr] --> src/core/slot.rs:3:16 [INFO] [stderr] | [INFO] [stderr] 3 | #[derive(Show, Copy, PartialEq)] [INFO] [stderr] | ^^^^ the trait `std::clone::Clone` is not implemented for `core::slot::Slot` [INFO] [stderr] [INFO] [stderr] error[E0277]: the trait bound `io::cli::Cli: std::clone::Clone` is not satisfied [INFO] [stderr] --> src/io/cli.rs:4:10 [INFO] [stderr] | [INFO] [stderr] 4 | #[derive(Copy)] [INFO] [stderr] | ^^^^ the trait `std::clone::Clone` is not implemented for `io::cli::Cli` [INFO] [stderr] [INFO] [stderr] error[E0277]: the trait bound `io::display::Display

: std::clone::Clone` is not satisfied [INFO] [stderr] --> src/io/display.rs:9:10 [INFO] [stderr] | [INFO] [stderr] 9 | #[derive(Copy, PartialEq)] [INFO] [stderr] | ^^^^ the trait `std::clone::Clone` is not implemented for `io::display::Display

` [INFO] [stderr] [INFO] [stderr] error: aborting due to 54 previous errors [INFO] [stderr] [INFO] [stderr] Some errors have detailed explanations: E0277, E0412, E0432, E0658. [INFO] [stderr] For more information about an error, try `rustc --explain E0277`. [INFO] [stderr] error: Could not compile `tic_tac_toe`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error[E0412]: cannot find type `uint` in this scope [INFO] [stderr] --> src/core/board.rs:11:24 [INFO] [stderr] | [INFO] [stderr] 11 | pub static BOARD_SIZE: uint = 3; [INFO] [stderr] | ^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `uint` in this scope [INFO] [stderr] --> src/core/board.rs:20:42 [INFO] [stderr] | [INFO] [stderr] 20 | pub fn remaining_moves(&self) -> Vec { [INFO] [stderr] | ^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `uint` in this scope [INFO] [stderr] --> src/core/board.rs:49:38 [INFO] [stderr] | [INFO] [stderr] 49 | pub fn make_move(self, location: uint, player: &Marker) -> Board { [INFO] [stderr] | ^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `int` in this scope [INFO] [stderr] --> src/core/board.rs:59:27 [INFO] [stderr] | [INFO] [stderr] 59 | pub fn value(self) -> int { [INFO] [stderr] | ^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `int` in this scope [INFO] [stderr] --> src/core/board.rs:61:51 [INFO] [stderr] | [INFO] [stderr] 61 | (self.remaining_moves().len() + 1) as int [INFO] [stderr] | ^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `uint` in this scope [INFO] [stderr] --> src/core/board.rs:76:38 [INFO] [stderr] | [INFO] [stderr] 76 | fn keep_moves(slot: &Slot) -> Option { [INFO] [stderr] | ^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `uint` in this scope [INFO] [stderr] --> src/core/board.rs:108:30 [INFO] [stderr] | [INFO] [stderr] 108 | fn of(board: &[Slot], first: uint, second: uint, third: uint) -> line::Line { [INFO] [stderr] | ^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `uint` in this scope [INFO] [stderr] --> src/core/board.rs:108:44 [INFO] [stderr] | [INFO] [stderr] 108 | fn of(board: &[Slot], first: uint, second: uint, third: uint) -> line::Line { [INFO] [stderr] | ^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `uint` in this scope [INFO] [stderr] --> src/core/board.rs:108:57 [INFO] [stderr] | [INFO] [stderr] 108 | fn of(board: &[Slot], first: uint, second: uint, third: uint) -> line::Line { [INFO] [stderr] | ^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `uint` in this scope [INFO] [stderr] --> src/core/slot.rs:6:10 [INFO] [stderr] | [INFO] [stderr] 6 | Move(uint) [INFO] [stderr] | ^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `uint` in this scope [INFO] [stderr] --> src/game/game_mode.rs:13:23 [INFO] [stderr] | [INFO] [stderr] 13 | pub counter: Cell, [INFO] [stderr] | ^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `uint` in this scope [INFO] [stderr] --> src/game/game_mode.rs:18:17 [INFO] [stderr] | [INFO] [stderr] 18 | let val: uint = self.counter.get(); [INFO] [stderr] | ^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `uint` in this scope [INFO] [stderr] --> src/io/display.rs:45:61 [INFO] [stderr] | [INFO] [stderr] 45 | pub fn show_option<'a>(&self, mode: &GameMode<'a>, idx: uint) { [INFO] [stderr] | ^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `uint` in this scope [INFO] [stderr] --> src/io/display.rs:59:35 [INFO] [stderr] | [INFO] [stderr] 59 | pub fn request_mode(&self) -> uint { [INFO] [stderr] | ^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `uint` in this scope [INFO] [stderr] --> src/io/display.rs:63:35 [INFO] [stderr] | [INFO] [stderr] 63 | pub fn request_move(&self) -> uint { [INFO] [stderr] | ^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `uint` in this scope [INFO] [stderr] --> src/io/display.rs:67:53 [INFO] [stderr] | [INFO] [stderr] 67 | fn read_int_with_output(&self, output: &str) -> uint { [INFO] [stderr] | ^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `uint` in this scope [INFO] [stderr] --> src/io/display.rs:73:40 [INFO] [stderr] | [INFO] [stderr] 73 | fn to_int(&self, input: String) -> uint { [INFO] [stderr] | ^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `uint` in this scope [INFO] [stderr] --> src/io/display.rs:74:25 [INFO] [stderr] | [INFO] [stderr] 74 | let raw: Option = input.as_slice().trim().parse(); [INFO] [stderr] | ^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `uint` in this scope [INFO] [stderr] --> src/players/ai.rs:30:46 [INFO] [stderr] | [INFO] [stderr] 30 | pub fn best_move(&self, board: Board) -> uint { [INFO] [stderr] | ^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `int` in this scope [INFO] [stderr] --> src/players/ai.rs:32:29 [INFO] [stderr] | [INFO] [stderr] 32 | let mut best_score: int = Int::min_value(); [INFO] [stderr] | ^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `int` in this scope [INFO] [stderr] --> src/players/ai.rs:45:37 [INFO] [stderr] | [INFO] [stderr] 45 | fn negamax(board: Board, alpha: int, beta: int, name: Marker) -> int { [INFO] [stderr] | ^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `int` in this scope [INFO] [stderr] --> src/players/ai.rs:45:48 [INFO] [stderr] | [INFO] [stderr] 45 | fn negamax(board: Board, alpha: int, beta: int, name: Marker) -> int { [INFO] [stderr] | ^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `int` in this scope [INFO] [stderr] --> src/players/ai.rs:45:70 [INFO] [stderr] | [INFO] [stderr] 45 | fn negamax(board: Board, alpha: int, beta: int, name: Marker) -> int { [INFO] [stderr] | ^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `int` in this scope [INFO] [stderr] --> src/players/ai.rs:53:54 [INFO] [stderr] | [INFO] [stderr] 53 | fn value_of_board(board: Board, name: Marker) -> int { [INFO] [stderr] | ^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `int` in this scope [INFO] [stderr] --> src/players/ai.rs:61:45 [INFO] [stderr] | [INFO] [stderr] 61 | fn score_unfinshed(board: Board, alpha: int, beta: int, name: Marker) -> int { [INFO] [stderr] | ^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `int` in this scope [INFO] [stderr] --> src/players/ai.rs:61:56 [INFO] [stderr] | [INFO] [stderr] 61 | fn score_unfinshed(board: Board, alpha: int, beta: int, name: Marker) -> int { [INFO] [stderr] | ^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `int` in this scope [INFO] [stderr] --> src/players/ai.rs:61:78 [INFO] [stderr] | [INFO] [stderr] 61 | fn score_unfinshed(board: Board, alpha: int, beta: int, name: Marker) -> int { [INFO] [stderr] | ^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `uint` in this scope [INFO] [stderr] --> src/players/ai.rs:77:28 [INFO] [stderr] | [INFO] [stderr] 77 | fn shuffled(moves: Vec) -> Vec { [INFO] [stderr] | ^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `uint` in this scope [INFO] [stderr] --> src/players/ai.rs:77:42 [INFO] [stderr] | [INFO] [stderr] 77 | fn shuffled(moves: Vec) -> Vec { [INFO] [stderr] | ^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `uint` in this scope [INFO] [stderr] --> src/players/ai.rs:78:29 [INFO] [stderr] | [INFO] [stderr] 78 | let mut result: Vec = moves; [INFO] [stderr] | ^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `uint` in this scope [INFO] [stderr] --> src/players/ai.rs:80:34 [INFO] [stderr] | [INFO] [stderr] 80 | let mut slice: &mut [uint] = &mut *result; [INFO] [stderr] | ^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `uint` in this scope [INFO] [stderr] --> src/players/human.rs:29:43 [INFO] [stderr] | [INFO] [stderr] 29 | fn choose_move_from(&self, moves: Vec) -> uint { [INFO] [stderr] | ^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `uint` in this scope [INFO] [stderr] --> src/players/human.rs:29:53 [INFO] [stderr] | [INFO] [stderr] 29 | fn choose_move_from(&self, moves: Vec) -> uint { [INFO] [stderr] | ^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `uint` in this scope [INFO] [stderr] --> src/players/scripted_player.rs:9:28 [INFO] [stderr] | [INFO] [stderr] 9 | pub moves: RefCell>, [INFO] [stderr] | ^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0412]: cannot find type `uint` in this scope [INFO] [stderr] --> src/players/scripted_player.rs:25:48 [INFO] [stderr] | [INFO] [stderr] 25 | pub fn new_with_moves(name: Marker, moves: Vec) -> ScriptedPlayer { [INFO] [stderr] | ^^^^ not found in this scope [INFO] [stderr] [INFO] [stderr] error[E0658]: box expression syntax is experimental; you can call `Box::new` instead [INFO] [stderr] --> src/game/game_mode.rs:61:9 [INFO] [stderr] | [INFO] [stderr] 61 | new(box human, box ai) [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: for more information, see https://github.com/rust-lang/rust/issues/49733 [INFO] [stderr] = help: add `#![feature(box_syntax)]` to the crate attributes to enable [INFO] [stderr] [INFO] [stderr] error[E0658]: box expression syntax is experimental; you can call `Box::new` instead [INFO] [stderr] --> src/game/game_mode.rs:61:20 [INFO] [stderr] | [INFO] [stderr] 61 | new(box human, box ai) [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: for more information, see https://github.com/rust-lang/rust/issues/49733 [INFO] [stderr] = help: add `#![feature(box_syntax)]` to the crate attributes to enable [INFO] [stderr] [INFO] [stderr] error[E0658]: box expression syntax is experimental; you can call `Box::new` instead [INFO] [stderr] --> src/game/game_mode.rs:67:9 [INFO] [stderr] | [INFO] [stderr] 67 | new(box ai, box human) [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: for more information, see https://github.com/rust-lang/rust/issues/49733 [INFO] [stderr] = help: add `#![feature(box_syntax)]` to the crate attributes to enable [INFO] [stderr] [INFO] [stderr] error[E0658]: box expression syntax is experimental; you can call `Box::new` instead [INFO] [stderr] --> src/game/game_mode.rs:67:17 [INFO] [stderr] | [INFO] [stderr] 67 | new(box ai, box human) [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: for more information, see https://github.com/rust-lang/rust/issues/49733 [INFO] [stderr] = help: add `#![feature(box_syntax)]` to the crate attributes to enable [INFO] [stderr] [INFO] [stderr] error[E0658]: box expression syntax is experimental; you can call `Box::new` instead [INFO] [stderr] --> src/game/game_mode.rs:73:9 [INFO] [stderr] | [INFO] [stderr] 73 | new(box human1, box human2) [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: for more information, see https://github.com/rust-lang/rust/issues/49733 [INFO] [stderr] = help: add `#![feature(box_syntax)]` to the crate attributes to enable [INFO] [stderr] [INFO] [stderr] error[E0658]: box expression syntax is experimental; you can call `Box::new` instead [INFO] [stderr] --> src/game/game_mode.rs:73:21 [INFO] [stderr] | [INFO] [stderr] 73 | new(box human1, box human2) [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: for more information, see https://github.com/rust-lang/rust/issues/49733 [INFO] [stderr] = help: add `#![feature(box_syntax)]` to the crate attributes to enable [INFO] [stderr] [INFO] [stderr] error[E0658]: box expression syntax is experimental; you can call `Box::new` instead [INFO] [stderr] --> src/game/game_mode.rs:79:9 [INFO] [stderr] | [INFO] [stderr] 79 | new(box ai1, box ai2) [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: for more information, see https://github.com/rust-lang/rust/issues/49733 [INFO] [stderr] = help: add `#![feature(box_syntax)]` to the crate attributes to enable [INFO] [stderr] [INFO] [stderr] error[E0658]: box expression syntax is experimental; you can call `Box::new` instead [INFO] [stderr] --> src/game/game_mode.rs:79:18 [INFO] [stderr] | [INFO] [stderr] 79 | new(box ai1, box ai2) [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: for more information, see https://github.com/rust-lang/rust/issues/49733 [INFO] [stderr] = help: add `#![feature(box_syntax)]` to the crate attributes to enable [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/game/game_mode.rs:11:21 [INFO] [stderr] | [INFO] [stderr] 11 | pub first: Box, [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn Player + 'a` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/game/game_mode.rs:12:21 [INFO] [stderr] | [INFO] [stderr] 12 | pub second: Box, [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn Player + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/game/game_mode.rs:17:34 [INFO] [stderr] | [INFO] [stderr] 17 | pub fn next_player(&self) -> &Player { [INFO] [stderr] | ^^^^^^ help: use `dyn`: `dyn Player` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/game/game_mode.rs:19:21 [INFO] [stderr] | [INFO] [stderr] 19 | let player: &Player = if val % 2 == 0 { [INFO] [stderr] | ^^^^^^ help: use `dyn`: `dyn Player` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/game/game_mode.rs:36:27 [INFO] [stderr] | [INFO] [stderr] 36 | pub fn new<'a>(first: Box, second: Box) -> GameMode<'a> { [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn Player + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/game/game_mode.rs:36:53 [INFO] [stderr] | [INFO] [stderr] 36 | pub fn new<'a>(first: Box, second: Box) -> GameMode<'a> { [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn Player + 'a` [INFO] [stderr] [INFO] [stderr] error[E0277]: the trait bound `core::slot::Slot: std::clone::Clone` is not satisfied [INFO] [stderr] --> src/core/slot.rs:3:16 [INFO] [stderr] | [INFO] [stderr] 3 | #[derive(Show, Copy, PartialEq)] [INFO] [stderr] | ^^^^ the trait `std::clone::Clone` is not implemented for `core::slot::Slot` [INFO] [stderr] [INFO] [stderr] error[E0277]: the trait bound `io::cli::Cli: std::clone::Clone` is not satisfied [INFO] [stderr] --> src/io/cli.rs:4:10 [INFO] [stderr] | [INFO] [stderr] 4 | #[derive(Copy)] [INFO] [stderr] | ^^^^ the trait `std::clone::Clone` is not implemented for `io::cli::Cli` [INFO] [stderr] [INFO] [stderr] error[E0277]: the trait bound `io::display::Display

: std::clone::Clone` is not satisfied [INFO] [stderr] --> src/io/display.rs:9:10 [INFO] [stderr] | [INFO] [stderr] 9 | #[derive(Copy, PartialEq)] [INFO] [stderr] | ^^^^ the trait `std::clone::Clone` is not implemented for `io::display::Display

` [INFO] [stderr] [INFO] [stderr] error: aborting due to 54 previous errors [INFO] [stderr] [INFO] [stderr] Some errors have detailed explanations: E0277, E0412, E0432, E0658. [INFO] [stderr] For more information about an error, try `rustc --explain E0277`. [INFO] [stderr] error: Could not compile `tic_tac_toe`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "17a6539b4e0d1224a564757a40a1e8afd165fe68f960102c11183b37bd6b43ba"` [INFO] running `"docker" "rm" "-f" "17a6539b4e0d1224a564757a40a1e8afd165fe68f960102c11183b37bd6b43ba"` [INFO] [stdout] 17a6539b4e0d1224a564757a40a1e8afd165fe68f960102c11183b37bd6b43ba