[INFO] cloning repository https://github.com/Angluca/rustlings-zh-cn-rustacean
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Angluca/rustlings-zh-cn-rustacean" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAngluca%2Frustlings-zh-cn-rustacean", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAngluca%2Frustlings-zh-cn-rustacean'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 1c54521d680fd22ac5ad8adb2a89c938c0bc7b88
[INFO] checking Angluca/rustlings-zh-cn-rustacean against try#54cf65b8d066c082e536455049b95943cf30378f for pr-151920
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAngluca%2Frustlings-zh-cn-rustacean" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Angluca/rustlings-zh-cn-rustacean
[INFO] finished tweaking git repo https://github.com/Angluca/rustlings-zh-cn-rustacean
[INFO] tweaked toml for git repo https://github.com/Angluca/rustlings-zh-cn-rustacean written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Angluca/rustlings-zh-cn-rustacean on toolchain 54cf65b8d066c082e536455049b95943cf30378f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+54cf65b8d066c082e536455049b95943cf30378f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Angluca/rustlings-zh-cn-rustacean 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" "+54cf65b8d066c082e536455049b95943cf30378f" "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-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+54cf65b8d066c082e536455049b95943cf30378f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 67d61141755b73923bb7178b1bbaae4e5c46290f2adf6d7dd6f6fb5cfb6d8a8b
[INFO] running `Command { std: "docker" "start" "-a" "67d61141755b73923bb7178b1bbaae4e5c46290f2adf6d7dd6f6fb5cfb6d8a8b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "67d61141755b73923bb7178b1bbaae4e5c46290f2adf6d7dd6f6fb5cfb6d8a8b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "67d61141755b73923bb7178b1bbaae4e5c46290f2adf6d7dd6f6fb5cfb6d8a8b", kill_on_drop: false }`
[INFO] [stdout] 67d61141755b73923bb7178b1bbaae4e5c46290f2adf6d7dd6f6fb5cfb6d8a8b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+54cf65b8d066c082e536455049b95943cf30378f" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 24a1ee11cf1a977c46dfa0619dd4015799f1796987803b3c0fce7acca01f95b8
[INFO] running `Command { std: "docker" "start" "-a" "24a1ee11cf1a977c46dfa0619dd4015799f1796987803b3c0fce7acca01f95b8", kill_on_drop: false }`
[INFO] [stderr]     Checking exercises v0.0.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0532]: expected a pattern, found a function call
[INFO] [stdout]   --> exercises/19_smart_pointers/cow1.rs:41:33
[INFO] [stdout]    |
[INFO] [stdout] 41 |         assert!(matches!(input, todo!()));
[INFO] [stdout]    |                                 ^^^^^^^ not a tuple struct or tuple variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: function calls are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0532]: expected a pattern, found a function call
[INFO] [stdout]   --> exercises/19_smart_pointers/cow1.rs:54:33
[INFO] [stdout]    |
[INFO] [stdout] 54 |         assert!(matches!(input, todo!()));
[INFO] [stdout]    |                                 ^^^^^^^ not a tuple struct or tuple variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: function calls are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0532]: expected a pattern, found a function call
[INFO] [stdout]   --> exercises/19_smart_pointers/cow1.rs:65:33
[INFO] [stdout]    |
[INFO] [stdout] 65 |         assert!(matches!(input, todo!()));
[INFO] [stdout]    |                                 ^^^^^^^ not a tuple struct or tuple variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: function calls are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected type, found `{`
[INFO] [stdout]   --> exercises/02_functions/functions4.rs:11:30
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn sale_price(price: i64) -> {
[INFO] [stdout]    |                              ^ expected type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> exercises/18_iterators/iterators3.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn divide(a: i64, b: i64) -> Result<i64, DivisionError> {
[INFO] [stdout]    |           ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> exercises/18_iterators/iterators3.rs:13:19
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn divide(a: i64, b: i64) -> Result<i64, DivisionError> {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `division_results`
[INFO] [stdout]   --> exercises/18_iterators/iterators3.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let division_results = numbers.into_iter().map(|n| divide(n, 27));
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_division_results`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `division_results`
[INFO] [stdout]   --> exercises/18_iterators/iterators3.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |     let division_results = numbers.into_iter().map(|n| divide(n, 27));
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_division_results`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `DivisionError` is never used
[INFO] [stdout]  --> exercises/18_iterators/iterators3.rs:2:6
[INFO] [stdout]   |
[INFO] [stdout] 2 | enum DivisionError {
[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 `divide` is never used
[INFO] [stdout]   --> exercises/18_iterators/iterators3.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn divide(a: i64, b: i64) -> Result<i64, DivisionError> {
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `result_with_list` is never used
[INFO] [stdout]   --> exercises/18_iterators/iterators3.rs:19:4
[INFO] [stdout]    |
[INFO] [stdout] 19 | fn result_with_list() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `list_of_results` is never used
[INFO] [stdout]   --> exercises/18_iterators/iterators3.rs:26:4
[INFO] [stdout]    |
[INFO] [stdout] 26 | fn list_of_results() {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ReportCard` is never constructed
[INFO] [stdout]   --> solutions/quizzes/quiz3.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | struct ReportCard<T> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `print` is never used
[INFO] [stdout]   --> solutions/quizzes/quiz3.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl<T: Display> ReportCard<T> {
[INFO] [stdout]    | ------------------------------ method in this implementation
[INFO] [stdout] 22 |     //  ^^^^^^^ 要求泛型 `T` 实现了 `Display`。
[INFO] [stdout] 23 |     fn print(&self) -> String {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0532`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `exercises` (bin "functions4" test) due to 1 previous error
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `exercises` (bin "cow1" test) due to 3 previous errors
[INFO] [stdout] error[E0425]: cannot find value `green` in this scope
[INFO] [stdout]   --> exercises/07_structs/structs1.rs:24:20
[INFO] [stdout]    |
[INFO] [stdout] 24 |         assert_eq!(green.red, 0);
[INFO] [stdout]    |                    ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `green` in this scope
[INFO] [stdout]   --> exercises/07_structs/structs1.rs:25:20
[INFO] [stdout]    |
[INFO] [stdout] 25 |         assert_eq!(green.green, 255);
[INFO] [stdout]    |                    ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `green` in this scope
[INFO] [stdout]   --> exercises/07_structs/structs1.rs:26:20
[INFO] [stdout]    |
[INFO] [stdout] 26 |         assert_eq!(green.blue, 0);
[INFO] [stdout]    |                    ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `green` in this scope
[INFO] [stdout]   --> exercises/07_structs/structs1.rs:34:20
[INFO] [stdout]    |
[INFO] [stdout] 34 |         assert_eq!(green.0, 0);
[INFO] [stdout]    |                    ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `green` in this scope
[INFO] [stdout]   --> exercises/07_structs/structs1.rs:35:20
[INFO] [stdout]    |
[INFO] [stdout] 35 |         assert_eq!(green.1, 255);
[INFO] [stdout]    |                    ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `green` in this scope
[INFO] [stdout]   --> exercises/07_structs/structs1.rs:36:20
[INFO] [stdout]    |
[INFO] [stdout] 36 |         assert_eq!(green.2, 0);
[INFO] [stdout]    |                    ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `unit_struct` in this scope
[INFO] [stdout]   --> exercises/07_structs/structs1.rs:43:33
[INFO] [stdout]    |
[INFO] [stdout] 43 |         let message = format!("{unit_struct:?}s are fun!");
[INFO] [stdout]    |                                 ^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]   --> exercises/07_structs/structs1.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     use super::*;
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected type, found `)`
[INFO] [stdout]  --> exercises/02_functions/functions2.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | fn call_me(num:) {
[INFO] [stdout]   |                ^ expected type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Order` is never constructed
[INFO] [stdout]  --> solutions/07_structs/structs2.rs:2:8
[INFO] [stdout]   |
[INFO] [stdout] 2 | struct Order {
[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 `create_order_template` is never used
[INFO] [stdout]   --> solutions/07_structs/structs2.rs:12:4
[INFO] [stdout]    |
[INFO] [stdout] 12 | fn create_order_template() -> Order {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> exercises/18_iterators/iterators5.rs:26:72
[INFO] [stdout]    |
[INFO] [stdout] 26 | fn count_iterator(map: &HashMap<String, Progress>, value: Progress) -> usize {
[INFO] [stdout]    |    --------------                                                      ^^^^^ expected `usize`, 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/18_iterators/iterators5.rs:44:92
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn count_collection_iterator(collection: &[HashMap<String, Progress>], value: Progress) -> usize {
[INFO] [stdout]    |    -------------------------                                                               ^^^^^ expected `usize`, found `()`
[INFO] [stdout]    |    |
[INFO] [stdout]    |    implicitly returns `()` as its body has no tail or `return` expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Licensed` is never used
[INFO] [stdout]  --> solutions/15_traits/traits3.rs:1:7
[INFO] [stdout]   |
[INFO] [stdout] 1 | trait Licensed {
[INFO] [stdout]   |       ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SomeSoftware` is never constructed
[INFO] [stdout]  --> solutions/15_traits/traits3.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | struct SomeSoftware {
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OtherSoftware` is never constructed
[INFO] [stdout]   --> solutions/15_traits/traits3.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct OtherSoftware {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0308`.
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_price_of_apples` is never used
[INFO] [stdout]  --> solutions/quizzes/quiz1.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn calculate_price_of_apples(n_apples: u64) -> u64 {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0425`.
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cents_per_gram`
[INFO] [stdout]   --> exercises/07_structs/structs3.rs:34:24
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn get_fees(&self, cents_per_gram: u32) {
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cents_per_gram`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Package` is never constructed
[INFO] [stdout]  --> exercises/07_structs/structs3.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | struct Package {
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `is_international`, and `get_fees` are never used
[INFO] [stdout]   --> exercises/07_structs/structs3.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl Package {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 15 |     fn new(sender_country: String, recipient_country: String, weight_in_grams: u32) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     fn is_international(&self) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     fn get_fees(&self, cents_per_gram: u32) {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `abs_all` is never used
[INFO] [stdout]  --> exercises/19_smart_pointers/cow1.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn abs_all(input: &mut Cow<[i32]>) {
[INFO] [stdout]   |    ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `exercises` (bin "iterators5" test) due to 2 previous errors
[INFO] [stderr] error: could not compile `exercises` (bin "structs1" test) due to 7 previous errors; 1 warning emitted
[INFO] [stdout] error[E0425]: cannot find value `num` in this scope
[INFO] [stdout]  --> exercises/02_functions/functions2.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 |     for i in 0..num {
[INFO] [stdout]   |                 ^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `FromResidual`)
[INFO] [stdout]   --> exercises/13_error_handling/errors3.rs:21:46
[INFO] [stdout]    |
[INFO] [stdout] 16 | fn main() {
[INFO] [stdout]    | --------- this function should return `Result` or `Option` to accept `?`
[INFO] [stdout] ...
[INFO] [stdout] 21 |     let cost = total_cost(pretend_user_input)?;
[INFO] [stdout]    |                                              ^ cannot use the `?` operator in a function that returns `()`
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding return type
[INFO] [stdout]    |
[INFO] [stdout] 16 | fn main() -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]    |           +++++++++++++++++++++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0425`.
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `exercises` (bin "functions2" test) due to 2 previous errors
[INFO] [stderr] error: could not compile `exercises` (bin "errors3" test) due to 1 previous error
[INFO] running `Command { std: "docker" "inspect" "24a1ee11cf1a977c46dfa0619dd4015799f1796987803b3c0fce7acca01f95b8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "24a1ee11cf1a977c46dfa0619dd4015799f1796987803b3c0fce7acca01f95b8", kill_on_drop: false }`
[INFO] [stdout] 24a1ee11cf1a977c46dfa0619dd4015799f1796987803b3c0fce7acca01f95b8
