[INFO] cloning repository https://github.com/shenkan/rustex [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/shenkan/rustex" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshenkan%2Frustex", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshenkan%2Frustex'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] edef28ce9bb2a6f7df658a6243ba51bd85769675 [INFO] checking shenkan/rustex against master#c2f2db79ca3024f68d22b45aa22b570775c2c4ad for pr-124305 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshenkan%2Frustex" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/shenkan/rustex on toolchain c2f2db79ca3024f68d22b45aa22b570775c2c4ad [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c2f2db79ca3024f68d22b45aa22b570775c2c4ad" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/shenkan/rustex [INFO] finished tweaking git repo https://github.com/shenkan/rustex [INFO] tweaked toml for git repo https://github.com/shenkan/rustex written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/shenkan/rustex 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" "+c2f2db79ca3024f68d22b45aa22b570775c2c4ad" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [ERROR] error running command: no output for 300 seconds [ERROR] this task or one of its parent failed! [ERROR] no output for 300 seconds [ERROR] note: run with `RUST_BACKTRACE=1` to display a backtrace. [INFO] checking shenkan/rustex against try#44523379467bbd2050af931a040d10c2b764b443 for pr-124305 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshenkan%2Frustex" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/shenkan/rustex on toolchain 44523379467bbd2050af931a040d10c2b764b443 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+44523379467bbd2050af931a040d10c2b764b443" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/shenkan/rustex [INFO] finished tweaking git repo https://github.com/shenkan/rustex [INFO] tweaked toml for git repo https://github.com/shenkan/rustex written to /workspace/builds/worker-1-tc2/source/Cargo.toml [INFO] crate git repo https://github.com/shenkan/rustex 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" "+44523379467bbd2050af931a040d10c2b764b443" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:99613afd962a8cfa530ec1899472a458bd015a1ab0af876cf7eb06f6006d81ea" "/opt/rustwide/cargo-home/bin/cargo" "+44523379467bbd2050af931a040d10c2b764b443" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] a88820b86e4215dabe0d97e7ac852fbf0ccc725eb62ff069b9a475ea595cf0b0 [INFO] running `Command { std: "docker" "start" "-a" "a88820b86e4215dabe0d97e7ac852fbf0ccc725eb62ff069b9a475ea595cf0b0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "a88820b86e4215dabe0d97e7ac852fbf0ccc725eb62ff069b9a475ea595cf0b0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a88820b86e4215dabe0d97e7ac852fbf0ccc725eb62ff069b9a475ea595cf0b0", kill_on_drop: false }` [INFO] [stdout] a88820b86e4215dabe0d97e7ac852fbf0ccc725eb62ff069b9a475ea595cf0b0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:99613afd962a8cfa530ec1899472a458bd015a1ab0af876cf7eb06f6006d81ea" "/opt/rustwide/cargo-home/bin/cargo" "+44523379467bbd2050af931a040d10c2b764b443" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 8a338d3b8e532e5b6f90fdf52bec0e9efbd8a409e66ffd79025d40bb1e129197 [INFO] running `Command { std: "docker" "start" "-a" "8a338d3b8e532e5b6f90fdf52bec0e9efbd8a409e66ffd79025d40bb1e129197", kill_on_drop: false }` [INFO] [stderr] Checking ex1 v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] error: expected one of `!`, `.`, `::`, `;`, `?`, `else`, `{`, or an operator, found `new` [INFO] [stdout] --> src/main.rs:81:66 [INFO] [stdout] | [INFO] [stdout] 81 | let mut inventory = HashMap::>new(); [INFO] [stdout] | ^^^ expected one of 8 possible tokens [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected one of `!`, `.`, `::`, `;`, `?`, `else`, `{`, or an operator, found `new` [INFO] [stdout] --> src/main.rs:81:66 [INFO] [stdout] | [INFO] [stdout] 81 | let mut inventory = HashMap::>new(); [INFO] [stdout] | ^^^ expected one of 8 possible tokens [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: path separator must be a double colon [INFO] [stdout] --> src/main.rs:99:27 [INFO] [stdout] | [INFO] [stdout] 99 | Err(InventoryError:InventoryFull) [INFO] [stdout] | ^ help: use a double colon instead: `::` [INFO] [stdout] | [INFO] [stdout] = note: if you meant to annotate an expression with a type, the type ascription syntax has been removed, see issue #101728 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: path separator must be a double colon [INFO] [stdout] --> src/main.rs:99:27 [INFO] [stdout] | [INFO] [stdout] 99 | Err(InventoryError:InventoryFull) [INFO] [stdout] | ^ help: use a double colon instead: `::` [INFO] [stdout] | [INFO] [stdout] = note: if you meant to annotate an expression with a type, the type ascription syntax has been removed, see issue #101728 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found `)` [INFO] [stdout] --> src/main.rs:109:50 [INFO] [stdout] | [INFO] [stdout] 109 | self.slots.iter().filter(|&(k, v)| *v == ) [INFO] [stdout] | --------- ^ expected expression [INFO] [stdout] | | [INFO] [stdout] | while parsing the body of this closure [INFO] [stdout] | [INFO] [stdout] help: you might have meant to open the body of the closure [INFO] [stdout] | [INFO] [stdout] 109 | self.slots.iter().filter(|&(k, v)| { *v == }) [INFO] [stdout] | + + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found `)` [INFO] [stdout] --> src/main.rs:109:50 [INFO] [stdout] | [INFO] [stdout] 109 | self.slots.iter().filter(|&(k, v)| *v == ) [INFO] [stdout] | --------- ^ expected expression [INFO] [stdout] | | [INFO] [stdout] | while parsing the body of this closure [INFO] [stdout] | [INFO] [stdout] help: you might have meant to open the body of the closure [INFO] [stdout] | [INFO] [stdout] 109 | self.slots.iter().filter(|&(k, v)| { *v == }) [INFO] [stdout] | + + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: path separator must be a double colon [INFO] [stdout] --> src/main.rs:172:31 [INFO] [stdout] | [INFO] [stdout] 172 | Err(EquipError:Requirements(RequirementsError::new(requirements))) [INFO] [stdout] | ^ help: use a double colon instead: `::` [INFO] [stdout] | [INFO] [stdout] = note: if you meant to annotate an expression with a type, the type ascription syntax has been removed, see issue #101728 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: non-item in item list [INFO] [stdout] --> src/main.rs:184:80 [INFO] [stdout] | [INFO] [stdout] 183 | impl CanHold for Equipment { [INFO] [stdout] | - item list starts here [INFO] [stdout] 184 | fn add_to_inventory(&self, player: &Player) -> Result<(), InventoryError>; { [INFO] [stdout] | - ^ non-item starts here [INFO] [stdout] | | [INFO] [stdout] | help: consider removing this semicolon [INFO] [stdout] ... [INFO] [stdout] 187 | } [INFO] [stdout] | - item list ends here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: non-item in item list [INFO] [stdout] --> src/main.rs:190:80 [INFO] [stdout] | [INFO] [stdout] 189 | impl CanHold for Item { [INFO] [stdout] | - item list starts here [INFO] [stdout] 190 | fn add_to_inventory(&self, player: &Player) -> Result<(), InventoryError>; { [INFO] [stdout] | - ^ non-item starts here [INFO] [stdout] | | [INFO] [stdout] | help: consider removing this semicolon [INFO] [stdout] ... [INFO] [stdout] 193 | } [INFO] [stdout] | - item list ends here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: path separator must be a double colon [INFO] [stdout] --> src/main.rs:172:31 [INFO] [stdout] | [INFO] [stdout] 172 | Err(EquipError:Requirements(RequirementsError::new(requirements))) [INFO] [stdout] | ^ help: use a double colon instead: `::` [INFO] [stdout] | [INFO] [stdout] = note: if you meant to annotate an expression with a type, the type ascription syntax has been removed, see issue #101728 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected one of `,`, `:`, or `}`, found `::` [INFO] [stdout] --> src/main.rs:199:22 [INFO] [stdout] | [INFO] [stdout] 197 | Player { [INFO] [stdout] | ------ while parsing this struct [INFO] [stdout] 198 | name, [INFO] [stdout] 199 | Inventory::new(), [INFO] [stdout] | ---------^^ expected one of `,`, `:`, or `}` [INFO] [stdout] | | [INFO] [stdout] | while parsing this struct field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected one of `,`, `:`, or `}`, found `::` [INFO] [stdout] --> src/main.rs:200:20 [INFO] [stdout] | [INFO] [stdout] 197 | Player { [INFO] [stdout] | ------ while parsing this struct [INFO] [stdout] ... [INFO] [stdout] 200 | HashMap::>new(), [INFO] [stdout] | -------^^ expected one of `,`, `:`, or `}` [INFO] [stdout] | | [INFO] [stdout] | while parsing this struct field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: non-item in item list [INFO] [stdout] --> src/main.rs:184:80 [INFO] [stdout] | [INFO] [stdout] 183 | impl CanHold for Equipment { [INFO] [stdout] | - item list starts here [INFO] [stdout] 184 | fn add_to_inventory(&self, player: &Player) -> Result<(), InventoryError>; { [INFO] [stdout] | - ^ non-item starts here [INFO] [stdout] | | [INFO] [stdout] | help: consider removing this semicolon [INFO] [stdout] ... [INFO] [stdout] 187 | } [INFO] [stdout] | - item list ends here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected one of `,`, `:`, or `}`, found `<` [INFO] [stdout] --> src/main.rs:200:44 [INFO] [stdout] | [INFO] [stdout] 197 | Player { [INFO] [stdout] | ------ while parsing this struct [INFO] [stdout] ... [INFO] [stdout] 200 | HashMap::>new(), [INFO] [stdout] | ------^ expected one of `,`, `:`, or `}` [INFO] [stdout] | | [INFO] [stdout] | while parsing this struct field [INFO] [stdout] | [INFO] [stdout] help: try naming a field [INFO] [stdout] | [INFO] [stdout] 200 | HashMap::>new(), [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected one of `,`, `:`, or `}`, found `::` [INFO] [stdout] --> src/main.rs:202:20 [INFO] [stdout] | [INFO] [stdout] 197 | Player { [INFO] [stdout] | ------ while parsing this struct [INFO] [stdout] ... [INFO] [stdout] 202 | HashMap::::from_iter(IntoIter::new([ [INFO] [stdout] | -------^^ expected one of `,`, `:`, or `}` [INFO] [stdout] | | [INFO] [stdout] | while parsing this struct field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: non-item in item list [INFO] [stdout] --> src/main.rs:190:80 [INFO] [stdout] | [INFO] [stdout] 189 | impl CanHold for Item { [INFO] [stdout] | - item list starts here [INFO] [stdout] 190 | fn add_to_inventory(&self, player: &Player) -> Result<(), InventoryError>; { [INFO] [stdout] | - ^ non-item starts here [INFO] [stdout] | | [INFO] [stdout] | help: consider removing this semicolon [INFO] [stdout] ... [INFO] [stdout] 193 | } [INFO] [stdout] | - item list ends here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected one of `,`, `:`, or `}`, found `>` [INFO] [stdout] --> src/main.rs:202:32 [INFO] [stdout] | [INFO] [stdout] 197 | Player { [INFO] [stdout] | ------ while parsing this struct [INFO] [stdout] ... [INFO] [stdout] 202 | HashMap::::from_iter(IntoIter::new([ [INFO] [stdout] | ---^ expected one of `,`, `:`, or `}` [INFO] [stdout] | | [INFO] [stdout] | while parsing this struct field [INFO] [stdout] | [INFO] [stdout] help: try naming a field [INFO] [stdout] | [INFO] [stdout] 202 | HashMap::::from_iter(IntoIter::new([ [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected one of `,`, `:`, or `}`, found `::` [INFO] [stdout] --> src/main.rs:199:22 [INFO] [stdout] | [INFO] [stdout] 197 | Player { [INFO] [stdout] | ------ while parsing this struct [INFO] [stdout] 198 | name, [INFO] [stdout] 199 | Inventory::new(), [INFO] [stdout] | ---------^^ expected one of `,`, `:`, or `}` [INFO] [stdout] | | [INFO] [stdout] | while parsing this struct field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected one of `,`, `:`, or `}`, found `::` [INFO] [stdout] --> src/main.rs:200:20 [INFO] [stdout] | [INFO] [stdout] 197 | Player { [INFO] [stdout] | ------ while parsing this struct [INFO] [stdout] ... [INFO] [stdout] 200 | HashMap::>new(), [INFO] [stdout] | -------^^ expected one of `,`, `:`, or `}` [INFO] [stdout] | | [INFO] [stdout] | while parsing this struct field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected one of `,`, `:`, or `}`, found `<` [INFO] [stdout] --> src/main.rs:200:44 [INFO] [stdout] | [INFO] [stdout] 197 | Player { [INFO] [stdout] | ------ while parsing this struct [INFO] [stdout] ... [INFO] [stdout] 200 | HashMap::>new(), [INFO] [stdout] | ------^ expected one of `,`, `:`, or `}` [INFO] [stdout] | | [INFO] [stdout] | while parsing this struct field [INFO] [stdout] | [INFO] [stdout] help: try naming a field [INFO] [stdout] | [INFO] [stdout] 200 | HashMap::>new(), [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected one of `,`, `:`, or `}`, found `::` [INFO] [stdout] --> src/main.rs:202:20 [INFO] [stdout] | [INFO] [stdout] 197 | Player { [INFO] [stdout] | ------ while parsing this struct [INFO] [stdout] ... [INFO] [stdout] 202 | HashMap::::from_iter(IntoIter::new([ [INFO] [stdout] | -------^^ expected one of `,`, `:`, or `}` [INFO] [stdout] | | [INFO] [stdout] | while parsing this struct field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected one of `,`, `:`, or `}`, found `>` [INFO] [stdout] --> src/main.rs:202:32 [INFO] [stdout] | [INFO] [stdout] 197 | Player { [INFO] [stdout] | ------ while parsing this struct [INFO] [stdout] ... [INFO] [stdout] 202 | HashMap::::from_iter(IntoIter::new([ [INFO] [stdout] | ---^ expected one of `,`, `:`, or `}` [INFO] [stdout] | | [INFO] [stdout] | while parsing this struct field [INFO] [stdout] | [INFO] [stdout] help: try naming a field [INFO] [stdout] | [INFO] [stdout] 202 | HashMap::::from_iter(IntoIter::new([ [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: associated function in `impl` without body [INFO] [stdout] --> src/main.rs:184:5 [INFO] [stdout] | [INFO] [stdout] 184 | fn add_to_inventory(&self, player: &Player) -> Result<(), InventoryError>; { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stdout] | | [INFO] [stdout] | help: provide a definition for the function: `{ }` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: associated function in `impl` without body [INFO] [stdout] --> src/main.rs:190:5 [INFO] [stdout] | [INFO] [stdout] 190 | fn add_to_inventory(&self, player: &Player) -> Result<(), InventoryError>; { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stdout] | | [INFO] [stdout] | help: provide a definition for the function: `{ }` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: no rules expected the token `new` [INFO] [stdout] --> src/main.rs:234:75 [INFO] [stdout] | [INFO] [stdout] 234 | assert_eq!(p.equipped, HashMap::>new()); [INFO] [stdout] | ^^^ no rules expected this token in macro call [INFO] [stdout] | [INFO] [stdout] = note: while trying to match sequence start [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: associated function in `impl` without body [INFO] [stdout] --> src/main.rs:184:5 [INFO] [stdout] | [INFO] [stdout] 184 | fn add_to_inventory(&self, player: &Player) -> Result<(), InventoryError>; { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stdout] | | [INFO] [stdout] | help: provide a definition for the function: `{ }` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: associated function in `impl` without body [INFO] [stdout] --> src/main.rs:190:5 [INFO] [stdout] | [INFO] [stdout] 190 | fn add_to_inventory(&self, player: &Player) -> Result<(), InventoryError>; { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stdout] | | [INFO] [stdout] | help: provide a definition for the function: `{ }` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0432]: unresolved import `std::iterator` [INFO] [stdout] --> src/main.rs:3:10 [INFO] [stdout] | [INFO] [stdout] 3 | use std::iterator::IntoIter; [INFO] [stdout] | ^^^^^^^^ could not find `iterator` in `std` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0432]: unresolved import `thiserror` [INFO] [stdout] --> src/main.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use thiserror::Error; [INFO] [stdout] | ^^^^^^^^^ use of undeclared crate or module `thiserror` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0432]: unresolved import `std::iterator` [INFO] [stdout] --> src/main.rs:3:10 [INFO] [stdout] | [INFO] [stdout] 3 | use std::iterator::IntoIter; [INFO] [stdout] | ^^^^^^^^ could not find `iterator` in `std` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0432]: unresolved import `thiserror` [INFO] [stdout] --> src/main.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use thiserror::Error; [INFO] [stdout] | ^^^^^^^^^ use of undeclared crate or module `thiserror` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: cannot find attribute `error` in this scope [INFO] [stdout] --> src/main.rs:22:7 [INFO] [stdout] | [INFO] [stdout] 22 | #[error("Inventory is full")] [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: cannot find attribute `error` in this scope [INFO] [stdout] --> src/main.rs:22:7 [INFO] [stdout] | [INFO] [stdout] 22 | #[error("Inventory is full")] [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: cannot find attribute `error` in this scope [INFO] [stdout] --> src/main.rs:28:7 [INFO] [stdout] | [INFO] [stdout] 28 | #[error("Item cannot be equipped in this slot")] [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: cannot find attribute `error` in this scope [INFO] [stdout] --> src/main.rs:28:7 [INFO] [stdout] | [INFO] [stdout] 28 | #[error("Item cannot be equipped in this slot")] [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: cannot find attribute `error` in this scope [INFO] [stdout] --> src/main.rs:30:7 [INFO] [stdout] | [INFO] [stdout] 30 | #[error("Item requirements not met")] [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: cannot find attribute `error` in this scope [INFO] [stdout] --> src/main.rs:30:7 [INFO] [stdout] | [INFO] [stdout] 30 | #[error("Item requirements not met")] [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0437]: type `Error` is not a member of trait `CanEquip` [INFO] [stdout] --> src/main.rs:147:5 [INFO] [stdout] | [INFO] [stdout] 147 | type Error = EquipError; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ not a member of trait `CanEquip` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0437]: type `Error` is not a member of trait `CanEquip` [INFO] [stdout] --> src/main.rs:147:5 [INFO] [stdout] | [INFO] [stdout] 147 | type Error = EquipError; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ not a member of trait `CanEquip` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `fmt` [INFO] [stdout] --> src/main.rs:53:6 [INFO] [stdout] | [INFO] [stdout] 53 | impl fmt::Display for RequirementsError { [INFO] [stdout] | ^^^ use of undeclared crate or module `fmt` [INFO] [stdout] | [INFO] [stdout] help: consider importing one of these items [INFO] [stdout] | [INFO] [stdout] 1 + use core::fmt; [INFO] [stdout] | [INFO] [stdout] 1 + use std::fmt; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `fmt` [INFO] [stdout] --> src/main.rs:54:27 [INFO] [stdout] | [INFO] [stdout] 54 | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { [INFO] [stdout] | ^^^ use of undeclared crate or module `fmt` [INFO] [stdout] | [INFO] [stdout] help: consider importing one of these items [INFO] [stdout] | [INFO] [stdout] 1 + use core::fmt; [INFO] [stdout] | [INFO] [stdout] 1 + use std::fmt; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `fmt` [INFO] [stdout] --> src/main.rs:54:46 [INFO] [stdout] | [INFO] [stdout] 54 | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { [INFO] [stdout] | ^^^ use of undeclared crate or module `fmt` [INFO] [stdout] | [INFO] [stdout] help: consider importing one of these items [INFO] [stdout] | [INFO] [stdout] 1 + use core::fmt; [INFO] [stdout] | [INFO] [stdout] 1 + use std::fmt; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `fmt` [INFO] [stdout] --> src/main.rs:53:6 [INFO] [stdout] | [INFO] [stdout] 53 | impl fmt::Display for RequirementsError { [INFO] [stdout] | ^^^ use of undeclared crate or module `fmt` [INFO] [stdout] | [INFO] [stdout] help: consider importing one of these items [INFO] [stdout] | [INFO] [stdout] 1 + use core::fmt; [INFO] [stdout] | [INFO] [stdout] 1 + use std::fmt; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `fmt` [INFO] [stdout] --> src/main.rs:54:27 [INFO] [stdout] | [INFO] [stdout] 54 | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { [INFO] [stdout] | ^^^ use of undeclared crate or module `fmt` [INFO] [stdout] | [INFO] [stdout] help: consider importing one of these items [INFO] [stdout] | [INFO] [stdout] 1 + use core::fmt; [INFO] [stdout] | [INFO] [stdout] 1 + use std::fmt; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `fmt` [INFO] [stdout] --> src/main.rs:54:46 [INFO] [stdout] | [INFO] [stdout] 54 | fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { [INFO] [stdout] | ^^^ use of undeclared crate or module `fmt` [INFO] [stdout] | [INFO] [stdout] help: consider importing one of these items [INFO] [stdout] | [INFO] [stdout] 1 + use core::fmt; [INFO] [stdout] | [INFO] [stdout] 1 + use std::fmt; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `requirements` in this scope [INFO] [stdout] --> src/main.rs:166:46 [INFO] [stdout] | [INFO] [stdout] 166 | if self.owner.stats.get(k) < requirements.get(k) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: you might have meant to use the available field [INFO] [stdout] | [INFO] [stdout] 166 | if self.owner.stats.get(k) < self.requirements.get(k) { [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `requirements` in this scope [INFO] [stdout] --> src/main.rs:166:46 [INFO] [stdout] | [INFO] [stdout] 166 | if self.owner.stats.get(k) < requirements.get(k) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: you might have meant to use the available field [INFO] [stdout] | [INFO] [stdout] 166 | if self.owner.stats.get(k) < self.requirements.get(k) { [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `requirements` in this scope [INFO] [stdout] --> src/main.rs:172:68 [INFO] [stdout] | [INFO] [stdout] 172 | Err(EquipError:Requirements(RequirementsError::new(requirements))) [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: you might have meant to use the available field [INFO] [stdout] | [INFO] [stdout] 172 | Err(EquipError:Requirements(RequirementsError::new(self.requirements))) [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `requirements` in this scope [INFO] [stdout] --> src/main.rs:172:68 [INFO] [stdout] | [INFO] [stdout] 172 | Err(EquipError:Requirements(RequirementsError::new(requirements))) [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: you might have meant to use the available field [INFO] [stdout] | [INFO] [stdout] 172 | Err(EquipError:Requirements(RequirementsError::new(self.requirements))) [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0214]: parenthesized type parameters may only be used with a `Fn` trait [INFO] [stdout] --> src/main.rs:68:27 [INFO] [stdout] | [INFO] [stdout] 68 | inventory: Inventory::new(), [INFO] [stdout] | ^^^^^ only `Fn` traits may use parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0214]: parenthesized type parameters may only be used with a `Fn` trait [INFO] [stdout] --> src/main.rs:68:27 [INFO] [stdout] | [INFO] [stdout] 68 | inventory: Inventory::new(), [INFO] [stdout] | ^^^^^ only `Fn` traits may use parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0223]: ambiguous associated type [INFO] [stdout] --> src/main.rs:68:16 [INFO] [stdout] | [INFO] [stdout] 68 | inventory: Inventory::new(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if there were a trait named `Example` with associated type `new` implemented for `Inventory`, you could use the fully-qualified path [INFO] [stdout] | [INFO] [stdout] 68 | inventory: ::new, [INFO] [stdout] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0223]: ambiguous associated type [INFO] [stdout] --> src/main.rs:68:16 [INFO] [stdout] | [INFO] [stdout] 68 | inventory: Inventory::new(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: if there were a trait named `Example` with associated type `new` implemented for `Inventory`, you could use the fully-qualified path [INFO] [stdout] | [INFO] [stdout] 68 | inventory: ::new, [INFO] [stdout] | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0107]: missing generics for type alias `InventorySlotStatus` [INFO] [stdout] --> src/main.rs:75:24 [INFO] [stdout] | [INFO] [stdout] 75 | slots: HashMap [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ expected 1 generic argument [INFO] [stdout] | [INFO] [stdout] note: type alias defined here, with 1 generic parameter: `T` [INFO] [stdout] --> src/main.rs:36:6 [INFO] [stdout] | [INFO] [stdout] 36 | type InventorySlotStatus = Option; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ - [INFO] [stdout] help: add missing generic argument [INFO] [stdout] | [INFO] [stdout] 75 | slots: HashMap> [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0107]: missing generics for type alias `InventorySlotStatus` [INFO] [stdout] --> src/main.rs:75:24 [INFO] [stdout] | [INFO] [stdout] 75 | slots: HashMap [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ expected 1 generic argument [INFO] [stdout] | [INFO] [stdout] note: type alias defined here, with 1 generic parameter: `T` [INFO] [stdout] --> src/main.rs:36:6 [INFO] [stdout] | [INFO] [stdout] 36 | type InventorySlotStatus = Option; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ - [INFO] [stdout] help: add missing generic argument [INFO] [stdout] | [INFO] [stdout] 75 | slots: HashMap> [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0121]: the placeholder `_` is not allowed within types on item signatures for functions [INFO] [stdout] --> src/main.rs:114:59 [INFO] [stdout] | [INFO] [stdout] 114 | fn add_to_inventory(&self, player: &Player) -> Result<_, InventoryError>; [INFO] [stdout] | ^ not allowed in type signatures [INFO] [stdout] | [INFO] [stdout] help: use type parameters instead [INFO] [stdout] | [INFO] [stdout] 114 | fn add_to_inventory(&self, player: &Player) -> Result; [INFO] [stdout] | +++ ~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0121]: the placeholder `_` is not allowed within types on item signatures for functions [INFO] [stdout] --> src/main.rs:114:59 [INFO] [stdout] | [INFO] [stdout] 114 | fn add_to_inventory(&self, player: &Player) -> Result<_, InventoryError>; [INFO] [stdout] | ^ not allowed in type signatures [INFO] [stdout] | [INFO] [stdout] help: use type parameters instead [INFO] [stdout] | [INFO] [stdout] 114 | fn add_to_inventory(&self, player: &Player) -> Result; [INFO] [stdout] | +++ ~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0121]: the placeholder `_` is not allowed within types on item signatures for functions [INFO] [stdout] --> src/main.rs:119:61 [INFO] [stdout] | [INFO] [stdout] 119 | fn check_requirements(&self, player: &Player) -> Result<_, EquipError>; [INFO] [stdout] | ^ not allowed in type signatures [INFO] [stdout] | [INFO] [stdout] help: use type parameters instead [INFO] [stdout] | [INFO] [stdout] 119 | fn check_requirements(&self, player: &Player) -> Result; [INFO] [stdout] | +++ ~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0121]: the placeholder `_` is not allowed within types on item signatures for functions [INFO] [stdout] --> src/main.rs:119:61 [INFO] [stdout] | [INFO] [stdout] 119 | fn check_requirements(&self, player: &Player) -> Result<_, EquipError>; [INFO] [stdout] | ^ not allowed in type signatures [INFO] [stdout] | [INFO] [stdout] help: use type parameters instead [INFO] [stdout] | [INFO] [stdout] 119 | fn check_requirements(&self, player: &Player) -> Result; [INFO] [stdout] | +++ ~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0220]: associated type `Error` not found for `Self` [INFO] [stdout] --> src/main.rs:148:40 [INFO] [stdout] | [INFO] [stdout] 148 | fn equip(&self) -> Result<_, Self::Error> { [INFO] [stdout] | ^^^^^ associated type `Error` not found [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0121]: the placeholder `_` is not allowed within types on item signatures for functions [INFO] [stdout] --> src/main.rs:148:31 [INFO] [stdout] | [INFO] [stdout] 148 | fn equip(&self) -> Result<_, Self::Error> { [INFO] [stdout] | ^ not allowed in type signatures [INFO] [stdout] | [INFO] [stdout] help: use type parameters instead [INFO] [stdout] | [INFO] [stdout] 148 | fn equip(&self) -> Result { [INFO] [stdout] | +++ ~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0220]: associated type `Error` not found for `Self` [INFO] [stdout] --> src/main.rs:162:53 [INFO] [stdout] | [INFO] [stdout] 162 | fn check_requirements(&self) -> Result<_, Self::Error> { [INFO] [stdout] | ^^^^^ associated type `Error` not found [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0220]: associated type `Error` not found for `Self` [INFO] [stdout] --> src/main.rs:148:40 [INFO] [stdout] | [INFO] [stdout] 148 | fn equip(&self) -> Result<_, Self::Error> { [INFO] [stdout] | ^^^^^ associated type `Error` not found [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0121]: the placeholder `_` is not allowed within types on item signatures for functions [INFO] [stdout] --> src/main.rs:162:44 [INFO] [stdout] | [INFO] [stdout] 162 | fn check_requirements(&self) -> Result<_, Self::Error> { [INFO] [stdout] | ^ not allowed in type signatures [INFO] [stdout] | [INFO] [stdout] help: use type parameters instead [INFO] [stdout] | [INFO] [stdout] 162 | fn check_requirements(&self) -> Result { [INFO] [stdout] | +++ ~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0050]: method `check_requirements` has 1 parameter but the declaration in trait `CanEquip::check_requirements` has 2 [INFO] [stdout] --> src/main.rs:162:27 [INFO] [stdout] | [INFO] [stdout] 119 | fn check_requirements(&self, player: &Player) -> Result<_, EquipError>; [INFO] [stdout] | ---------------------- trait requires 2 parameters [INFO] [stdout] ... [INFO] [stdout] 162 | fn check_requirements(&self) -> Result<_, Self::Error> { [INFO] [stdout] | ^^^^^ expected 2 parameters, found 1 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0121]: the placeholder `_` is not allowed within types on item signatures for functions [INFO] [stdout] --> src/main.rs:148:31 [INFO] [stdout] | [INFO] [stdout] 148 | fn equip(&self) -> Result<_, Self::Error> { [INFO] [stdout] | ^ not allowed in type signatures [INFO] [stdout] | [INFO] [stdout] help: use type parameters instead [INFO] [stdout] | [INFO] [stdout] 148 | fn equip(&self) -> Result { [INFO] [stdout] | +++ ~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0220]: associated type `Error` not found for `Self` [INFO] [stdout] --> src/main.rs:162:53 [INFO] [stdout] | [INFO] [stdout] 162 | fn check_requirements(&self) -> Result<_, Self::Error> { [INFO] [stdout] | ^^^^^ associated type `Error` not found [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0121]: the placeholder `_` is not allowed within types on item signatures for functions [INFO] [stdout] --> src/main.rs:162:44 [INFO] [stdout] | [INFO] [stdout] 162 | fn check_requirements(&self) -> Result<_, Self::Error> { [INFO] [stdout] | ^ not allowed in type signatures [INFO] [stdout] | [INFO] [stdout] help: use type parameters instead [INFO] [stdout] | [INFO] [stdout] 162 | fn check_requirements(&self) -> Result { [INFO] [stdout] | +++ ~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0050]: method `check_requirements` has 1 parameter but the declaration in trait `CanEquip::check_requirements` has 2 [INFO] [stdout] --> src/main.rs:162:27 [INFO] [stdout] | [INFO] [stdout] 119 | fn check_requirements(&self, player: &Player) -> Result<_, EquipError>; [INFO] [stdout] | ---------------------- trait requires 2 parameters [INFO] [stdout] ... [INFO] [stdout] 162 | fn check_requirements(&self) -> Result<_, Self::Error> { [INFO] [stdout] | ^^^^^ expected 2 parameters, found 1 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 34 previous errors [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 35 previous errors [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0050, E0107, E0121, E0214, E0220, E0223, E0425, E0432, E0433... [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0050`. [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0050, E0107, E0121, E0214, E0220, E0223, E0425, E0432, E0433... [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0050`. [INFO] [stdout] [INFO] [stderr] error: could not compile `ex1` (bin "ex1") due to 35 previous errors [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: could not compile `ex1` (bin "ex1" test) due to 36 previous errors [INFO] running `Command { std: "docker" "inspect" "8a338d3b8e532e5b6f90fdf52bec0e9efbd8a409e66ffd79025d40bb1e129197", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8a338d3b8e532e5b6f90fdf52bec0e9efbd8a409e66ffd79025d40bb1e129197", kill_on_drop: false }` [INFO] [stdout] 8a338d3b8e532e5b6f90fdf52bec0e9efbd8a409e66ffd79025d40bb1e129197