[INFO] cloning repository https://github.com/victor-arutiunov/rust-basics [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/victor-arutiunov/rust-basics" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvictor-arutiunov%2Frust-basics", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvictor-arutiunov%2Frust-basics'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 8e269d8195812c192bcdfdf1dfd92536ffad4ea1 [INFO] checking victor-arutiunov/rust-basics against try#0f31acebf540c89e4a4d5d114959fe91973419cb for pr-147017 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvictor-arutiunov%2Frust-basics" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/victor-arutiunov/rust-basics [INFO] finished tweaking git repo https://github.com/victor-arutiunov/rust-basics [INFO] tweaked toml for git repo https://github.com/victor-arutiunov/rust-basics written to /workspace/builds/worker-5-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/victor-arutiunov/rust-basics on toolchain 0f31acebf540c89e4a4d5d114959fe91973419cb [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0f31acebf540c89e4a4d5d114959fe91973419cb" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/victor-arutiunov/rust-basics 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" "+0f31acebf540c89e4a4d5d114959fe91973419cb" "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-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+0f31acebf540c89e4a4d5d114959fe91973419cb" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 555f45ee379b62e4a9d1fcf3c11cb8d6427d73a40b8c8df987d82905f4ad77e6 [INFO] running `Command { std: "docker" "start" "-a" "555f45ee379b62e4a9d1fcf3c11cb8d6427d73a40b8c8df987d82905f4ad77e6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "555f45ee379b62e4a9d1fcf3c11cb8d6427d73a40b8c8df987d82905f4ad77e6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "555f45ee379b62e4a9d1fcf3c11cb8d6427d73a40b8c8df987d82905f4ad77e6", kill_on_drop: false }` [INFO] [stdout] 555f45ee379b62e4a9d1fcf3c11cb8d6427d73a40b8c8df987d82905f4ad77e6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+0f31acebf540c89e4a4d5d114959fe91973419cb" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 1cb660219eeebd98997bd8289fc279544f357dcf504d6f2a814c3857b0d5d6e8 [INFO] running `Command { std: "docker" "start" "-a" "1cb660219eeebd98997bd8289fc279544f357dcf504d6f2a814c3857b0d5d6e8", kill_on_drop: false }` [INFO] [stderr] Checking base_course v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] error[E0432]: unresolved import `thiserror` [INFO] [stdout] --> src/bin/a27.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use thiserror::Error; [INFO] [stdout] | ^^^^^^^^^ use of unresolved module or unlinked crate `thiserror` [INFO] [stdout] | [INFO] [stdout] = help: if you wanted to use a crate named `thiserror`, use `cargo add thiserror` to add it to your `Cargo.toml` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: cannot find attribute `error` in this scope [INFO] [stdout] --> src/bin/a27.rs:18:7 [INFO] [stdout] | [INFO] [stdout] 18 | #[error("menu item not found")] [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: cannot find attribute `error` in this scope [INFO] [stdout] --> src/bin/a27.rs:24:7 [INFO] [stdout] | [INFO] [stdout] 24 | #[error("divide by zero error")] [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `?` couldn't convert the error to `ProgramError` [INFO] [stdout] --> src/bin/a27.rs:47:23 [INFO] [stdout] | [INFO] [stdout] 45 | fn run(step: i32) -> Result<(), ProgramError> { [INFO] [stdout] | ------------------------ expected `ProgramError` because of this [INFO] [stdout] 46 | if step == 1 { [INFO] [stdout] 47 | pick_menu("4")?; [INFO] [stdout] | --------------^ the trait `From` is not implemented for `ProgramError` [INFO] [stdout] | | [INFO] [stdout] | this can't be annotated with `?` because it has type `Result<_, MenuError>` [INFO] [stdout] | [INFO] [stdout] note: `ProgramError` needs to implement `From` [INFO] [stdout] --> src/bin/a27.rs:14:1 [INFO] [stdout] | [INFO] [stdout] 14 | enum ProgramError {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] note: alternatively, `MenuError` needs to implement `Into` [INFO] [stdout] --> src/bin/a27.rs:17:1 [INFO] [stdout] | [INFO] [stdout] 17 | enum MenuError { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `?` couldn't convert the error to `ProgramError` [INFO] [stdout] --> src/bin/a27.rs:49:21 [INFO] [stdout] | [INFO] [stdout] 45 | fn run(step: i32) -> Result<(), ProgramError> { [INFO] [stdout] | ------------------------ expected `ProgramError` because of this [INFO] [stdout] ... [INFO] [stdout] 49 | divide(1, 0)?; [INFO] [stdout] | ------------^ the trait `From` is not implemented for `ProgramError` [INFO] [stdout] | | [INFO] [stdout] | this can't be annotated with `?` because it has type `Result<_, MathError>` [INFO] [stdout] | [INFO] [stdout] note: `ProgramError` needs to implement `From` [INFO] [stdout] --> src/bin/a27.rs:14:1 [INFO] [stdout] | [INFO] [stdout] 14 | enum ProgramError {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] note: alternatively, `MathError` needs to implement `Into` [INFO] [stdout] --> src/bin/a27.rs:23:1 [INFO] [stdout] | [INFO] [stdout] 23 | enum MathError { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `ProgramError` doesn't implement `Debug` [INFO] [stdout] --> src/bin/a27.rs:55:22 [INFO] [stdout] | [INFO] [stdout] 55 | println!("{:?}", run(1)); [INFO] [stdout] | ---- ^^^^^^ `ProgramError` cannot be formatted using `{:?}` because it doesn't implement `Debug` [INFO] [stdout] | | [INFO] [stdout] | required by this formatting parameter [INFO] [stdout] | [INFO] [stdout] = help: the trait `Debug` is not implemented for `ProgramError` [INFO] [stdout] = note: add `#[derive(Debug)]` to `ProgramError` or manually `impl Debug for ProgramError` [INFO] [stdout] = help: the trait `Debug` is implemented for `Result` [INFO] [stdout] = note: required for `Result<(), ProgramError>` to implement `Debug` [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: consider annotating `ProgramError` with `#[derive(Debug)]` [INFO] [stdout] | [INFO] [stdout] 14 + #[derive(Debug)] [INFO] [stdout] 15 | enum ProgramError {} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `ProgramError` doesn't implement `Debug` [INFO] [stdout] --> src/bin/a27.rs:56:22 [INFO] [stdout] | [INFO] [stdout] 56 | println!("{:?}", run(2)); [INFO] [stdout] | ---- ^^^^^^ `ProgramError` cannot be formatted using `{:?}` because it doesn't implement `Debug` [INFO] [stdout] | | [INFO] [stdout] | required by this formatting parameter [INFO] [stdout] | [INFO] [stdout] = help: the trait `Debug` is not implemented for `ProgramError` [INFO] [stdout] = note: add `#[derive(Debug)]` to `ProgramError` or manually `impl Debug for ProgramError` [INFO] [stdout] = help: the trait `Debug` is implemented for `Result` [INFO] [stdout] = note: required for `Result<(), ProgramError>` to implement `Debug` [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: consider annotating `ProgramError` with `#[derive(Debug)]` [INFO] [stdout] | [INFO] [stdout] 14 + #[derive(Debug)] [INFO] [stdout] 15 | enum ProgramError {} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0277, E0432. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0277`. [INFO] [stdout] [INFO] [stdout] error[E0432]: unresolved import `thiserror` [INFO] [stdout] --> src/bin/a27.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use thiserror::Error; [INFO] [stdout] | ^^^^^^^^^ use of unresolved module or unlinked crate `thiserror` [INFO] [stdout] | [INFO] [stdout] = help: if you wanted to use a crate named `thiserror`, use `cargo add thiserror` to add it to your `Cargo.toml` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `base_course` (bin "a27") due to 7 previous errors [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/bin/a24.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | let data = vec![1, 2, 3, 4, 5]; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] error: cannot find attribute `error` in this scope [INFO] [stdout] --> src/bin/a27.rs:18:7 [INFO] [stdout] | [INFO] [stdout] 18 | #[error("menu item not found")] [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: cannot find attribute `error` in this scope [INFO] [stdout] --> src/bin/a27.rs:24:7 [INFO] [stdout] | [INFO] [stdout] 24 | #[error("divide by zero error")] [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `?` couldn't convert the error to `ProgramError` [INFO] [stdout] --> src/bin/a27.rs:47:23 [INFO] [stdout] | [INFO] [stdout] 45 | fn run(step: i32) -> Result<(), ProgramError> { [INFO] [stdout] | ------------------------ expected `ProgramError` because of this [INFO] [stdout] 46 | if step == 1 { [INFO] [stdout] 47 | pick_menu("4")?; [INFO] [stdout] | --------------^ the trait `From` is not implemented for `ProgramError` [INFO] [stdout] | | [INFO] [stdout] | this can't be annotated with `?` because it has type `Result<_, MenuError>` [INFO] [stdout] | [INFO] [stdout] note: `ProgramError` needs to implement `From` [INFO] [stdout] --> src/bin/a27.rs:14:1 [INFO] [stdout] | [INFO] [stdout] 14 | enum ProgramError {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] note: alternatively, `MenuError` needs to implement `Into` [INFO] [stdout] --> src/bin/a27.rs:17:1 [INFO] [stdout] | [INFO] [stdout] 17 | enum MenuError { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `?` couldn't convert the error to `ProgramError` [INFO] [stdout] --> src/bin/a27.rs:49:21 [INFO] [stdout] | [INFO] [stdout] 45 | fn run(step: i32) -> Result<(), ProgramError> { [INFO] [stdout] | ------------------------ expected `ProgramError` because of this [INFO] [stdout] ... [INFO] [stdout] 49 | divide(1, 0)?; [INFO] [stdout] | ------------^ the trait `From` is not implemented for `ProgramError` [INFO] [stdout] | | [INFO] [stdout] | this can't be annotated with `?` because it has type `Result<_, MathError>` [INFO] [stdout] | [INFO] [stdout] note: `ProgramError` needs to implement `From` [INFO] [stdout] --> src/bin/a27.rs:14:1 [INFO] [stdout] | [INFO] [stdout] 14 | enum ProgramError {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] note: alternatively, `MathError` needs to implement `Into` [INFO] [stdout] --> src/bin/a27.rs:23:1 [INFO] [stdout] | [INFO] [stdout] 23 | enum MathError { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `ProgramError` doesn't implement `Debug` [INFO] [stdout] --> src/bin/a27.rs:55:22 [INFO] [stdout] | [INFO] [stdout] 55 | println!("{:?}", run(1)); [INFO] [stdout] | ---- ^^^^^^ `ProgramError` cannot be formatted using `{:?}` because it doesn't implement `Debug` [INFO] [stdout] | | [INFO] [stdout] | required by this formatting parameter [INFO] [stdout] | [INFO] [stdout] = help: the trait `Debug` is not implemented for `ProgramError` [INFO] [stdout] = note: add `#[derive(Debug)]` to `ProgramError` or manually `impl Debug for ProgramError` [INFO] [stdout] = help: the trait `Debug` is implemented for `Result` [INFO] [stdout] = note: required for `Result<(), ProgramError>` to implement `Debug` [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: consider annotating `ProgramError` with `#[derive(Debug)]` [INFO] [stdout] | [INFO] [stdout] 14 + #[derive(Debug)] [INFO] [stdout] 15 | enum ProgramError {} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `ProgramError` doesn't implement `Debug` [INFO] [stdout] --> src/bin/a27.rs:56:22 [INFO] [stdout] | [INFO] [stdout] 56 | println!("{:?}", run(2)); [INFO] [stdout] | ---- ^^^^^^ `ProgramError` cannot be formatted using `{:?}` because it doesn't implement `Debug` [INFO] [stdout] | | [INFO] [stdout] | required by this formatting parameter [INFO] [stdout] | [INFO] [stdout] = help: the trait `Debug` is not implemented for `ProgramError` [INFO] [stdout] = note: add `#[derive(Debug)]` to `ProgramError` or manually `impl Debug for ProgramError` [INFO] [stdout] = help: the trait `Debug` is implemented for `Result` [INFO] [stdout] = note: required for `Result<(), ProgramError>` to implement `Debug` [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: consider annotating `ProgramError` with `#[derive(Debug)]` [INFO] [stdout] | [INFO] [stdout] 14 + #[derive(Debug)] [INFO] [stdout] 15 | enum ProgramError {} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `base_course` (bin "a27" test) due to 7 previous errors [INFO] [stdout] error[E0432]: unresolved import `structopt` [INFO] [stdout] --> src/bin/p2-example.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | use structopt::StructOpt; [INFO] [stdout] | ^^^^^^^^^ use of unresolved module or unlinked crate `structopt` [INFO] [stdout] | [INFO] [stdout] = help: if you wanted to use a crate named `structopt`, use `cargo add structopt` to add it to your `Cargo.toml` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/bin/a24.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | let data = vec![1, 2, 3, 4, 5]; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0277, E0432. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0277`. [INFO] [stdout] [INFO] [stdout] error[E0432]: unresolved import `thiserror` [INFO] [stdout] --> src/bin/p2-example.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | use thiserror::Error; [INFO] [stdout] | ^^^^^^^^^ use of unresolved module or unlinked crate `thiserror` [INFO] [stdout] | [INFO] [stdout] = help: if you wanted to use a crate named `thiserror`, use `cargo add thiserror` to add it to your `Cargo.toml` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: cannot find attribute `error` in this scope [INFO] [stdout] --> src/bin/p2-example.rs:125:7 [INFO] [stdout] | [INFO] [stdout] 125 | #[error("id must be a number: {0}")] [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: cannot find attribute `from` in this scope [INFO] [stdout] --> src/bin/p2-example.rs:126:17 [INFO] [stdout] | [INFO] [stdout] 126 | InvalidId(#[from] std::num::ParseIntError), [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: cannot find attribute `error` in this scope [INFO] [stdout] --> src/bin/p2-example.rs:127:7 [INFO] [stdout] | [INFO] [stdout] 127 | #[error("empty record")] [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: cannot find attribute `error` in this scope [INFO] [stdout] --> src/bin/p2-example.rs:129:7 [INFO] [stdout] | [INFO] [stdout] 129 | #[error("missing field: {0}")] [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: cannot find attribute `structopt` in this scope [INFO] [stdout] --> src/bin/p2-example.rs:259:3 [INFO] [stdout] | [INFO] [stdout] 259 | #[structopt(about = "project 2: contact manager")] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: cannot find attribute `structopt` in this scope [INFO] [stdout] --> src/bin/p2-example.rs:261:7 [INFO] [stdout] | [INFO] [stdout] 261 | #[structopt(short, parse(from_os_str), default_value = "p2_data.csv")] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: cannot find attribute `structopt` in this scope [INFO] [stdout] --> src/bin/p2-example.rs:263:7 [INFO] [stdout] | [INFO] [stdout] 263 | #[structopt(subcommand)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: cannot find attribute `structopt` in this scope [INFO] [stdout] --> src/bin/p2-example.rs:265:7 [INFO] [stdout] | [INFO] [stdout] 265 | #[structopt(short, help = "verbose")] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: cannot find attribute `structopt` in this scope [INFO] [stdout] --> src/bin/p2-example.rs:273:11 [INFO] [stdout] | [INFO] [stdout] 273 | #[structopt(short)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: cannot find attribute `structopt` in this scope [INFO] [stdout] --> src/bin/p2-example.rs:279:11 [INFO] [stdout] | [INFO] [stdout] 279 | #[structopt(short)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `?` couldn't convert the error to `ParseError` [INFO] [stdout] --> src/bin/p2-example.rs:149:48 [INFO] [stdout] | [INFO] [stdout] 134 | fn parse_record(record: &str) -> Result { [INFO] [stdout] | -------------------------- expected `ParseError` because of this [INFO] [stdout] ... [INFO] [stdout] 149 | Some(id) => i64::from_str_radix(id, 10)?, [INFO] [stdout] | ---------------------------^ the trait `From` is not implemented for `ParseError` [INFO] [stdout] | | [INFO] [stdout] | this can't be annotated with `?` because it has type `Result<_, ParseIntError>` [INFO] [stdout] | [INFO] [stdout] note: `ParseError` needs to implement `From` [INFO] [stdout] --> src/bin/p2-example.rs:124:1 [INFO] [stdout] | [INFO] [stdout] 124 | enum ParseError { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: `ParseError` doesn't implement `std::fmt::Display` [INFO] [stdout] --> src/bin/p2-example.rs:196:29 [INFO] [stdout] | [INFO] [stdout] 194 | ... "error on line number {}: {}\n > \"{}\"\n", [INFO] [stdout] | -- required by this formatting parameter [INFO] [stdout] 195 | ... num + 1, [INFO] [stdout] 196 | ... e, [INFO] [stdout] | ^ `ParseError` cannot be formatted with the default formatter [INFO] [stdout] | [INFO] [stdout] help: the trait `std::fmt::Display` is not implemented for `ParseError` [INFO] [stdout] --> src/bin/p2-example.rs:124:1 [INFO] [stdout] | [INFO] [stdout] 124 | enum ParseError { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] = note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead [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] [INFO] [stdout] [INFO] [stdout] error[E0599]: no function or associated item named `from_args` found for struct `Opt` in the current scope [INFO] [stdout] --> src/bin/p2-example.rs:340:20 [INFO] [stdout] | [INFO] [stdout] 260 | struct Opt { [INFO] [stdout] | ---------- function or associated item `from_args` not found for this struct [INFO] [stdout] ... [INFO] [stdout] 340 | let opt = Opt::from_args(); [INFO] [stdout] | ^^^^^^^^^ function or associated item not found in `Opt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0277, E0432, E0599. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0277`. [INFO] [stdout] [INFO] [stderr] error: could not compile `base_course` (bin "p2-example" test) due to 15 previous errors [INFO] running `Command { std: "docker" "inspect" "1cb660219eeebd98997bd8289fc279544f357dcf504d6f2a814c3857b0d5d6e8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1cb660219eeebd98997bd8289fc279544f357dcf504d6f2a814c3857b0d5d6e8", kill_on_drop: false }` [INFO] [stdout] 1cb660219eeebd98997bd8289fc279544f357dcf504d6f2a814c3857b0d5d6e8