[INFO] cloning repository https://github.com/CorneliaKelinske/rustlings_meetup
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/CorneliaKelinske/rustlings_meetup" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCorneliaKelinske%2Frustlings_meetup", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCorneliaKelinske%2Frustlings_meetup'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 96be19ef0ee679fe95a6c0bd18d886cc6e4ac2f1
[INFO] checking CorneliaKelinske/rustlings_meetup against try#3a4cb0edb4040379c037e06efeb5409e44be7b77 for pr-146377
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCorneliaKelinske%2Frustlings_meetup" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/CorneliaKelinske/rustlings_meetup
[INFO] finished tweaking git repo https://github.com/CorneliaKelinske/rustlings_meetup
[INFO] tweaked toml for git repo https://github.com/CorneliaKelinske/rustlings_meetup written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/CorneliaKelinske/rustlings_meetup on toolchain 3a4cb0edb4040379c037e06efeb5409e44be7b77
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3a4cb0edb4040379c037e06efeb5409e44be7b77" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3a4cb0edb4040379c037e06efeb5409e44be7b77" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3a4cb0edb4040379c037e06efeb5409e44be7b77" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:94a0c148923f5b2b52a63ef0eeb1882ad339ab61bce784c8077cbe41c61feb6c" "/opt/rustwide/cargo-home/bin/cargo" "+3a4cb0edb4040379c037e06efeb5409e44be7b77" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 22f41f88c723f5bead667f0876b0074ba4f2e8caf670c84889b2b259182bce69
[INFO] running `Command { std: "docker" "start" "-a" "22f41f88c723f5bead667f0876b0074ba4f2e8caf670c84889b2b259182bce69", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "22f41f88c723f5bead667f0876b0074ba4f2e8caf670c84889b2b259182bce69", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "22f41f88c723f5bead667f0876b0074ba4f2e8caf670c84889b2b259182bce69", kill_on_drop: false }`
[INFO] [stdout] 22f41f88c723f5bead667f0876b0074ba4f2e8caf670c84889b2b259182bce69
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:94a0c148923f5b2b52a63ef0eeb1882ad339ab61bce784c8077cbe41c61feb6c" "/opt/rustwide/cargo-home/bin/cargo" "+3a4cb0edb4040379c037e06efeb5409e44be7b77" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 07ce94cf3fb306580ab18f30e9862f1178b365e3b0adecf0b71c80329d8ef390
[INFO] running `Command { std: "docker" "start" "-a" "07ce94cf3fb306580ab18f30e9862f1178b365e3b0adecf0b71c80329d8ef390", kill_on_drop: false }`
[INFO] [stderr]     Checking exercises v0.0.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> exercises/11_hashmaps/hashmaps3.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let mut scores = HashMap::new();
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `team_1_name`
[INFO] [stdout]   --> exercises/11_hashmaps/hashmaps3.rs:25:13
[INFO] [stdout]    |
[INFO] [stdout] 25 |         let team_1_name = split_iterator.next().unwrap();
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_team_1_name`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `team_2_name`
[INFO] [stdout]   --> exercises/11_hashmaps/hashmaps3.rs:26:13
[INFO] [stdout]    |
[INFO] [stdout] 26 |         let team_2_name = split_iterator.next().unwrap();
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_team_2_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `team_1_score`
[INFO] [stdout]   --> exercises/11_hashmaps/hashmaps3.rs:27:13
[INFO] [stdout]    |
[INFO] [stdout] 27 |         let team_1_score: u8 = split_iterator.next().unwrap().parse().unwrap();
[INFO] [stdout]    |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_team_1_score`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `team_2_score`
[INFO] [stdout]   --> exercises/11_hashmaps/hashmaps3.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |         let team_2_score: u8 = split_iterator.next().unwrap().parse().unwrap();
[INFO] [stdout]    |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_team_2_score`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TeamScores` is never constructed
[INFO] [stdout]   --> exercises/11_hashmaps/hashmaps3.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct TeamScores {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_scores_table` is never used
[INFO] [stdout]   --> exercises/11_hashmaps/hashmaps3.rs:18:4
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn build_scores_table(results: &str) -> HashMap<&str, TeamScores> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected end of macro invocation
[INFO] [stdout]   --> exercises/17_tests/tests2.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |         assert_eq!();
[INFO] [stdout]    |         ^^^^^^^^^^^^ missing tokens in macro arguments
[INFO] [stdout]    |
[INFO] [stdout] note: while trying to match meta-variable `$left:expr`
[INFO] [stdout]   --> /rustc/3a4cb0edb4040379c037e06efeb5409e44be7b77/library/core/src/macros/mod.rs:43:5
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected end of macro invocation
[INFO] [stdout]   --> exercises/17_tests/tests2.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |         assert_eq!();
[INFO] [stdout]    |         ^^^^^^^^^^^^ missing tokens in macro arguments
[INFO] [stdout]    |
[INFO] [stdout] note: while trying to match meta-variable `$left:expr`
[INFO] [stdout]   --> /rustc/3a4cb0edb4040379c037e06efeb5409e44be7b77/library/core/src/macros/mod.rs:43:5
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected end of macro invocation
[INFO] [stdout]   --> exercises/17_tests/tests2.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |         assert_eq!();
[INFO] [stdout]    |         ^^^^^^^^^^^^ missing tokens in macro arguments
[INFO] [stdout]    |
[INFO] [stdout] note: while trying to match meta-variable `$left:expr`
[INFO] [stdout]   --> /rustc/3a4cb0edb4040379c037e06efeb5409e44be7b77/library/core/src/macros/mod.rs:43:5
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unexpected end of macro invocation
[INFO] [stdout]   --> exercises/17_tests/tests2.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |         assert_eq!();
[INFO] [stdout]    |         ^^^^^^^^^^^^ missing tokens in macro arguments
[INFO] [stdout]    |
[INFO] [stdout] note: while trying to match meta-variable `$left:expr`
[INFO] [stdout]   --> /rustc/3a4cb0edb4040379c037e06efeb5409e44be7b77/library/core/src/macros/mod.rs:43:5
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0046]: not all trait items implemented, missing: `append_bar`
[INFO] [stdout]  --> exercises/15_traits/traits1.rs:7:1
[INFO] [stdout]   |
[INFO] [stdout] 4 |     fn append_bar(self) -> Self;
[INFO] [stdout]   |     ---------------------------- `append_bar` from trait
[INFO] [stdout] ...
[INFO] [stdout] 7 | impl AppendBar for String {
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^ missing `append_bar` in implementation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]  --> exercises/09_strings/strings3.rs:1:28
[INFO] [stdout]   |
[INFO] [stdout] 1 | fn trim_me(input: &str) -> &str {
[INFO] [stdout]   |    -------                 ^^^^ expected `&str`, found `()`
[INFO] [stdout]   |    |
[INFO] [stdout]   |    implicitly returns `()` as its body has no tail or `return` expression
[INFO] [stdout]   |
[INFO] [stdout] help: consider returning the local binding `input`
[INFO] [stdout]   |
[INFO] [stdout] 1 | fn trim_me(input: &str) -> &str {
[INFO] [stdout] 2 ~     input
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stdout]  --> exercises/22_clippy/clippy2.rs:5:14
[INFO] [stdout]   |
[INFO] [stdout] 5 |     for x in option {
[INFO] [stdout]   |              ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(for_loops_over_fallibles)]` on by default
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]   |
[INFO] [stdout] 5 -     for x in option {
[INFO] [stdout] 5 +     while let Some(x) = option {
[INFO] [stdout]   |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]   |
[INFO] [stdout] 5 -     for x in option {
[INFO] [stdout] 5 +     if let Some(x) = option {
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0046`.
[INFO] [stdout] 
[INFO] [stdout] warning: method `details` is never used
[INFO] [stdout]   --> exercises/19_smart_pointers/rc1.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl Planet {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] 25 |     fn details(&self) {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]  --> exercises/09_strings/strings3.rs:5:31
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn compose_me(input: &str) -> String {
[INFO] [stdout]   |    ----------                 ^^^^^^ expected `String`, found `()`
[INFO] [stdout]   |    |
[INFO] [stdout]   |    implicitly returns `()` as its body has no tail or `return` expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]  --> exercises/09_strings/strings3.rs:9:31
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn replace_me(input: &str) -> String {
[INFO] [stdout]   |    ----------                 ^^^^^^ expected `String`, found `()`
[INFO] [stdout]   |    |
[INFO] [stdout]   |    implicitly returns `()` as its body has no tail or `return` expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0308`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `exercises` (bin "strings3") due to 3 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `exercises` (bin "traits1" test) due to 1 previous error
[INFO] [stderr] error: could not compile `exercises` (bin "tests2" test) due to 4 previous errors
[INFO] [stdout] error: expected identifier, found `,`
[INFO] [stdout]   --> exercises/15_traits/traits4.rs:14:40
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn compare_license_types(software1: ???, software2: ???) -> bool {
[INFO] [stdout]    |                                        ^ expected identifier
[INFO] [stdout]    |
[INFO] [stdout] help: remove this comma
[INFO] [stdout]    |
[INFO] [stdout] 14 - fn compare_license_types(software1: ???, software2: ???) -> bool {
[INFO] [stdout] 14 + fn compare_license_types(software1: ??? software2: ???) -> bool {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected a trait, found type
[INFO] [stdout]   --> exercises/15_traits/traits4.rs:14:39
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn compare_license_types(software1: ???, software2: ???) -> bool {
[INFO] [stdout]    |                                       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected identifier, found `)`
[INFO] [stdout]   --> exercises/15_traits/traits4.rs:14:56
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn compare_license_types(software1: ???, software2: ???) -> bool {
[INFO] [stdout]    |                                                        ^ expected identifier
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `exercises` (bin "options3") due to 1 previous error
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> exercises/11_hashmaps/hashmaps3.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let mut scores = HashMap::new();
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `exercises` (bin "macros1") due to 1 previous error; 1 warning emitted
[INFO] [stdout] warning: unused variable: `team_1_name`
[INFO] [stdout]   --> exercises/11_hashmaps/hashmaps3.rs:25:13
[INFO] [stdout]    |
[INFO] [stdout] 25 |         let team_1_name = split_iterator.next().unwrap();
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_team_1_name`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `exercises` (bin "traits3") due to 2 previous errors
[INFO] [stdout] warning: unused variable: `team_2_name`
[INFO] [stdout]   --> exercises/11_hashmaps/hashmaps3.rs:26:13
[INFO] [stdout]    |
[INFO] [stdout] 26 |         let team_2_name = split_iterator.next().unwrap();
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_team_2_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `team_1_score`
[INFO] [stdout]   --> exercises/11_hashmaps/hashmaps3.rs:27:13
[INFO] [stdout]    |
[INFO] [stdout] 27 |         let team_1_score: u8 = split_iterator.next().unwrap().parse().unwrap();
[INFO] [stdout]    |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_team_1_score`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `team_2_score`
[INFO] [stdout]   --> exercises/11_hashmaps/hashmaps3.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |         let team_2_score: u8 = split_iterator.next().unwrap().parse().unwrap();
[INFO] [stdout]    |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_team_2_score`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0382]: borrow of partially moved value: `optional_point`
[INFO] [stdout]   --> exercises/12_options/options3.rs:16:16
[INFO] [stdout]    |
[INFO] [stdout] 12 |         Some(p) => println!("Co-ordinates are {},{}", p.x, p.y),
[INFO] [stdout]    |              - value partially moved here
[INFO] [stdout] ...
[INFO] [stdout] 16 |     println!("{optional_point:?}"); // Don't change this line.
[INFO] [stdout]    |                ^^^^^^^^^^^^^^ value borrowed here after partial move
[INFO] [stdout]    |
[INFO] [stdout]    = note: partial move occurs because value has type `Point`, which does not implement the `Copy` trait
[INFO] [stdout]    = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: borrow this binding in the pattern to avoid moving the value
[INFO] [stdout]    |
[INFO] [stdout] 12 |         Some(ref p) => println!("Co-ordinates are {},{}", p.x, p.y),
[INFO] [stdout]    |              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0382`.
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `my_macro`
[INFO] [stdout]  --> exercises/21_macros/macros1.rs:1:14
[INFO] [stdout]   |
[INFO] [stdout] 1 | macro_rules! my_macro {
[INFO] [stdout]   |              ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0423]: expected function, found macro `my_macro`
[INFO] [stdout]  --> exercises/21_macros/macros1.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 |     my_macro();
[INFO] [stdout]   |     ^^^^^^^^ not a function
[INFO] [stdout]   |
[INFO] [stdout] help: use `!` to invoke the macro
[INFO] [stdout]   |
[INFO] [stdout] 9 |     my_macro!();
[INFO] [stdout]   |             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0423`.
[INFO] [stdout] 
[INFO] [stdout] error[E0046]: not all trait items implemented, missing: `licensing_info`
[INFO] [stdout]   --> exercises/15_traits/traits3.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout]  8 |     fn licensing_info(&self) -> String;
[INFO] [stdout]    |     ----------------------------------- `licensing_info` from trait
[INFO] [stdout] ...
[INFO] [stdout] 19 | impl Licensed for SomeSoftware {} // Don't edit this line.
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `licensing_info` in implementation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0046]: not all trait items implemented, missing: `licensing_info`
[INFO] [stdout]   --> exercises/15_traits/traits3.rs:20:1
[INFO] [stdout]    |
[INFO] [stdout]  8 |     fn licensing_info(&self) -> String;
[INFO] [stdout]    |     ----------------------------------- `licensing_info` from trait
[INFO] [stdout] ...
[INFO] [stdout] 20 | impl Licensed for OtherSoftware {} // Don't edit this line.
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `licensing_info` in implementation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0046`.
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `software1` in this scope
[INFO] [stdout]   --> exercises/15_traits/traits4.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     software1.licensing_info() == software2.licensing_info()
[INFO] [stdout]    |     ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `software2` in this scope
[INFO] [stdout]   --> exercises/15_traits/traits4.rs:15:35
[INFO] [stdout]    |
[INFO] [stdout] 15 |     software1.licensing_info() == software2.licensing_info()
[INFO] [stdout]    |                                   ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0425`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `exercises` (bin "traits4") due to 5 previous errors
[INFO] running `Command { std: "docker" "inspect" "07ce94cf3fb306580ab18f30e9862f1178b365e3b0adecf0b71c80329d8ef390", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "07ce94cf3fb306580ab18f30e9862f1178b365e3b0adecf0b71c80329d8ef390", kill_on_drop: false }`
[INFO] [stdout] 07ce94cf3fb306580ab18f30e9862f1178b365e3b0adecf0b71c80329d8ef390
