[INFO] cloning repository https://github.com/ir1keren/REST-rust-starter
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ir1keren/REST-rust-starter" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fir1keren%2FREST-rust-starter", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fir1keren%2FREST-rust-starter'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 7b946d2f282da58e223e833b4d0fa3c3a067c236
[INFO] testing ir1keren/REST-rust-starter against try#db823df02fd0c2cf67b43025ac3fef3f2d743245 for pr-150681-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fir1keren%2FREST-rust-starter" "/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/ir1keren/REST-rust-starter
[INFO] finished tweaking git repo https://github.com/ir1keren/REST-rust-starter
[INFO] tweaked toml for git repo https://github.com/ir1keren/REST-rust-starter written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ir1keren/REST-rust-starter on toolchain db823df02fd0c2cf67b43025ac3fef3f2d743245
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ir1keren/REST-rust-starter 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" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] ce59b411ee79f06ba20e85ba08ae3caacc286c0ebfc843f4ef45104e9fb686c7
[INFO] running `Command { std: "docker" "start" "-a" "ce59b411ee79f06ba20e85ba08ae3caacc286c0ebfc843f4ef45104e9fb686c7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ce59b411ee79f06ba20e85ba08ae3caacc286c0ebfc843f4ef45104e9fb686c7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ce59b411ee79f06ba20e85ba08ae3caacc286c0ebfc843f4ef45104e9fb686c7", kill_on_drop: false }`
[INFO] [stdout] ce59b411ee79f06ba20e85ba08ae3caacc286c0ebfc843f4ef45104e9fb686c7
[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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c28c05637bc5b5e29befa736f0e6d020956e1a9bd456ff95839a96cae830f473
[INFO] running `Command { std: "docker" "start" "-a" "c28c05637bc5b5e29befa736f0e6d020956e1a9bd456ff95839a96cae830f473", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.103
[INFO] [stderr]    Compiling futures-core v0.3.31
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling log v0.4.28
[INFO] [stderr]    Compiling bitflags v2.10.0
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling mio v1.1.0
[INFO] [stderr]    Compiling ntex-service v3.5.0
[INFO] [stderr]    Compiling ntex-rt v0.4.32
[INFO] [stderr]    Compiling oneshot v0.1.11
[INFO] [stderr]    Compiling futures-timer v3.0.3
[INFO] [stderr]    Compiling generic-array v0.14.9
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling regex-automata v0.4.13
[INFO] [stderr]    Compiling concurrent-queue v2.5.0
[INFO] [stderr]    Compiling event-listener v5.4.1
[INFO] [stderr]    Compiling rustix v1.1.2
[INFO] [stderr]    Compiling event-listener-strategy v0.5.4
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]    Compiling async-channel v2.5.0
[INFO] [stderr]    Compiling linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling num_cpus v1.17.0
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling quote v1.0.41
[INFO] [stderr]    Compiling futures-sink v0.3.31
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling core_affinity v0.8.3
[INFO] [stderr]    Compiling syn v2.0.108
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling serde_json v1.0.145
[INFO] [stderr]    Compiling env_filter v0.1.4
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling crypto-common v0.1.6
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling tracing-core v0.1.34
[INFO] [stderr]    Compiling socket2 v0.5.10
[INFO] [stderr]    Compiling nanorand v0.8.0
[INFO] [stderr]    Compiling futures-io v0.3.31
[INFO] [stderr]    Compiling sha1 v0.10.6
[INFO] [stderr]    Compiling env_logger v0.11.8
[INFO] [stderr]    Compiling hashbrown v0.16.0
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling dotenv v0.15.0
[INFO] [stderr]    Compiling indexmap v2.12.0
[INFO] [stderr]    Compiling regex v1.12.2
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling polling v3.11.0
[INFO] [stderr]    Compiling ntex-macros v0.1.4
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.17
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling variadics_please v1.1.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling utoipa-gen v4.3.1
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling tokio v1.48.0
[INFO] [stderr]    Compiling thiserror v2.0.17
[INFO] [stderr]    Compiling tracing v0.1.41
[INFO] [stderr]    Compiling tracing-subscriber v0.3.20
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling ntex-bytes v0.1.30
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling uuid v1.18.1
[INFO] [stderr]    Compiling chrono v0.4.42
[INFO] [stderr]    Compiling utoipa v4.2.3
[INFO] [stderr]    Compiling ntex-codec v0.6.2
[INFO] [stderr]    Compiling ntex-http v0.1.15
[INFO] [stderr]    Compiling ntex-router v0.5.3
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling futures v0.3.31
[INFO] [stderr]    Compiling ntex-util v2.15.0
[INFO] [stderr]    Compiling ntex-io v2.14.0
[INFO] [stderr]    Compiling ntex-tokio v0.5.4
[INFO] [stderr]    Compiling ntex-net v2.8.1
[INFO] [stderr]    Compiling ntex-h2 v1.13.0
[INFO] [stderr]    Compiling ntex-server v2.8.1
[INFO] [stderr]    Compiling ntex-tls v2.6.1
[INFO] [stderr]    Compiling ntex v2.16.0
[INFO] [stderr]    Compiling ntex-remove-trailing-slash v0.1.0
[INFO] [stderr]    Compiling rust-mvc-api v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `project_service`
[INFO] [stdout]   --> src/main.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 |     let project_service = Arc::new(ProjectService::new(project_repository.clone()));
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_project_service`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `task_service`
[INFO] [stdout]   --> src/main.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |     let task_service = Arc::new(TaskService::new(task_repository, project_repository));
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_task_service`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name` and `description` are never read
[INFO] [stdout]   --> src/models/project.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct ProjectCreate {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 21 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 22 |     pub description: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ProjectCreate` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name` and `description` are never read
[INFO] [stdout]   --> src/models/project.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct ProjectUpdate {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 28 |     pub name: Option<String>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 29 |     pub description: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ProjectUpdate` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `update` are never used
[INFO] [stdout]   --> src/models/project.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl Project {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 33 |     pub fn new(name: String, description: Option<String>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn update(&mut self, update: ProjectUpdate) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `project_id`, `title`, and `description` are never read
[INFO] [stdout]   --> src/models/task.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct TaskCreate {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 23 |     pub project_id: Uuid,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 24 |     pub title: String,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 25 |     pub description: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TaskCreate` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `title`, `description`, and `done` are never read
[INFO] [stdout]   --> src/models/task.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct TaskUpdate {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 31 |     pub title: Option<String>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 32 |     pub description: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 33 |     pub done: Option<bool>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TaskUpdate` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `update` are never used
[INFO] [stdout]   --> src/models/task.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl Task {
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] 37 |     pub fn new(project_id: Uuid, title: String, description: Option<String>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn update(&mut self, update: TaskUpdate) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `projects` is never read
[INFO] [stdout]  --> src/repositories/project_repo.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct ProjectRepository {
[INFO] [stdout]   |            ----------------- field in this struct
[INFO] [stdout] 8 |     projects: RwLock<HashMap<Uuid, Project>>,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `ProjectRepository` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `create`, `find_by_id`, `find_all`, `update`, and `delete` are never used
[INFO] [stdout]   --> src/repositories/project_repo.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl ProjectRepository {
[INFO] [stdout]    | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub fn create(&self, project: Project) -> Result<Project, String> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn find_by_id(&self, id: &Uuid) -> Result<Option<Project>, String> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn find_all(&self) -> Result<Vec<Project>, String> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn update(&self, id: &Uuid, updated_project: Project) -> Result<Option<Project>, String> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn delete(&self, id: &Uuid) -> Result<bool, String> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `tasks` is never read
[INFO] [stdout]  --> src/repositories/task_repo.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct TaskRepository {
[INFO] [stdout]   |            -------------- field in this struct
[INFO] [stdout] 8 |     tasks: RwLock<HashMap<Uuid, Task>>,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `TaskRepository` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> src/repositories/task_repo.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl TaskRepository {
[INFO] [stdout]    | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub fn create(&self, task: Task) -> Result<Task, String> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn find_by_id(&self, id: &Uuid) -> Result<Option<Task>, String> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn find_all(&self) -> Result<Vec<Task>, String> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn find_by_project_id(&self, project_id: &Uuid) -> Result<Vec<Task>, String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn update(&self, id: &Uuid, updated_task: Task) -> Result<Option<Task>, String> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn delete(&self, id: &Uuid) -> Result<bool, String> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub fn delete_by_project_id(&self, project_id: &Uuid) -> Result<usize, String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `repository` is never read
[INFO] [stdout]  --> src/services/project_service.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct ProjectService {
[INFO] [stdout]   |            -------------- field in this struct
[INFO] [stdout] 9 |     repository: Arc<ProjectRepository>,
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `ProjectService` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `create_project`, `get_project`, `list_projects`, `update_project`, and `delete_project` are never used
[INFO] [stdout]   --> src/services/project_service.rs:17:18
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl ProjectService {
[INFO] [stdout]    | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub async fn create_project(&self, create_data: ProjectCreate) -> Result<Project, ApiError> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub async fn get_project(&self, id: Uuid) -> Result<Project, ApiError> {
[INFO] [stdout]    |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub async fn list_projects(&self) -> Result<Vec<Project>, ApiError> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub async fn update_project(
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 99 |     pub async fn delete_project(&self, id: Uuid) -> Result<(), ApiError> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `task_repository` and `project_repository` are never read
[INFO] [stdout]   --> src/services/task_service.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct TaskService {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout]  9 |     task_repository: Arc<TaskRepository>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 10 |     project_repository: Arc<ProjectRepository>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TaskService` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/services/task_service.rs:24:18
[INFO] [stdout]     |
[INFO] [stdout]  13 | impl TaskService {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  24 |     pub async fn create_task(&self, create_data: TaskCreate) -> Result<Task, ApiError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  61 |     pub async fn get_task(&self, id: Uuid) -> Result<Task, ApiError> {
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  68 |     pub async fn list_tasks(&self) -> Result<Vec<Task>, ApiError> {
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub async fn list_tasks_by_project(&self, project_id: Uuid) -> Result<Vec<Task>, ApiError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub async fn update_task(&self, id: Uuid, update_data: TaskUpdate) -> Result<Task, ApiError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub async fn delete_task(&self, id: Uuid) -> Result<(), ApiError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub async fn delete_tasks_by_project(&self, project_id: Uuid) -> Result<usize, ApiError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `success` and `error` are never used
[INFO] [stdout]   --> src/views/api_response.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl<T> ApiResponse<T> {
[INFO] [stdout]    | ---------------------- associated functions in this implementation
[INFO] [stdout] 26 |     pub fn success(data: T) -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn error(error: ErrorResponse) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `NotFound`, `BadRequest`, `ValidationError`, `InternalServerError`, and `Conflict` are never constructed
[INFO] [stdout]   --> src/views/api_response.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub enum ApiError {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout] 45 |     #[error("Resource not found: {resource}")]
[INFO] [stdout] 46 |     NotFound { resource: String },
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     BadRequest { message: String },
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     ValidationError { message: String },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     InternalServerError,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     Conflict { message: String },
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ApiError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `not_found`, `bad_request`, `validation_error`, `repository_error`, and `conflict` are never used
[INFO] [stdout]   --> src/views/api_response.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 64 | impl ApiError {
[INFO] [stdout]    | ------------- associated functions in this implementation
[INFO] [stdout] 65 |     pub fn not_found(resource: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn bad_request(message: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub fn validation_error(message: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn repository_error(message: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 89 |     pub fn conflict(message: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 18s
[INFO] running `Command { std: "docker" "inspect" "c28c05637bc5b5e29befa736f0e6d020956e1a9bd456ff95839a96cae830f473", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c28c05637bc5b5e29befa736f0e6d020956e1a9bd456ff95839a96cae830f473", kill_on_drop: false }`
[INFO] [stdout] c28c05637bc5b5e29befa736f0e6d020956e1a9bd456ff95839a96cae830f473
[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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] fad4552583808800c6d31048c7f5469aab6dd74df6ca8c4eb71ec5257d5a9a9f
[INFO] running `Command { std: "docker" "start" "-a" "fad4552583808800c6d31048c7f5469aab6dd74df6ca8c4eb71ec5257d5a9a9f", kill_on_drop: false }`
[INFO] [stderr]    Compiling rust-mvc-api v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `project_service`
[INFO] [stdout]   --> src/main.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 34 |     let project_service = Arc::new(ProjectService::new(project_repository.clone()));
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_project_service`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `task_service`
[INFO] [stdout]   --> src/main.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 35 |     let task_service = Arc::new(TaskService::new(task_repository, project_repository));
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_task_service`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name` and `description` are never read
[INFO] [stdout]   --> src/models/project.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct ProjectCreate {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 21 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 22 |     pub description: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ProjectCreate` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name` and `description` are never read
[INFO] [stdout]   --> src/models/project.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct ProjectUpdate {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 28 |     pub name: Option<String>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 29 |     pub description: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ProjectUpdate` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `update` are never used
[INFO] [stdout]   --> src/models/project.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl Project {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 33 |     pub fn new(name: String, description: Option<String>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn update(&mut self, update: ProjectUpdate) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `project_id`, `title`, and `description` are never read
[INFO] [stdout]   --> src/models/task.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct TaskCreate {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 23 |     pub project_id: Uuid,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 24 |     pub title: String,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 25 |     pub description: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TaskCreate` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `title`, `description`, and `done` are never read
[INFO] [stdout]   --> src/models/task.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct TaskUpdate {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 31 |     pub title: Option<String>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 32 |     pub description: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 33 |     pub done: Option<bool>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TaskUpdate` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `update` are never used
[INFO] [stdout]   --> src/models/task.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl Task {
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] 37 |     pub fn new(project_id: Uuid, title: String, description: Option<String>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn update(&mut self, update: TaskUpdate) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `projects` is never read
[INFO] [stdout]  --> src/repositories/project_repo.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct ProjectRepository {
[INFO] [stdout]   |            ----------------- field in this struct
[INFO] [stdout] 8 |     projects: RwLock<HashMap<Uuid, Project>>,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `ProjectRepository` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `create`, `find_by_id`, `find_all`, `update`, and `delete` are never used
[INFO] [stdout]   --> src/repositories/project_repo.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl ProjectRepository {
[INFO] [stdout]    | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub fn create(&self, project: Project) -> Result<Project, String> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn find_by_id(&self, id: &Uuid) -> Result<Option<Project>, String> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn find_all(&self) -> Result<Vec<Project>, String> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn update(&self, id: &Uuid, updated_project: Project) -> Result<Option<Project>, String> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn delete(&self, id: &Uuid) -> Result<bool, String> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `tasks` is never read
[INFO] [stdout]  --> src/repositories/task_repo.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct TaskRepository {
[INFO] [stdout]   |            -------------- field in this struct
[INFO] [stdout] 8 |     tasks: RwLock<HashMap<Uuid, Task>>,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `TaskRepository` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> src/repositories/task_repo.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl TaskRepository {
[INFO] [stdout]    | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub fn create(&self, task: Task) -> Result<Task, String> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn find_by_id(&self, id: &Uuid) -> Result<Option<Task>, String> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn find_all(&self) -> Result<Vec<Task>, String> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn find_by_project_id(&self, project_id: &Uuid) -> Result<Vec<Task>, String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn update(&self, id: &Uuid, updated_task: Task) -> Result<Option<Task>, String> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn delete(&self, id: &Uuid) -> Result<bool, String> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub fn delete_by_project_id(&self, project_id: &Uuid) -> Result<usize, String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `repository` is never read
[INFO] [stdout]  --> src/services/project_service.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct ProjectService {
[INFO] [stdout]   |            -------------- field in this struct
[INFO] [stdout] 9 |     repository: Arc<ProjectRepository>,
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `ProjectService` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `create_project`, `get_project`, `list_projects`, `update_project`, and `delete_project` are never used
[INFO] [stdout]   --> src/services/project_service.rs:17:18
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl ProjectService {
[INFO] [stdout]    | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub async fn create_project(&self, create_data: ProjectCreate) -> Result<Project, ApiError> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub async fn get_project(&self, id: Uuid) -> Result<Project, ApiError> {
[INFO] [stdout]    |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub async fn list_projects(&self) -> Result<Vec<Project>, ApiError> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub async fn update_project(
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 99 |     pub async fn delete_project(&self, id: Uuid) -> Result<(), ApiError> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `task_repository` and `project_repository` are never read
[INFO] [stdout]   --> src/services/task_service.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct TaskService {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout]  9 |     task_repository: Arc<TaskRepository>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 10 |     project_repository: Arc<ProjectRepository>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TaskService` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/services/task_service.rs:24:18
[INFO] [stdout]     |
[INFO] [stdout]  13 | impl TaskService {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  24 |     pub async fn create_task(&self, create_data: TaskCreate) -> Result<Task, ApiError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  61 |     pub async fn get_task(&self, id: Uuid) -> Result<Task, ApiError> {
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  68 |     pub async fn list_tasks(&self) -> Result<Vec<Task>, ApiError> {
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub async fn list_tasks_by_project(&self, project_id: Uuid) -> Result<Vec<Task>, ApiError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub async fn update_task(&self, id: Uuid, update_data: TaskUpdate) -> Result<Task, ApiError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub async fn delete_task(&self, id: Uuid) -> Result<(), ApiError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub async fn delete_tasks_by_project(&self, project_id: Uuid) -> Result<usize, ApiError> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `success` and `error` are never used
[INFO] [stdout]   --> src/views/api_response.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl<T> ApiResponse<T> {
[INFO] [stdout]    | ---------------------- associated functions in this implementation
[INFO] [stdout] 26 |     pub fn success(data: T) -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn error(error: ErrorResponse) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `NotFound`, `BadRequest`, `ValidationError`, `InternalServerError`, and `Conflict` are never constructed
[INFO] [stdout]   --> src/views/api_response.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub enum ApiError {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout] 45 |     #[error("Resource not found: {resource}")]
[INFO] [stdout] 46 |     NotFound { resource: String },
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     BadRequest { message: String },
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     ValidationError { message: String },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     InternalServerError,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     Conflict { message: String },
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ApiError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `not_found`, `bad_request`, `validation_error`, `repository_error`, and `conflict` are never used
[INFO] [stdout]   --> src/views/api_response.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 64 | impl ApiError {
[INFO] [stdout]    | ------------- associated functions in this implementation
[INFO] [stdout] 65 |     pub fn not_found(resource: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn bad_request(message: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub fn validation_error(message: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn repository_error(message: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 89 |     pub fn conflict(message: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.54s
[INFO] running `Command { std: "docker" "inspect" "fad4552583808800c6d31048c7f5469aab6dd74df6ca8c4eb71ec5257d5a9a9f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fad4552583808800c6d31048c7f5469aab6dd74df6ca8c4eb71ec5257d5a9a9f", kill_on_drop: false }`
[INFO] [stdout] fad4552583808800c6d31048c7f5469aab6dd74df6ca8c4eb71ec5257d5a9a9f
[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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] fd1e8e624894c15c9afa5cb2973a0e4c09fae1cfb3444aaca2ba47a0042a3597
[INFO] running `Command { std: "docker" "start" "-a" "fd1e8e624894c15c9afa5cb2973a0e4c09fae1cfb3444aaca2ba47a0042a3597", kill_on_drop: false }`
[INFO] [stderr] warning: unused variable: `project_service`
[INFO] [stderr]   --> src/main.rs:34:9
[INFO] [stderr]    |
[INFO] [stderr] 34 |     let project_service = Arc::new(ProjectService::new(project_repository.clone()));
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_project_service`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `task_service`
[INFO] [stderr]   --> src/main.rs:35:9
[INFO] [stderr]    |
[INFO] [stderr] 35 |     let task_service = Arc::new(TaskService::new(task_repository, project_repository));
[INFO] [stderr]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_task_service`
[INFO] [stderr] 
[INFO] [stderr] warning: fields `name` and `description` are never read
[INFO] [stderr]   --> src/models/project.rs:21:9
[INFO] [stderr]    |
[INFO] [stderr] 20 | pub struct ProjectCreate {
[INFO] [stderr]    |            ------------- fields in this struct
[INFO] [stderr] 21 |     pub name: String,
[INFO] [stderr]    |         ^^^^
[INFO] [stderr] 22 |     pub description: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ProjectCreate` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: fields `name` and `description` are never read
[INFO] [stderr]   --> src/models/project.rs:28:9
[INFO] [stderr]    |
[INFO] [stderr] 27 | pub struct ProjectUpdate {
[INFO] [stderr]    |            ------------- fields in this struct
[INFO] [stderr] 28 |     pub name: Option<String>,
[INFO] [stderr]    |         ^^^^
[INFO] [stderr] 29 |     pub description: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ProjectUpdate` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `update` are never used
[INFO] [stderr]   --> src/models/project.rs:33:12
[INFO] [stderr]    |
[INFO] [stderr] 32 | impl Project {
[INFO] [stderr]    | ------------ associated items in this implementation
[INFO] [stderr] 33 |     pub fn new(name: String, description: Option<String>) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 44 |     pub fn update(&mut self, update: ProjectUpdate) {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `project_id`, `title`, and `description` are never read
[INFO] [stderr]   --> src/models/task.rs:23:9
[INFO] [stderr]    |
[INFO] [stderr] 22 | pub struct TaskCreate {
[INFO] [stderr]    |            ---------- fields in this struct
[INFO] [stderr] 23 |     pub project_id: Uuid,
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr] 24 |     pub title: String,
[INFO] [stderr]    |         ^^^^^
[INFO] [stderr] 25 |     pub description: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `TaskCreate` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `title`, `description`, and `done` are never read
[INFO] [stderr]   --> src/models/task.rs:31:9
[INFO] [stderr]    |
[INFO] [stderr] 30 | pub struct TaskUpdate {
[INFO] [stderr]    |            ---------- fields in this struct
[INFO] [stderr] 31 |     pub title: Option<String>,
[INFO] [stderr]    |         ^^^^^
[INFO] [stderr] 32 |     pub description: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^^^
[INFO] [stderr] 33 |     pub done: Option<bool>,
[INFO] [stderr]    |         ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `TaskUpdate` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `update` are never used
[INFO] [stderr]   --> src/models/task.rs:37:12
[INFO] [stderr]    |
[INFO] [stderr] 36 | impl Task {
[INFO] [stderr]    | --------- associated items in this implementation
[INFO] [stderr] 37 |     pub fn new(project_id: Uuid, title: String, description: Option<String>) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 50 |     pub fn update(&mut self, update: TaskUpdate) {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `projects` is never read
[INFO] [stderr]  --> src/repositories/project_repo.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub struct ProjectRepository {
[INFO] [stderr]   |            ----------------- field in this struct
[INFO] [stderr] 8 |     projects: RwLock<HashMap<Uuid, Project>>,
[INFO] [stderr]   |     ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `ProjectRepository` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: methods `create`, `find_by_id`, `find_all`, `update`, and `delete` are never used
[INFO] [stderr]   --> src/repositories/project_repo.rs:18:12
[INFO] [stderr]    |
[INFO] [stderr] 11 | impl ProjectRepository {
[INFO] [stderr]    | ---------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 18 |     pub fn create(&self, project: Project) -> Result<Project, String> {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 28 |     pub fn find_by_id(&self, id: &Uuid) -> Result<Option<Project>, String> {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 36 |     pub fn find_all(&self) -> Result<Vec<Project>, String> {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 44 |     pub fn update(&self, id: &Uuid, updated_project: Project) -> Result<Option<Project>, String> {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 57 |     pub fn delete(&self, id: &Uuid) -> Result<bool, String> {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `tasks` is never read
[INFO] [stderr]  --> src/repositories/task_repo.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub struct TaskRepository {
[INFO] [stderr]   |            -------------- field in this struct
[INFO] [stderr] 8 |     tasks: RwLock<HashMap<Uuid, Task>>,
[INFO] [stderr]   |     ^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `TaskRepository` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: multiple methods are never used
[INFO] [stderr]   --> src/repositories/task_repo.rs:18:12
[INFO] [stderr]    |
[INFO] [stderr] 11 | impl TaskRepository {
[INFO] [stderr]    | ------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 18 |     pub fn create(&self, task: Task) -> Result<Task, String> {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 28 |     pub fn find_by_id(&self, id: &Uuid) -> Result<Option<Task>, String> {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 36 |     pub fn find_all(&self) -> Result<Vec<Task>, String> {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 44 |     pub fn find_by_project_id(&self, project_id: &Uuid) -> Result<Vec<Task>, String> {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 56 |     pub fn update(&self, id: &Uuid, updated_task: Task) -> Result<Option<Task>, String> {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 69 |     pub fn delete(&self, id: &Uuid) -> Result<bool, String> {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 77 |     pub fn delete_by_project_id(&self, project_id: &Uuid) -> Result<usize, String> {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `repository` is never read
[INFO] [stderr]  --> src/services/project_service.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub struct ProjectService {
[INFO] [stderr]   |            -------------- field in this struct
[INFO] [stderr] 9 |     repository: Arc<ProjectRepository>,
[INFO] [stderr]   |     ^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `ProjectService` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: methods `create_project`, `get_project`, `list_projects`, `update_project`, and `delete_project` are never used
[INFO] [stderr]   --> src/services/project_service.rs:17:18
[INFO] [stderr]    |
[INFO] [stderr] 12 | impl ProjectService {
[INFO] [stderr]    | ------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 17 |     pub async fn create_project(&self, create_data: ProjectCreate) -> Result<Project, ApiError> {
[INFO] [stderr]    |                  ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 44 |     pub async fn get_project(&self, id: Uuid) -> Result<Project, ApiError> {
[INFO] [stderr]    |                  ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 51 |     pub async fn list_projects(&self) -> Result<Vec<Project>, ApiError> {
[INFO] [stderr]    |                  ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 57 |     pub async fn update_project(
[INFO] [stderr]    |                  ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 99 |     pub async fn delete_project(&self, id: Uuid) -> Result<(), ApiError> {
[INFO] [stderr]    |                  ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `task_repository` and `project_repository` are never read
[INFO] [stderr]   --> src/services/task_service.rs:9:5
[INFO] [stderr]    |
[INFO] [stderr]  8 | pub struct TaskService {
[INFO] [stderr]    |            ----------- fields in this struct
[INFO] [stderr]  9 |     task_repository: Arc<TaskRepository>,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 10 |     project_repository: Arc<ProjectRepository>,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `TaskService` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: multiple methods are never used
[INFO] [stderr]    --> src/services/task_service.rs:24:18
[INFO] [stderr]     |
[INFO] [stderr]  13 | impl TaskService {
[INFO] [stderr]     | ---------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr]  24 |     pub async fn create_task(&self, create_data: TaskCreate) -> Result<Task, ApiError> {
[INFO] [stderr]     |                  ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  61 |     pub async fn get_task(&self, id: Uuid) -> Result<Task, ApiError> {
[INFO] [stderr]     |                  ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  68 |     pub async fn list_tasks(&self) -> Result<Vec<Task>, ApiError> {
[INFO] [stderr]     |                  ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  74 |     pub async fn list_tasks_by_project(&self, project_id: Uuid) -> Result<Vec<Task>, ApiError> {
[INFO] [stderr]     |                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  86 |     pub async fn update_task(&self, id: Uuid, update_data: TaskUpdate) -> Result<Task, ApiError> {
[INFO] [stderr]     |                  ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 124 |     pub async fn delete_task(&self, id: Uuid) -> Result<(), ApiError> {
[INFO] [stderr]     |                  ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 137 |     pub async fn delete_tasks_by_project(&self, project_id: Uuid) -> Result<usize, ApiError> {
[INFO] [stderr]     |                  ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `success` and `error` are never used
[INFO] [stderr]   --> src/views/api_response.rs:26:12
[INFO] [stderr]    |
[INFO] [stderr] 25 | impl<T> ApiResponse<T> {
[INFO] [stderr]    | ---------------------- associated functions in this implementation
[INFO] [stderr] 26 |     pub fn success(data: T) -> Self {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 34 |     pub fn error(error: ErrorResponse) -> Self {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `NotFound`, `BadRequest`, `ValidationError`, `InternalServerError`, and `Conflict` are never constructed
[INFO] [stderr]   --> src/views/api_response.rs:46:5
[INFO] [stderr]    |
[INFO] [stderr] 44 | pub enum ApiError {
[INFO] [stderr]    |          -------- variants in this enum
[INFO] [stderr] 45 |     #[error("Resource not found: {resource}")]
[INFO] [stderr] 46 |     NotFound { resource: String },
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 49 |     BadRequest { message: String },
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 52 |     ValidationError { message: String },
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 55 |     InternalServerError,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 61 |     Conflict { message: String },
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ApiError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `not_found`, `bad_request`, `validation_error`, `repository_error`, and `conflict` are never used
[INFO] [stderr]   --> src/views/api_response.rs:65:12
[INFO] [stderr]    |
[INFO] [stderr] 64 | impl ApiError {
[INFO] [stderr]    | ------------- associated functions in this implementation
[INFO] [stderr] 65 |     pub fn not_found(resource: &str) -> Self {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 71 |     pub fn bad_request(message: &str) -> Self {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 77 |     pub fn validation_error(message: &str) -> Self {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 83 |     pub fn repository_error(message: &str) -> Self {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 89 |     pub fn conflict(message: &str) -> Self {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `rust-mvc-api` (bin "rust-mvc-api" test) generated 19 warnings (run `cargo fix --bin "rust-mvc-api" -p rust-mvc-api --tests` to apply 2 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.34s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/rust_mvc_api-10e4c0e9b700607f)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "fd1e8e624894c15c9afa5cb2973a0e4c09fae1cfb3444aaca2ba47a0042a3597", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fd1e8e624894c15c9afa5cb2973a0e4c09fae1cfb3444aaca2ba47a0042a3597", kill_on_drop: false }`
[INFO] [stdout] fd1e8e624894c15c9afa5cb2973a0e4c09fae1cfb3444aaca2ba47a0042a3597
