[INFO] cloning repository https://github.com/dmitryvk/stainless-git [INFO] running `"git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/dmitryvk/stainless-git" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdmitryvk%2Fstainless-git"` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdmitryvk%2Fstainless-git'... [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 0a842a029463da3a4408abbd1fe4f5ab82988734 [INFO] checking dmitryvk/stainless-git against master#2748a9fd93dd1a00a4521f4f16de5befbf77f6cd for pr-62262-1 [INFO] running `"git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdmitryvk%2Fstainless-git" "/workspace/builds/worker-13/source"` [INFO] [stderr] Cloning into '/workspace/builds/worker-13/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/dmitryvk/stainless-git on toolchain 2748a9fd93dd1a00a4521f4f16de5befbf77f6cd [INFO] running `"/workspace/cargo-home/bin/cargo" "+2748a9fd93dd1a00a4521f4f16de5befbf77f6cd" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started tweaking git repo https://github.com/dmitryvk/stainless-git [INFO] finished tweaking git repo https://github.com/dmitryvk/stainless-git [INFO] tweaked toml for git repo https://github.com/dmitryvk/stainless-git written to /workspace/builds/worker-13/source/Cargo.toml [INFO] crate git repo https://github.com/dmitryvk/stainless-git already has a lockfile, it will not be regenerated [INFO] running `"/workspace/cargo-home/bin/cargo" "+2748a9fd93dd1a00a4521f4f16de5befbf77f6cd" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-13/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-13/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" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+2748a9fd93dd1a00a4521f4f16de5befbf77f6cd" "check" "--frozen" "--all" "--all-targets"` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 50e6f9c68c6187e66ff5c48076d93c79c926bb0f04101bc7d9912a964a1cbf8b [INFO] running `"docker" "start" "-a" "50e6f9c68c6187e66ff5c48076d93c79c926bb0f04101bc7d9912a964a1cbf8b"` [INFO] [stderr] Compiling gio v0.5.1 [INFO] [stderr] Compiling libz-sys v1.0.25 [INFO] [stderr] Compiling libssh2-sys v0.2.11 [INFO] [stderr] Compiling curl-sys v0.4.15 [INFO] [stderr] Compiling libgit2-sys v0.7.11 [INFO] [stderr] Checking glib-sys v0.7.0 [INFO] [stderr] Checking time v0.1.42 [INFO] [stderr] Checking chrono v0.4.6 [INFO] [stderr] Checking gobject-sys v0.7.0 [INFO] [stderr] Checking glib v0.6.1 [INFO] [stderr] Checking gio-sys v0.7.0 [INFO] [stderr] Checking pango-sys v0.7.0 [INFO] [stderr] Checking atk-sys v0.7.0 [INFO] [stderr] Checking gdk-pixbuf-sys v0.7.0 [INFO] [stderr] Checking cairo-sys-rs v0.7.0 [INFO] [stderr] Checking pango v0.5.0 [INFO] [stderr] Checking gdk-sys v0.7.0 [INFO] [stderr] Checking cairo-rs v0.5.0 [INFO] [stderr] Checking gtk-sys v0.7.0 [INFO] [stderr] Checking gdk-pixbuf v0.5.0 [INFO] [stderr] Checking gdk v0.9.0 [INFO] [stderr] Checking gtk v0.5.0 [INFO] [stderr] Checking git2 v0.8.0 [INFO] [stderr] Checking stainless-git v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/async_ui/gtk_futures_executor.rs:1:24 [INFO] [stderr] | [INFO] [stderr] 1 | type BoxedFuture = Box>; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn futures::future::Future` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/async_ui/gtk_futures_executor.rs:33:69 [INFO] [stderr] | [INFO] [stderr] 33 | let spawn = futures::executor::spawn(Box::new(f) as Box>); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn futures::future::Future` [INFO] [stderr] [INFO] [stderr] warning: unnecessary trailing semicolon [INFO] [stderr] --> src/async_ui/capture.rs:23:15 [INFO] [stderr] | [INFO] [stderr] 23 | )+; [INFO] [stderr] | ^ help: remove this semicolon [INFO] [stderr] | [INFO] [stderr] ::: src/screens/intro_screen.rs:59:42 [INFO] [stderr] | [INFO] [stderr] 59 | self.window.connect_delete_event(capture!(result, window = self.window; move |_, _| { [INFO] [stderr] | __________________________________________- [INFO] [stderr] 60 | | result.reject("Not implemented".to_string()); [INFO] [stderr] 61 | | window.destroy(); [INFO] [stderr] 62 | | [INFO] [stderr] 63 | | Inhibit(false) [INFO] [stderr] 64 | | })); [INFO] [stderr] | |__________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(redundant_semicolon)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary trailing semicolon [INFO] [stderr] --> src/async_ui/capture.rs:23:15 [INFO] [stderr] | [INFO] [stderr] 23 | )+; [INFO] [stderr] | ^ help: remove this semicolon [INFO] [stderr] | [INFO] [stderr] ::: src/screens/intro_screen.rs:66:40 [INFO] [stderr] | [INFO] [stderr] 66 | self.ok_button.connect_clicked(capture!(result, file_chooser_button = self.file_chooser_button, window = self.window; move |_| { [INFO] [stderr] | ________________________________________- [INFO] [stderr] 67 | | match file_chooser_button.get_current_folder() { [INFO] [stderr] 68 | | Some(path) => { [INFO] [stderr] 69 | | result.resolve(path); [INFO] [stderr] ... | [INFO] [stderr] 75 | | } [INFO] [stderr] 76 | | })); [INFO] [stderr] | |__________- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unnecessary trailing semicolon [INFO] [stderr] --> src/async_ui/capture.rs:23:15 [INFO] [stderr] | [INFO] [stderr] 23 | )+; [INFO] [stderr] | ^ help: remove this semicolon [INFO] [stderr] | [INFO] [stderr] ::: src/screens/main_screen.rs:151:27 [INFO] [stderr] | [INFO] [stderr] 151 | cpu_pool.spawn_fn(capture!(repo_path; move || { [INFO] [stderr] | ___________________________- [INFO] [stderr] 152 | | use git2::Repository; [INFO] [stderr] 153 | | let repo = match Repository::discover(repo_path) { [INFO] [stderr] 154 | | Ok(repo) => repo, [INFO] [stderr] ... | [INFO] [stderr] 158 | | Box::new(future::ok(repo)) [INFO] [stderr] 159 | | })) [INFO] [stderr] | |__________- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unnecessary trailing semicolon [INFO] [stderr] --> src/async_ui/capture.rs:23:15 [INFO] [stderr] | [INFO] [stderr] 23 | )+; [INFO] [stderr] | ^ help: remove this semicolon [INFO] [stderr] | [INFO] [stderr] ::: src/screens/main_screen.rs:160:19 [INFO] [stderr] | [INFO] [stderr] 160 | .and_then(capture!(commits_list_store, commit_info_view, cpu_pool, executor; move |repo| { [INFO] [stderr] | ___________________- [INFO] [stderr] 161 | | [INFO] [stderr] 162 | | let main_screen = MainScreen { [INFO] [stderr] 163 | | backend: Arc::new(MainScreenBackend { [INFO] [stderr] ... | [INFO] [stderr] 181 | | Box::new(future::ok(main_screen)) [INFO] [stderr] 182 | | })) [INFO] [stderr] | |__________- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unnecessary trailing semicolon [INFO] [stderr] --> src/async_ui/capture.rs:23:15 [INFO] [stderr] | [INFO] [stderr] 23 | )+; [INFO] [stderr] | ^ help: remove this semicolon [INFO] [stderr] | [INFO] [stderr] ::: src/screens/main_screen.rs:186:74 [INFO] [stderr] | [INFO] [stderr] 186 | main_screen.ui.commits_tree_view.get_selection().connect_changed(capture!(main_screen; move |selection| { [INFO] [stderr] | __________________________________________________________________________- [INFO] [stderr] 187 | | let msg = match selection.get_selected() { [INFO] [stderr] 188 | | None => "".to_owned(), [INFO] [stderr] 189 | | Some((model, iter)) => { [INFO] [stderr] ... | [INFO] [stderr] 345 | | main_screen.ui.commit_info_view.get_buffer().unwrap().set_text(&msg); [INFO] [stderr] 346 | | })); [INFO] [stderr] | |__________- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unnecessary trailing semicolon [INFO] [stderr] --> src/async_ui/capture.rs:23:15 [INFO] [stderr] | [INFO] [stderr] 23 | )+; [INFO] [stderr] | ^ help: remove this semicolon [INFO] [stderr] | [INFO] [stderr] ::: src/screens/main_screen.rs:195:35 [INFO] [stderr] | [INFO] [stderr] 195 | .spawn_fn(capture!(backend = main_screen.backend; move || -> Result, String> { [INFO] [stderr] | ___________________________________- [INFO] [stderr] 196 | | if Some(oid) != *backend.requested_commit.lock().unwrap() { [INFO] [stderr] 197 | | return Ok(None); [INFO] [stderr] 198 | | } [INFO] [stderr] ... | [INFO] [stderr] 309 | | Ok(Some((commit_summary, changes))) [INFO] [stderr] 310 | | })) [INFO] [stderr] | |__________________________- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unnecessary trailing semicolon [INFO] [stderr] --> src/async_ui/capture.rs:23:15 [INFO] [stderr] | [INFO] [stderr] 23 | )+; [INFO] [stderr] | ^ help: remove this semicolon [INFO] [stderr] | [INFO] [stderr] ::: src/screens/main_screen.rs:311:31 [INFO] [stderr] | [INFO] [stderr] 311 | .then(capture!(main_screen; move |result| { [INFO] [stderr] | _______________________________- [INFO] [stderr] 312 | | match result { [INFO] [stderr] 313 | | Ok(Some((summary_text, changes))) => { [INFO] [stderr] 314 | | main_screen.ui.commit_info_view.get_buffer().unwrap().set_text(&summary_text); [INFO] [stderr] ... | [INFO] [stderr] 337 | | Ok(()) [INFO] [stderr] 338 | | })) [INFO] [stderr] | |__________________________- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: the item `Err` is imported redundantly [INFO] [stderr] --> src/screens/main_screen.rs:350:35 [INFO] [stderr] | [INFO] [stderr] 350 | use std::result::Result::{Err, Ok}; [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: the item `Ok` is imported redundantly [INFO] [stderr] --> src/screens/main_screen.rs:350:40 [INFO] [stderr] | [INFO] [stderr] 350 | use std::result::Result::{Err, Ok}; [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary trailing semicolon [INFO] [stderr] --> src/async_ui/capture.rs:23:15 [INFO] [stderr] | [INFO] [stderr] 23 | )+; [INFO] [stderr] | ^ help: remove this semicolon [INFO] [stderr] | [INFO] [stderr] ::: src/screens/main_screen.rs:361:45 [INFO] [stderr] | [INFO] [stderr] 361 | self.ui.window.connect_delete_event(capture!(result, window = self.ui.window; move |_, _| { [INFO] [stderr] | _____________________________________________- [INFO] [stderr] 362 | | result.resolve(()); [INFO] [stderr] 363 | | window.destroy(); [INFO] [stderr] 364 | | Inhibit(false) [INFO] [stderr] 365 | | })); [INFO] [stderr] | |__________- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unnecessary trailing semicolon [INFO] [stderr] --> src/async_ui/capture.rs:23:15 [INFO] [stderr] | [INFO] [stderr] 23 | )+; [INFO] [stderr] | ^ help: remove this semicolon [INFO] [stderr] | [INFO] [stderr] ::: src/screens/main_screen.rs:375:45 [INFO] [stderr] | [INFO] [stderr] 375 | self.ui.executor.spawn(future::lazy(capture!( [INFO] [stderr] | _____________________________________________- [INFO] [stderr] 376 | | backend = self.backend, commits_list_store = self.ui.commits_list_store, window = self.ui.window; [INFO] [stderr] 377 | | move || { [INFO] [stderr] 378 | | backend.cpu_pool.spawn_fn(capture!(backend; move || -> Box+Send> { [INFO] [stderr] ... | [INFO] [stderr] 455 | | })) [INFO] [stderr] 456 | | }))); [INFO] [stderr] | |__________- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unnecessary trailing semicolon [INFO] [stderr] --> src/async_ui/capture.rs:23:15 [INFO] [stderr] | [INFO] [stderr] 23 | )+; [INFO] [stderr] | ^ help: remove this semicolon [INFO] [stderr] | [INFO] [stderr] ::: src/screens/main_screen.rs:378:39 [INFO] [stderr] | [INFO] [stderr] 378 | backend.cpu_pool.spawn_fn(capture!(backend; move || -> Box+Send> { [INFO] [stderr] | _______________________________________- [INFO] [stderr] 379 | | let repo = backend.repo.lock().unwrap(); [INFO] [stderr] 380 | | [INFO] [stderr] 381 | | let mut revwalk = match repo.revwalk() { [INFO] [stderr] ... | [INFO] [stderr] 417 | | Box::new(future::ok(commit_infos)) [INFO] [stderr] 418 | | })).then(capture!(commits_list_store, window; move |commits_result| { [INFO] [stderr] | |______________- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/screens/main_screen.rs:378:72 [INFO] [stderr] | [INFO] [stderr] 378 | backend.cpu_pool.spawn_fn(capture!(backend; move || -> Box+Send> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Future+Send` [INFO] [stderr] [INFO] [stderr] warning: unnecessary trailing semicolon [INFO] [stderr] --> src/async_ui/capture.rs:23:15 [INFO] [stderr] | [INFO] [stderr] 23 | )+; [INFO] [stderr] | ^ help: remove this semicolon [INFO] [stderr] | [INFO] [stderr] ::: src/screens/main_screen.rs:418:22 [INFO] [stderr] | [INFO] [stderr] 418 | })).then(capture!(commits_list_store, window; move |commits_result| { [INFO] [stderr] | ______________________- [INFO] [stderr] 419 | | match commits_result { [INFO] [stderr] 420 | | Ok(commits) => { [INFO] [stderr] 421 | | commits_list_store.clear(); [INFO] [stderr] ... | [INFO] [stderr] 454 | | future::ok::<_, _>(()) [INFO] [stderr] 455 | | })) [INFO] [stderr] | |______________- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unnecessary trailing semicolon [INFO] [stderr] --> src/async_ui/capture.rs:23:15 [INFO] [stderr] | [INFO] [stderr] 23 | )+; [INFO] [stderr] | ^ help: remove this semicolon [INFO] [stderr] | [INFO] [stderr] ::: src/main.rs:26:15 [INFO] [stderr] | [INFO] [stderr] 26 | .then(capture!(process_status_code; move |result| { [INFO] [stderr] | _______________- [INFO] [stderr] 27 | | if let Err(e) = result { [INFO] [stderr] 28 | | eprintln!("{}", e); [INFO] [stderr] 29 | | process_status_code.set(1); [INFO] [stderr] ... | [INFO] [stderr] 34 | | future::ok(()) [INFO] [stderr] 35 | | })) [INFO] [stderr] | |__________- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/main.rs:43:81 [INFO] [stderr] | [INFO] [stderr] 43 | fn main_flow(cpu_pool: CpuPool, gtk_executor: GtkEventLoopAsyncExecutor) -> Box> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Future` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/main.rs:51:28 [INFO] [stderr] | [INFO] [stderr] 51 | let repo_path_fut: Box> = match args.get(1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Future` [INFO] [stderr] [INFO] [stderr] warning: unnecessary trailing semicolon [INFO] [stderr] --> src/async_ui/capture.rs:23:15 [INFO] [stderr] | [INFO] [stderr] 23 | )+; [INFO] [stderr] | ^ help: remove this semicolon [INFO] [stderr] | [INFO] [stderr] ::: src/main.rs:60:19 [INFO] [stderr] | [INFO] [stderr] 60 | .and_then(capture!(gtk_executor, cpu_pool; |repo_path| { [INFO] [stderr] | ___________________- [INFO] [stderr] 61 | | [INFO] [stderr] 62 | | println!("Loading git repository {}", repo_path.to_string_lossy()); [INFO] [stderr] 63 | | println!("Intro screen closed"); [INFO] [stderr] ... | [INFO] [stderr] 91 | | }) [INFO] [stderr] 92 | | })); [INFO] [stderr] | |__________- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unnecessary trailing semicolon [INFO] [stderr] --> src/async_ui/capture.rs:23:15 [INFO] [stderr] | [INFO] [stderr] 23 | )+; [INFO] [stderr] | ^ help: remove this semicolon [INFO] [stderr] | [INFO] [stderr] ::: src/main.rs:79:41 [INFO] [stderr] | [INFO] [stderr] 79 | dialog.connect_response(capture!(promise, dialog; move |_, _| { [INFO] [stderr] | _________________________________________- [INFO] [stderr] 80 | | dialog.destroy(); [INFO] [stderr] 81 | | promise.reject(e.clone()); [INFO] [stderr] 82 | | })); [INFO] [stderr] | |__________________- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/async_ui/gtk_futures_executor.rs:1:24 [INFO] [stderr] | [INFO] [stderr] 1 | type BoxedFuture = Box>; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn futures::future::Future` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/async_ui/gtk_futures_executor.rs:33:69 [INFO] [stderr] | [INFO] [stderr] 33 | let spawn = futures::executor::spawn(Box::new(f) as Box>); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn futures::future::Future` [INFO] [stderr] [INFO] [stderr] warning: unnecessary trailing semicolon [INFO] [stderr] --> src/async_ui/capture.rs:23:15 [INFO] [stderr] | [INFO] [stderr] 23 | )+; [INFO] [stderr] | ^ help: remove this semicolon [INFO] [stderr] | [INFO] [stderr] ::: src/screens/intro_screen.rs:59:42 [INFO] [stderr] | [INFO] [stderr] 59 | self.window.connect_delete_event(capture!(result, window = self.window; move |_, _| { [INFO] [stderr] | __________________________________________- [INFO] [stderr] 60 | | result.reject("Not implemented".to_string()); [INFO] [stderr] 61 | | window.destroy(); [INFO] [stderr] 62 | | [INFO] [stderr] 63 | | Inhibit(false) [INFO] [stderr] 64 | | })); [INFO] [stderr] | |__________- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(redundant_semicolon)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary trailing semicolon [INFO] [stderr] --> src/async_ui/capture.rs:23:15 [INFO] [stderr] | [INFO] [stderr] 23 | )+; [INFO] [stderr] | ^ help: remove this semicolon [INFO] [stderr] | [INFO] [stderr] ::: src/screens/intro_screen.rs:66:40 [INFO] [stderr] | [INFO] [stderr] 66 | self.ok_button.connect_clicked(capture!(result, file_chooser_button = self.file_chooser_button, window = self.window; move |_| { [INFO] [stderr] | ________________________________________- [INFO] [stderr] 67 | | match file_chooser_button.get_current_folder() { [INFO] [stderr] 68 | | Some(path) => { [INFO] [stderr] 69 | | result.resolve(path); [INFO] [stderr] ... | [INFO] [stderr] 75 | | } [INFO] [stderr] 76 | | })); [INFO] [stderr] | |__________- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unnecessary trailing semicolon [INFO] [stderr] --> src/async_ui/capture.rs:23:15 [INFO] [stderr] | [INFO] [stderr] 23 | )+; [INFO] [stderr] | ^ help: remove this semicolon [INFO] [stderr] | [INFO] [stderr] ::: src/screens/main_screen.rs:151:27 [INFO] [stderr] | [INFO] [stderr] 151 | cpu_pool.spawn_fn(capture!(repo_path; move || { [INFO] [stderr] | ___________________________- [INFO] [stderr] 152 | | use git2::Repository; [INFO] [stderr] 153 | | let repo = match Repository::discover(repo_path) { [INFO] [stderr] 154 | | Ok(repo) => repo, [INFO] [stderr] ... | [INFO] [stderr] 158 | | Box::new(future::ok(repo)) [INFO] [stderr] 159 | | })) [INFO] [stderr] | |__________- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unnecessary trailing semicolon [INFO] [stderr] --> src/async_ui/capture.rs:23:15 [INFO] [stderr] | [INFO] [stderr] 23 | )+; [INFO] [stderr] | ^ help: remove this semicolon [INFO] [stderr] | [INFO] [stderr] ::: src/screens/main_screen.rs:160:19 [INFO] [stderr] | [INFO] [stderr] 160 | .and_then(capture!(commits_list_store, commit_info_view, cpu_pool, executor; move |repo| { [INFO] [stderr] | ___________________- [INFO] [stderr] 161 | | [INFO] [stderr] 162 | | let main_screen = MainScreen { [INFO] [stderr] 163 | | backend: Arc::new(MainScreenBackend { [INFO] [stderr] ... | [INFO] [stderr] 181 | | Box::new(future::ok(main_screen)) [INFO] [stderr] 182 | | })) [INFO] [stderr] | |__________- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unnecessary trailing semicolon [INFO] [stderr] --> src/async_ui/capture.rs:23:15 [INFO] [stderr] | [INFO] [stderr] 23 | )+; [INFO] [stderr] | ^ help: remove this semicolon [INFO] [stderr] | [INFO] [stderr] ::: src/screens/main_screen.rs:186:74 [INFO] [stderr] | [INFO] [stderr] 186 | main_screen.ui.commits_tree_view.get_selection().connect_changed(capture!(main_screen; move |selection| { [INFO] [stderr] | __________________________________________________________________________- [INFO] [stderr] 187 | | let msg = match selection.get_selected() { [INFO] [stderr] 188 | | None => "".to_owned(), [INFO] [stderr] 189 | | Some((model, iter)) => { [INFO] [stderr] ... | [INFO] [stderr] 345 | | main_screen.ui.commit_info_view.get_buffer().unwrap().set_text(&msg); [INFO] [stderr] 346 | | })); [INFO] [stderr] | |__________- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unnecessary trailing semicolon [INFO] [stderr] --> src/async_ui/capture.rs:23:15 [INFO] [stderr] | [INFO] [stderr] 23 | )+; [INFO] [stderr] | ^ help: remove this semicolon [INFO] [stderr] | [INFO] [stderr] ::: src/screens/main_screen.rs:195:35 [INFO] [stderr] | [INFO] [stderr] 195 | .spawn_fn(capture!(backend = main_screen.backend; move || -> Result, String> { [INFO] [stderr] | ___________________________________- [INFO] [stderr] 196 | | if Some(oid) != *backend.requested_commit.lock().unwrap() { [INFO] [stderr] 197 | | return Ok(None); [INFO] [stderr] 198 | | } [INFO] [stderr] ... | [INFO] [stderr] 309 | | Ok(Some((commit_summary, changes))) [INFO] [stderr] 310 | | })) [INFO] [stderr] | |__________________________- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unnecessary trailing semicolon [INFO] [stderr] --> src/async_ui/capture.rs:23:15 [INFO] [stderr] | [INFO] [stderr] 23 | )+; [INFO] [stderr] | ^ help: remove this semicolon [INFO] [stderr] | [INFO] [stderr] ::: src/screens/main_screen.rs:311:31 [INFO] [stderr] | [INFO] [stderr] 311 | .then(capture!(main_screen; move |result| { [INFO] [stderr] | _______________________________- [INFO] [stderr] 312 | | match result { [INFO] [stderr] 313 | | Ok(Some((summary_text, changes))) => { [INFO] [stderr] 314 | | main_screen.ui.commit_info_view.get_buffer().unwrap().set_text(&summary_text); [INFO] [stderr] ... | [INFO] [stderr] 337 | | Ok(()) [INFO] [stderr] 338 | | })) [INFO] [stderr] | |__________________________- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: the item `Err` is imported redundantly [INFO] [stderr] --> src/screens/main_screen.rs:350:35 [INFO] [stderr] | [INFO] [stderr] 350 | use std::result::Result::{Err, Ok}; [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: the item `Ok` is imported redundantly [INFO] [stderr] --> src/screens/main_screen.rs:350:40 [INFO] [stderr] | [INFO] [stderr] 350 | use std::result::Result::{Err, Ok}; [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary trailing semicolon [INFO] [stderr] --> src/async_ui/capture.rs:23:15 [INFO] [stderr] | [INFO] [stderr] 23 | )+; [INFO] [stderr] | ^ help: remove this semicolon [INFO] [stderr] | [INFO] [stderr] ::: src/screens/main_screen.rs:361:45 [INFO] [stderr] | [INFO] [stderr] 361 | self.ui.window.connect_delete_event(capture!(result, window = self.ui.window; move |_, _| { [INFO] [stderr] | _____________________________________________- [INFO] [stderr] 362 | | result.resolve(()); [INFO] [stderr] 363 | | window.destroy(); [INFO] [stderr] 364 | | Inhibit(false) [INFO] [stderr] 365 | | })); [INFO] [stderr] | |__________- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unnecessary trailing semicolon [INFO] [stderr] --> src/async_ui/capture.rs:23:15 [INFO] [stderr] | [INFO] [stderr] 23 | )+; [INFO] [stderr] | ^ help: remove this semicolon [INFO] [stderr] | [INFO] [stderr] ::: src/screens/main_screen.rs:375:45 [INFO] [stderr] | [INFO] [stderr] 375 | self.ui.executor.spawn(future::lazy(capture!( [INFO] [stderr] | _____________________________________________- [INFO] [stderr] 376 | | backend = self.backend, commits_list_store = self.ui.commits_list_store, window = self.ui.window; [INFO] [stderr] 377 | | move || { [INFO] [stderr] 378 | | backend.cpu_pool.spawn_fn(capture!(backend; move || -> Box+Send> { [INFO] [stderr] ... | [INFO] [stderr] 455 | | })) [INFO] [stderr] 456 | | }))); [INFO] [stderr] | |__________- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unnecessary trailing semicolon [INFO] [stderr] --> src/async_ui/capture.rs:23:15 [INFO] [stderr] | [INFO] [stderr] 23 | )+; [INFO] [stderr] | ^ help: remove this semicolon [INFO] [stderr] | [INFO] [stderr] ::: src/screens/main_screen.rs:378:39 [INFO] [stderr] | [INFO] [stderr] 378 | backend.cpu_pool.spawn_fn(capture!(backend; move || -> Box+Send> { [INFO] [stderr] | _______________________________________- [INFO] [stderr] 379 | | let repo = backend.repo.lock().unwrap(); [INFO] [stderr] 380 | | [INFO] [stderr] 381 | | let mut revwalk = match repo.revwalk() { [INFO] [stderr] ... | [INFO] [stderr] 417 | | Box::new(future::ok(commit_infos)) [INFO] [stderr] 418 | | })).then(capture!(commits_list_store, window; move |commits_result| { [INFO] [stderr] | |______________- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/screens/main_screen.rs:378:72 [INFO] [stderr] | [INFO] [stderr] 378 | backend.cpu_pool.spawn_fn(capture!(backend; move || -> Box+Send> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Future+Send` [INFO] [stderr] [INFO] [stderr] warning: unnecessary trailing semicolon [INFO] [stderr] --> src/async_ui/capture.rs:23:15 [INFO] [stderr] | [INFO] [stderr] 23 | )+; [INFO] [stderr] | ^ help: remove this semicolon [INFO] [stderr] | [INFO] [stderr] ::: src/screens/main_screen.rs:418:22 [INFO] [stderr] | [INFO] [stderr] 418 | })).then(capture!(commits_list_store, window; move |commits_result| { [INFO] [stderr] | ______________________- [INFO] [stderr] 419 | | match commits_result { [INFO] [stderr] 420 | | Ok(commits) => { [INFO] [stderr] 421 | | commits_list_store.clear(); [INFO] [stderr] ... | [INFO] [stderr] 454 | | future::ok::<_, _>(()) [INFO] [stderr] 455 | | })) [INFO] [stderr] | |______________- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unnecessary trailing semicolon [INFO] [stderr] --> src/async_ui/capture.rs:23:15 [INFO] [stderr] | [INFO] [stderr] 23 | )+; [INFO] [stderr] | ^ help: remove this semicolon [INFO] [stderr] | [INFO] [stderr] ::: src/main.rs:26:15 [INFO] [stderr] | [INFO] [stderr] 26 | .then(capture!(process_status_code; move |result| { [INFO] [stderr] | _______________- [INFO] [stderr] 27 | | if let Err(e) = result { [INFO] [stderr] 28 | | eprintln!("{}", e); [INFO] [stderr] 29 | | process_status_code.set(1); [INFO] [stderr] ... | [INFO] [stderr] 34 | | future::ok(()) [INFO] [stderr] 35 | | })) [INFO] [stderr] | |__________- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/main.rs:43:81 [INFO] [stderr] | [INFO] [stderr] 43 | fn main_flow(cpu_pool: CpuPool, gtk_executor: GtkEventLoopAsyncExecutor) -> Box> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Future` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/main.rs:51:28 [INFO] [stderr] | [INFO] [stderr] 51 | let repo_path_fut: Box> = match args.get(1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Future` [INFO] [stderr] [INFO] [stderr] warning: unnecessary trailing semicolon [INFO] [stderr] --> src/async_ui/capture.rs:23:15 [INFO] [stderr] | [INFO] [stderr] 23 | )+; [INFO] [stderr] | ^ help: remove this semicolon [INFO] [stderr] | [INFO] [stderr] ::: src/main.rs:60:19 [INFO] [stderr] | [INFO] [stderr] 60 | .and_then(capture!(gtk_executor, cpu_pool; |repo_path| { [INFO] [stderr] | ___________________- [INFO] [stderr] 61 | | [INFO] [stderr] 62 | | println!("Loading git repository {}", repo_path.to_string_lossy()); [INFO] [stderr] 63 | | println!("Intro screen closed"); [INFO] [stderr] ... | [INFO] [stderr] 91 | | }) [INFO] [stderr] 92 | | })); [INFO] [stderr] | |__________- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unnecessary trailing semicolon [INFO] [stderr] --> src/async_ui/capture.rs:23:15 [INFO] [stderr] | [INFO] [stderr] 23 | )+; [INFO] [stderr] | ^ help: remove this semicolon [INFO] [stderr] | [INFO] [stderr] ::: src/main.rs:79:41 [INFO] [stderr] | [INFO] [stderr] 79 | dialog.connect_response(capture!(promise, dialog; move |_, _| { [INFO] [stderr] | _________________________________________- [INFO] [stderr] 80 | | dialog.destroy(); [INFO] [stderr] 81 | | promise.reject(e.clone()); [INFO] [stderr] 82 | | })); [INFO] [stderr] | |__________________- in this macro invocation [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 2m 12s [INFO] running `"docker" "inspect" "50e6f9c68c6187e66ff5c48076d93c79c926bb0f04101bc7d9912a964a1cbf8b"` [INFO] running `"docker" "rm" "-f" "50e6f9c68c6187e66ff5c48076d93c79c926bb0f04101bc7d9912a964a1cbf8b"` [INFO] [stdout] 50e6f9c68c6187e66ff5c48076d93c79c926bb0f04101bc7d9912a964a1cbf8b