[INFO] cloning repository https://github.com/mreboland/rustOwnershipMoves [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/mreboland/rustOwnershipMoves" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmreboland%2FrustOwnershipMoves", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmreboland%2FrustOwnershipMoves'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] c8a3d6c7a973347f046d7b34207b1c07625269f5 [INFO] checking mreboland/rustOwnershipMoves against master#2886b36df4a646dd8d82fb65bf0c9d8d96c1f71a for pr-145113 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmreboland%2FrustOwnershipMoves" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/mreboland/rustOwnershipMoves [INFO] finished tweaking git repo https://github.com/mreboland/rustOwnershipMoves [INFO] tweaked toml for git repo https://github.com/mreboland/rustOwnershipMoves written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/mreboland/rustOwnershipMoves on toolchain 2886b36df4a646dd8d82fb65bf0c9d8d96c1f71a [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+2886b36df4a646dd8d82fb65bf0c9d8d96c1f71a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/mreboland/rustOwnershipMoves 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" "+2886b36df4a646dd8d82fb65bf0c9d8d96c1f71a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/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:ae6f63d130afcfff7f91f5ba9fdb2a74d52830289c6a2ea2d23a94dcfb480a0d" "/opt/rustwide/cargo-home/bin/cargo" "+2886b36df4a646dd8d82fb65bf0c9d8d96c1f71a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 280f03d96d3d3687014b08399a24ad26e416b1c83bd2e6b2bfdb0449e53b30dc [INFO] running `Command { std: "docker" "start" "-a" "280f03d96d3d3687014b08399a24ad26e416b1c83bd2e6b2bfdb0449e53b30dc", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "280f03d96d3d3687014b08399a24ad26e416b1c83bd2e6b2bfdb0449e53b30dc", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "280f03d96d3d3687014b08399a24ad26e416b1c83bd2e6b2bfdb0449e53b30dc", kill_on_drop: false }` [INFO] [stdout] 280f03d96d3d3687014b08399a24ad26e416b1c83bd2e6b2bfdb0449e53b30dc [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/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:ae6f63d130afcfff7f91f5ba9fdb2a74d52830289c6a2ea2d23a94dcfb480a0d" "/opt/rustwide/cargo-home/bin/cargo" "+2886b36df4a646dd8d82fb65bf0c9d8d96c1f71a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 169a4cf064db2f6dbd5303c56381a48300d2b6fda71ce9dfac140dd4709e06b1 [INFO] running `Command { std: "docker" "start" "-a" "169a4cf064db2f6dbd5303c56381a48300d2b6fda71ce9dfac140dd4709e06b1", kill_on_drop: false }` [INFO] [stderr] Checking ownership-moves v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] error: expected `;`, found keyword `let` [INFO] [stdout] --> src/main.rs:80:9 [INFO] [stdout] | [INFO] [stdout] 80 | h(x) // bad: x is uninitialized here if either path uses it [INFO] [stdout] | ^ help: add `;` here [INFO] [stdout] ... [INFO] [stdout] 83 | let x = vec![10, 20, 30]; [INFO] [stdout] | --- unexpected token [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected `;`, found keyword `let` [INFO] [stdout] --> src/main.rs:133:30 [INFO] [stdout] | [INFO] [stdout] 133 | assert_eq!(second, "102") [INFO] [stdout] | ^ help: add `;` here [INFO] [stdout] ... [INFO] [stdout] 136 | let third = std::mem::replace(&mut v[2], "substitute".to_string()); [INFO] [stdout] | --- unexpected token [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected `;`, found keyword `let` [INFO] [stdout] --> src/main.rs:80:9 [INFO] [stdout] | [INFO] [stdout] 80 | h(x) // bad: x is uninitialized here if either path uses it [INFO] [stdout] | ^ help: add `;` here [INFO] [stdout] ... [INFO] [stdout] 83 | let x = vec![10, 20, 30]; [INFO] [stdout] | --- unexpected token [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected `;`, found keyword `let` [INFO] [stdout] --> src/main.rs:133:30 [INFO] [stdout] | [INFO] [stdout] 133 | assert_eq!(second, "102") [INFO] [stdout] | ^ help: add `;` here [INFO] [stdout] ... [INFO] [stdout] 136 | let third = std::mem::replace(&mut v[2], "substitute".to_string()); [INFO] [stdout] | --- unexpected token [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0428]: the name `Person` is defined multiple times [INFO] [stdout] --> src/main.rs:157:5 [INFO] [stdout] | [INFO] [stdout] 55 | struct Person { name: String, birth: i32 } [INFO] [stdout] | ------------- previous definition of the type `Person` here [INFO] [stdout] ... [INFO] [stdout] 157 | struct Person { name: Option, birth: i32 } [INFO] [stdout] | ^^^^^^^^^^^^^ `Person` redefined here [INFO] [stdout] | [INFO] [stdout] = note: `Person` must be defined only once in the type namespace of this block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0428]: the name `Label` is defined multiple times [INFO] [stdout] --> src/main.rs:217:5 [INFO] [stdout] | [INFO] [stdout] 198 | struct Label { number: u32 } [INFO] [stdout] | ------------ previous definition of the type `Label` here [INFO] [stdout] ... [INFO] [stdout] 217 | struct Label { number: u32 } [INFO] [stdout] | ^^^^^^^^^^^^ `Label` redefined here [INFO] [stdout] | [INFO] [stdout] = note: `Label` must be defined only once in the type namespace of this block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0428]: the name `Person` is defined multiple times [INFO] [stdout] --> src/main.rs:157:5 [INFO] [stdout] | [INFO] [stdout] 55 | struct Person { name: String, birth: i32 } [INFO] [stdout] | ------------- previous definition of the type `Person` here [INFO] [stdout] ... [INFO] [stdout] 157 | struct Person { name: Option, birth: i32 } [INFO] [stdout] | ^^^^^^^^^^^^^ `Person` redefined here [INFO] [stdout] | [INFO] [stdout] = note: `Person` must be defined only once in the type namespace of this block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0428]: the name `Label` is defined multiple times [INFO] [stdout] --> src/main.rs:217:5 [INFO] [stdout] | [INFO] [stdout] 198 | struct Label { number: u32 } [INFO] [stdout] | ------------ previous definition of the type `Label` here [INFO] [stdout] ... [INFO] [stdout] 217 | struct Label { number: u32 } [INFO] [stdout] | ^^^^^^^^^^^^ `Label` redefined here [INFO] [stdout] | [INFO] [stdout] = note: `Label` must be defined only once in the type namespace of this block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `c` in this scope [INFO] [stdout] --> src/main.rs:75:8 [INFO] [stdout] | [INFO] [stdout] 75 | if c { [INFO] [stdout] | ^ help: a local variable with a similar name exists: `s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `c` in this scope [INFO] [stdout] --> src/main.rs:75:8 [INFO] [stdout] | [INFO] [stdout] 75 | if c { [INFO] [stdout] | ^ help: a local variable with a similar name exists: `s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0204]: the trait `Copy` cannot be implemented for this type [INFO] [stdout] --> src/main.rs:220:14 [INFO] [stdout] | [INFO] [stdout] 220 | #[derive(Copy, Clone)] [INFO] [stdout] | ^^^^ [INFO] [stdout] 221 | struct StringLabel { name: String } [INFO] [stdout] | ------------ this field does not implement `Copy` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0204]: the trait `Copy` cannot be implemented for this type [INFO] [stdout] --> src/main.rs:220:14 [INFO] [stdout] | [INFO] [stdout] 220 | #[derive(Copy, Clone)] [INFO] [stdout] | ^^^^ [INFO] [stdout] 221 | struct StringLabel { name: String } [INFO] [stdout] | ------------ this field does not implement `Copy` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `f` in this scope [INFO] [stdout] --> src/main.rs:76:9 [INFO] [stdout] | [INFO] [stdout] 76 | f(x); //... ok to move from x here [INFO] [stdout] | ^ help: a local variable with a similar name exists: `s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `f` in this scope [INFO] [stdout] --> src/main.rs:76:9 [INFO] [stdout] | [INFO] [stdout] 76 | f(x); //... ok to move from x here [INFO] [stdout] | ^ help: a local variable with a similar name exists: `s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `g` in this scope [INFO] [stdout] --> src/main.rs:78:9 [INFO] [stdout] | [INFO] [stdout] 78 | g(x); // ... and ok to also move from x here [INFO] [stdout] | ^ help: a local variable with a similar name exists: `s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `f` in this scope [INFO] [stdout] --> src/main.rs:84:11 [INFO] [stdout] | [INFO] [stdout] 84 | while f() { [INFO] [stdout] | ^ help: a local variable with a similar name exists: `s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `g` in this scope [INFO] [stdout] --> src/main.rs:78:9 [INFO] [stdout] | [INFO] [stdout] 78 | g(x); // ... and ok to also move from x here [INFO] [stdout] | ^ help: a local variable with a similar name exists: `s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `f` in this scope [INFO] [stdout] --> src/main.rs:84:11 [INFO] [stdout] | [INFO] [stdout] 84 | while f() { [INFO] [stdout] | ^ help: a local variable with a similar name exists: `s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `g` in this scope [INFO] [stdout] --> src/main.rs:85:9 [INFO] [stdout] | [INFO] [stdout] 85 | g(x); // bad: x would be moved in the first iteration, [INFO] [stdout] | ^ help: a local variable with a similar name exists: `s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `g` in this scope [INFO] [stdout] --> src/main.rs:85:9 [INFO] [stdout] | [INFO] [stdout] 85 | g(x); // bad: x would be moved in the first iteration, [INFO] [stdout] | ^ help: a local variable with a similar name exists: `s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `f` in this scope [INFO] [stdout] --> src/main.rs:91:11 [INFO] [stdout] | [INFO] [stdout] 91 | while f() { [INFO] [stdout] | ^ help: a local variable with a similar name exists: `s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `g` in this scope [INFO] [stdout] --> src/main.rs:92:9 [INFO] [stdout] | [INFO] [stdout] 92 | g(x); // move from x [INFO] [stdout] | ^ help: a local variable with a similar name exists: `s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `h` in this scope [INFO] [stdout] --> src/main.rs:93:13 [INFO] [stdout] | [INFO] [stdout] 93 | x = h(); // give x a fresh value [INFO] [stdout] | ^ help: a local variable with a similar name exists: `s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `e` in this scope [INFO] [stdout] --> src/main.rs:95:5 [INFO] [stdout] | [INFO] [stdout] 95 | e(x); [INFO] [stdout] | ^ help: a local variable with a similar name exists: `s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `f` in this scope [INFO] [stdout] --> src/main.rs:91:11 [INFO] [stdout] | [INFO] [stdout] 91 | while f() { [INFO] [stdout] | ^ help: a local variable with a similar name exists: `s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `g` in this scope [INFO] [stdout] --> src/main.rs:92:9 [INFO] [stdout] | [INFO] [stdout] 92 | g(x); // move from x [INFO] [stdout] | ^ help: a local variable with a similar name exists: `s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `h` in this scope [INFO] [stdout] --> src/main.rs:93:13 [INFO] [stdout] | [INFO] [stdout] 93 | x = h(); // give x a fresh value [INFO] [stdout] | ^ help: a local variable with a similar name exists: `s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find function `e` in this scope [INFO] [stdout] --> src/main.rs:95:5 [INFO] [stdout] | [INFO] [stdout] 95 | e(x); [INFO] [stdout] | ^ help: a local variable with a similar name exists: `s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/main.rs:150:16 [INFO] [stdout] | [INFO] [stdout] 150 | s.push("!"); [INFO] [stdout] | ---- ^^^ expected `char`, found `&str` [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> /rustc/2886b36df4a646dd8d82fb65bf0c9d8d96c1f71a/library/alloc/src/string.rs:1410:12 [INFO] [stdout] help: if you meant to write a `char` literal, use single quotes [INFO] [stdout] | [INFO] [stdout] 150 - s.push("!"); [INFO] [stdout] 150 + s.push('!'); [INFO] [stdout] | [INFO] [stdout] help: you might have meant to use `push_str` [INFO] [stdout] | [INFO] [stdout] 150 | s.push_str("!"); [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/main.rs:150:16 [INFO] [stdout] | [INFO] [stdout] 150 | s.push("!"); [INFO] [stdout] | ---- ^^^ expected `char`, found `&str` [INFO] [stdout] | | [INFO] [stdout] | arguments to this method are incorrect [INFO] [stdout] | [INFO] [stdout] note: method defined here [INFO] [stdout] --> /rustc/2886b36df4a646dd8d82fb65bf0c9d8d96c1f71a/library/alloc/src/string.rs:1410:12 [INFO] [stdout] help: if you meant to write a `char` literal, use single quotes [INFO] [stdout] | [INFO] [stdout] 150 - s.push("!"); [INFO] [stdout] 150 + s.push('!'); [INFO] [stdout] | [INFO] [stdout] help: you might have meant to use `push_str` [INFO] [stdout] | [INFO] [stdout] 150 | s.push_str("!"); [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/main.rs:160:35 [INFO] [stdout] | [INFO] [stdout] 160 | composers.push(Person { name: Some("Palestrina".to_string()), birth: 1525 }); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `String`, found `Option` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `String` [INFO] [stdout] found enum `Option` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/main.rs:160:35 [INFO] [stdout] | [INFO] [stdout] 160 | composers.push(Person { name: Some("Palestrina".to_string()), birth: 1525 }); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `String`, found `Option` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `String` [INFO] [stdout] found enum `Option` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/main.rs:166:64 [INFO] [stdout] | [INFO] [stdout] 166 | let first_name = std::mem::replace(&mut composers[0].name, None); [INFO] [stdout] | ----------------- ^^^^ expected `String`, found `Option<_>` [INFO] [stdout] | | [INFO] [stdout] | arguments to this function are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected struct `String` [INFO] [stdout] found enum `Option<_>` [INFO] [stdout] help: the return type of this call is `Option<_>` due to the type of the argument passed [INFO] [stdout] --> src/main.rs:166:22 [INFO] [stdout] | [INFO] [stdout] 166 | let first_name = std::mem::replace(&mut composers[0].name, None); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----^ [INFO] [stdout] | | [INFO] [stdout] | this argument influences the return type of `replace` [INFO] [stdout] note: function defined here [INFO] [stdout] --> /rustc/2886b36df4a646dd8d82fb65bf0c9d8d96c1f71a/library/core/src/mem/mod.rs:876:14 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/main.rs:166:64 [INFO] [stdout] | [INFO] [stdout] 166 | let first_name = std::mem::replace(&mut composers[0].name, None); [INFO] [stdout] | ----------------- ^^^^ expected `String`, found `Option<_>` [INFO] [stdout] | | [INFO] [stdout] | arguments to this function are incorrect [INFO] [stdout] | [INFO] [stdout] = note: expected struct `String` [INFO] [stdout] found enum `Option<_>` [INFO] [stdout] help: the return type of this call is `Option<_>` due to the type of the argument passed [INFO] [stdout] --> src/main.rs:166:22 [INFO] [stdout] | [INFO] [stdout] 166 | let first_name = std::mem::replace(&mut composers[0].name, None); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----^ [INFO] [stdout] | | [INFO] [stdout] | this argument influences the return type of `replace` [INFO] [stdout] note: function defined here [INFO] [stdout] --> /rustc/2886b36df4a646dd8d82fb65bf0c9d8d96c1f71a/library/core/src/mem/mod.rs:876:14 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `String` with `Option` [INFO] [stdout] --> src/main.rs:167:5 [INFO] [stdout] | [INFO] [stdout] 167 | assert_eq!(first_name, Some("Palestrina".to_string())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no implementation for `String == Option` [INFO] [stdout] | [INFO] [stdout] = help: the trait `PartialEq>` is not implemented for `String` [INFO] [stdout] = help: the following other types implement trait `PartialEq`: [INFO] [stdout] `String` implements `PartialEq<&str>` [INFO] [stdout] `String` implements `PartialEq` [INFO] [stdout] `String` implements `PartialEq` [INFO] [stdout] `String` implements `PartialEq>` [INFO] [stdout] `String` implements `PartialEq` [INFO] [stdout] `String` implements `PartialEq` [INFO] [stdout] = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `String` with `Option<_>` [INFO] [stdout] --> src/main.rs:168:5 [INFO] [stdout] | [INFO] [stdout] 168 | assert_eq!(composers[0].name, None); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no implementation for `String == Option<_>` [INFO] [stdout] | [INFO] [stdout] = help: the trait `PartialEq>` is not implemented for `String` [INFO] [stdout] = help: the following other types implement trait `PartialEq`: [INFO] [stdout] `String` implements `PartialEq<&str>` [INFO] [stdout] `String` implements `PartialEq` [INFO] [stdout] `String` implements `PartialEq` [INFO] [stdout] `String` implements `PartialEq>` [INFO] [stdout] `String` implements `PartialEq` [INFO] [stdout] `String` implements `PartialEq` [INFO] [stdout] = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `String` with `Option` [INFO] [stdout] --> src/main.rs:167:5 [INFO] [stdout] | [INFO] [stdout] 167 | assert_eq!(first_name, Some("Palestrina".to_string())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no implementation for `String == Option` [INFO] [stdout] | [INFO] [stdout] = help: the trait `PartialEq>` is not implemented for `String` [INFO] [stdout] = help: the following other types implement trait `PartialEq`: [INFO] [stdout] `String` implements `PartialEq<&str>` [INFO] [stdout] `String` implements `PartialEq` [INFO] [stdout] `String` implements `PartialEq` [INFO] [stdout] `String` implements `PartialEq>` [INFO] [stdout] `String` implements `PartialEq` [INFO] [stdout] `String` implements `PartialEq` [INFO] [stdout] = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: can't compare `String` with `Option<_>` [INFO] [stdout] --> src/main.rs:168:5 [INFO] [stdout] | [INFO] [stdout] 168 | assert_eq!(composers[0].name, None); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no implementation for `String == Option<_>` [INFO] [stdout] | [INFO] [stdout] = help: the trait `PartialEq>` is not implemented for `String` [INFO] [stdout] = help: the following other types implement trait `PartialEq`: [INFO] [stdout] `String` implements `PartialEq<&str>` [INFO] [stdout] `String` implements `PartialEq` [INFO] [stdout] `String` implements `PartialEq` [INFO] [stdout] `String` implements `PartialEq>` [INFO] [stdout] `String` implements `PartialEq` [INFO] [stdout] `String` implements `PartialEq` [INFO] [stdout] = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: `String` is not an iterator [INFO] [stdout] --> src/main.rs:171:40 [INFO] [stdout] | [INFO] [stdout] 171 | let first_name = composers[0].name.take(); [INFO] [stdout] | ^^^^ `String` is not an iterator [INFO] [stdout] | [INFO] [stdout] = note: the following trait bounds were not satisfied: [INFO] [stdout] `String: Iterator` [INFO] [stdout] which is required by `&mut String: Iterator` [INFO] [stdout] `str: Iterator` [INFO] [stdout] which is required by `&mut str: Iterator` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0599]: `String` is not an iterator [INFO] [stdout] --> src/main.rs:171:40 [INFO] [stdout] | [INFO] [stdout] 171 | let first_name = composers[0].name.take(); [INFO] [stdout] | ^^^^ `String` is not an iterator [INFO] [stdout] | [INFO] [stdout] = note: the following trait bounds were not satisfied: [INFO] [stdout] `String: Iterator` [INFO] [stdout] which is required by `&mut String: Iterator` [INFO] [stdout] `str: Iterator` [INFO] [stdout] which is required by `&mut str: Iterator` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0204, E0277, E0308, E0425, E0428, E0599. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0204`. [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0204, E0277, E0308, E0425, E0428, E0599. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0204`. [INFO] [stdout] [INFO] [stderr] error: could not compile `ownership-moves` (bin "ownership-moves") due to 20 previous errors [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: could not compile `ownership-moves` (bin "ownership-moves" test) due to 20 previous errors [INFO] running `Command { std: "docker" "inspect" "169a4cf064db2f6dbd5303c56381a48300d2b6fda71ce9dfac140dd4709e06b1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "169a4cf064db2f6dbd5303c56381a48300d2b6fda71ce9dfac140dd4709e06b1", kill_on_drop: false }` [INFO] [stdout] 169a4cf064db2f6dbd5303c56381a48300d2b6fda71ce9dfac140dd4709e06b1