[INFO] cloning repository https://github.com/bvinc/gxi [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/bvinc/gxi" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbvinc%2Fgxi", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbvinc%2Fgxi'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 47d52cb536e6fa9b3c6ca2b6efb49e0efea30054 [INFO] linting bvinc/gxi against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbvinc%2Fgxi" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/bvinc/gxi [INFO] finished tweaking git repo https://github.com/bvinc/gxi [INFO] tweaked toml for git repo https://github.com/bvinc/gxi written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/bvinc/gxi on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/bvinc/gxi 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" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] warning: only one of `license` or `license-file` is necessary [INFO] [stderr] `license` should be used if the package license can be expressed with a standard SPDX expression. [INFO] [stderr] `license-file` should be used if the package uses a non-standard license. [INFO] [stderr] See https://doc.rust-lang.org/cargo/reference/manifest.html#the-license-and-license-file-fields for more information. [INFO] [stderr] Updating git repository `https://github.com/google/xi-editor` [INFO] [stderr] Updating git submodule `https://github.com/xi-editor/syntect-resources` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded bytecount v0.6.0 [INFO] [stderr] Downloaded plist v0.4.2 [INFO] [stderr] Downloaded serde v1.0.110 [INFO] [stderr] Downloaded filetime v0.2.10 [INFO] [stderr] Downloaded dirs-next v1.0.0 [INFO] [stderr] Downloaded atk v0.8.0 [INFO] [stderr] Downloaded gdk-pixbuf v0.8.0 [INFO] [stderr] Downloaded backtrace v0.3.41 [INFO] [stderr] Downloaded pango v0.8.0 [INFO] [stderr] Downloaded cairo-rs v0.8.1 [INFO] [stderr] Downloaded gobject-sys v0.9.1 [INFO] [stderr] Downloaded syn v1.0.22 [INFO] [stderr] Downloaded glib v0.9.3 [INFO] [stderr] Downloaded pangocairo-sys v0.10.1 [INFO] [stderr] Downloaded gio v0.8.1 [INFO] [stderr] Downloaded gtk v0.8.1 [INFO] [stderr] Downloaded cmake v0.1.44 [INFO] [stderr] Downloaded syntect v3.3.0 [INFO] [stderr] Downloaded gdk-pixbuf-sys v0.9.1 [INFO] [stderr] Downloaded cairo-sys-rs v0.9.2 [INFO] [stderr] Downloaded parking_lot_core v0.2.14 [INFO] [stderr] Downloaded notify v5.0.0-pre.1 [INFO] [stderr] Downloaded gdk-sys v0.9.1 [INFO] [stderr] Downloaded glib-sys v0.9.1 [INFO] [stderr] Downloaded parking_lot v0.4.8 [INFO] [stderr] Downloaded gdk v0.12.1 [INFO] [stderr] Downloaded mio v0.7.0 [INFO] [stderr] Downloaded gtk-sys v0.9.2 [INFO] [stderr] Downloaded ntapi v0.3.4 [INFO] [stderr] Downloaded servo-fontconfig-sys v5.0.2 [INFO] [stderr] Downloaded proc-macro2 v1.0.13 [INFO] [stderr] Downloaded serde_derive v1.0.110 [INFO] [stderr] Downloaded atk-sys v0.9.1 [INFO] [stderr] Downloaded miow v0.3.3 [INFO] [stderr] Downloaded pango-sys v0.9.1 [INFO] [stderr] Downloaded servo-fontconfig v0.5.0 [INFO] [stderr] Downloaded pangocairo v0.9.0 [INFO] [stderr] Downloaded chashmap v2.2.2 [INFO] [stderr] Downloaded gio-sys v0.9.1 [INFO] [stderr] Downloaded backtrace-sys v0.1.37 [INFO] [stderr] Downloaded freetype-sys v0.12.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] f8d248bdcef22e5a25d97b467f32d5742d167851401540a2bd6e2d2abb3870a8 [INFO] running `Command { std: "docker" "start" "-a" "f8d248bdcef22e5a25d97b467f32d5742d167851401540a2bd6e2d2abb3870a8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "f8d248bdcef22e5a25d97b467f32d5742d167851401540a2bd6e2d2abb3870a8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f8d248bdcef22e5a25d97b467f32d5742d167851401540a2bd6e2d2abb3870a8", kill_on_drop: false }` [INFO] [stdout] f8d248bdcef22e5a25d97b467f32d5742d167851401540a2bd6e2d2abb3870a8 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 346b7373b2096b001828ce5825df3bd60eb52f9338316d76b69d1525d60ee71c [INFO] running `Command { std: "docker" "start" "-a" "346b7373b2096b001828ce5825df3bd60eb52f9338316d76b69d1525d60ee71c", kill_on_drop: false }` [INFO] [stderr] warning: only one of `license` or `license-file` is necessary [INFO] [stderr] `license` should be used if the package license can be expressed with a standard SPDX expression. [INFO] [stderr] `license-file` should be used if the package uses a non-standard license. [INFO] [stderr] See https://doc.rust-lang.org/cargo/reference/manifest.html#the-license-and-license-file-fields for more information. [INFO] [stderr] Compiling glib-sys v0.9.1 [INFO] [stderr] Compiling gobject-sys v0.9.1 [INFO] [stderr] Compiling proc-macro2 v1.0.13 [INFO] [stderr] Compiling syn v1.0.22 [INFO] [stderr] Compiling gio-sys v0.9.1 [INFO] [stderr] Compiling cairo-sys-rs v0.9.2 [INFO] [stderr] Compiling pango-sys v0.9.1 [INFO] [stderr] Compiling gdk-pixbuf-sys v0.9.1 [INFO] [stderr] Checking once_cell v1.4.0 [INFO] [stderr] Compiling serde v1.0.110 [INFO] [stderr] Compiling log v0.4.8 [INFO] [stderr] Checking futures-channel v0.3.5 [INFO] [stderr] Compiling cmake v0.1.44 [INFO] [stderr] Compiling gdk-sys v0.9.1 [INFO] [stderr] Compiling atk-sys v0.9.1 [INFO] [stderr] Checking smallvec v0.6.13 [INFO] [stderr] Checking futures-task v0.3.5 [INFO] [stderr] Checking rand v0.4.6 [INFO] [stderr] Compiling gio v0.8.1 [INFO] [stderr] Compiling cairo-rs v0.8.1 [INFO] [stderr] Compiling pango v0.8.0 [INFO] [stderr] Checking owning_ref v0.3.3 [INFO] [stderr] Checking net2 v0.2.34 [INFO] [stderr] Compiling backtrace-sys v0.1.37 [INFO] [stderr] Compiling gtk-sys v0.9.2 [INFO] [stderr] Compiling pangocairo-sys v0.10.1 [INFO] [stderr] Compiling gdk-pixbuf v0.8.0 [INFO] [stderr] Checking lazycell v1.2.1 [INFO] [stderr] Checking line-wrap v0.1.1 [INFO] [stderr] Checking regex v1.3.7 [INFO] [stderr] Checking crc32fast v1.2.0 [INFO] [stderr] Checking inotify-sys v0.1.3 [INFO] [stderr] Checking crossbeam-utils v0.6.6 [INFO] [stderr] Compiling servo-fontconfig-sys v5.0.2 [INFO] [stderr] Compiling gdk v0.12.1 [INFO] [stderr] Checking xml-rs v0.8.3 [INFO] [stderr] Compiling atk v0.8.0 [INFO] [stderr] Compiling failure_derive v0.1.8 [INFO] [stderr] Checking flate2 v1.0.14 [INFO] [stderr] Checking inotify v0.7.0 [INFO] [stderr] Checking crossbeam-utils v0.7.2 [INFO] [stderr] Checking mio v0.6.22 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking filetime v0.2.10 [INFO] [stderr] Compiling expat-sys v2.1.6 [INFO] [stderr] Compiling freetype-sys v0.12.0 [INFO] [stderr] Compiling gtk v0.8.1 [INFO] [stderr] Checking unicode-segmentation v1.6.0 [INFO] [stderr] Checking rustc-demangle v0.1.16 [INFO] [stderr] Checking crossbeam-channel v0.3.9 [INFO] [stderr] Checking bytecount v0.6.0 [INFO] [stderr] Compiling pangocairo v0.9.0 [INFO] [stderr] Checking dirs-sys-next v0.1.0 [INFO] [stderr] Checking parking_lot_core v0.2.14 [INFO] [stderr] Checking xi-unicode v0.2.0 (https://github.com/google/xi-editor?rev=65911d9#65911d91) [INFO] [stderr] Checking termcolor v1.1.0 [INFO] [stderr] Checking dirs-next v1.0.0 [INFO] [stderr] Checking clap v2.33.1 [INFO] [stderr] Checking mio v0.7.0 [INFO] [stderr] Checking env_logger v0.7.1 [INFO] [stderr] Checking parking_lot v0.4.8 [INFO] [stderr] Checking mio-extras v2.0.6 [INFO] [stderr] Checking servo-fontconfig v0.5.0 [INFO] [stderr] Compiling quote v1.0.6 [INFO] [stderr] Checking chashmap v2.2.2 [INFO] [stderr] Checking backtrace v0.3.41 [INFO] [stderr] Checking notify v5.0.0-pre.1 [INFO] [stderr] Compiling synstructure v0.12.3 [INFO] [stderr] Compiling pin-project-internal v0.4.17 [INFO] [stderr] Compiling futures-macro v0.3.5 [INFO] [stderr] Compiling serde_derive v1.0.110 [INFO] [stderr] Checking failure v0.1.8 [INFO] [stderr] Checking pin-project v0.4.17 [INFO] [stderr] Checking futures-util v0.3.5 [INFO] [stderr] Checking futures-executor v0.3.5 [INFO] [stderr] Checking glib v0.9.3 [INFO] [stderr] Checking serde_json v1.0.53 [INFO] [stderr] Checking bincode v1.2.1 [INFO] [stderr] Checking plist v0.4.2 [INFO] [stderr] Checking xi-rope v0.3.0 (https://github.com/google/xi-editor?rev=65911d9#65911d91) [INFO] [stderr] Checking toml v0.5.6 [INFO] [stderr] Checking xi-trace v0.2.0 (https://github.com/google/xi-editor?rev=65911d9#65911d91) [INFO] [stderr] Checking syntect v3.3.0 [INFO] [stderr] Checking xi-rpc v0.3.0 (https://github.com/google/xi-editor?rev=65911d9#65911d91) [INFO] [stderr] Checking xi-core-lib v0.3.0 (https://github.com/google/xi-editor?rev=65911d9#65911d91) [INFO] [stderr] Checking gxi v0.2.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/channel/source.rs:29:1 [INFO] [stdout] | [INFO] [stdout] 29 | use libc; [INFO] [stdout] | ^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] = note: `#[warn(clippy::single_component_path_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> src/channel/source.rs:54:48 [INFO] [stdout] | [INFO] [stdout] 54 | let source = g_source_new(&mut *funcs, mem::size_of::>() as u32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/channel/mod.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | unused_qualifications [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 54 - let source = g_source_new(&mut *funcs, mem::size_of::>() as u32); [INFO] [stdout] 54 + let source = g_source_new(&mut *funcs, size_of::>() as u32); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::rpc::Core` [INFO] [stdout] --> src/prefs_win.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::rpc::Core; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/scrollable_drawing_area.rs:12:1 [INFO] [stdout] | [INFO] [stdout] 12 | use std; [INFO] [stdout] | ^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `glib::StaticType` [INFO] [stdout] --> src/scrollable_drawing_area.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use glib::StaticType; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/scrollable_drawing_area.rs:16:1 [INFO] [stdout] | [INFO] [stdout] 16 | use gobject_sys; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ScrollablePolicy` [INFO] [stdout] --> src/scrollable_drawing_area.rs:17:48 [INFO] [stdout] | [INFO] [stdout] 17 | use gtk::{Adjustment, DrawingArea, Scrollable, ScrollablePolicy}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `GtkAdjustment`, `GtkDrawingArea`, and `GtkWidget` [INFO] [stdout] --> src/scrollable_drawing_area.rs:19:15 [INFO] [stdout] | [INFO] [stdout] 19 | use gtk_sys::{GtkAdjustment, GtkDrawingArea, GtkWidget}; [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `libc::c_int` [INFO] [stdout] --> src/scrollable_drawing_area.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | use libc::c_int; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cell::Cell` [INFO] [stdout] --> src/scrollable_drawing_area.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | use std::cell::Cell; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ptr` [INFO] [stdout] --> src/scrollable_drawing_area.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | use std::ptr; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/channel/source.rs:29:1 [INFO] [stdout] | [INFO] [stdout] 29 | use libc; [INFO] [stdout] | ^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] = note: `#[warn(clippy::single_component_path_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> src/channel/source.rs:54:48 [INFO] [stdout] | [INFO] [stdout] 54 | let source = g_source_new(&mut *funcs, mem::size_of::>() as u32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/channel/mod.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | unused_qualifications [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 54 - let source = g_source_new(&mut *funcs, mem::size_of::>() as u32); [INFO] [stdout] 54 + let source = g_source_new(&mut *funcs, size_of::>() as u32); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `glib::Cast` [INFO] [stdout] --> src/scrollable_drawing_area.rs:52:9 [INFO] [stdout] | [INFO] [stdout] 52 | use glib::Cast; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `GtkWidget` [INFO] [stdout] --> src/scrollable_drawing_area.rs:54:71 [INFO] [stdout] | [INFO] [stdout] 54 | use gtk_sys::{GtkAdjustment, GtkDrawingArea, GtkDrawingAreaClass, GtkWidget}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/scrollable_drawing_area.rs:71:81 [INFO] [stdout] | [INFO] [stdout] 71 | Option (())>, [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 71 - Option (())>, [INFO] [stdout] 71 + Option ()>, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/scrollable_drawing_area.rs:128:41 [INFO] [stdout] | [INFO] [stdout] 128 | fn value_changed_impl(&self) -> (()) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 128 - fn value_changed_impl(&self) -> (()) { [INFO] [stdout] 128 + fn value_changed_impl(&self) -> () { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit expression [INFO] [stdout] --> src/scrollable_drawing_area.rs:147:17 [INFO] [stdout] | [INFO] [stdout] 147 | () [INFO] [stdout] | ^^ help: remove the final `()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] = note: `#[warn(clippy::unused_unit)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/scrollable_drawing_area.rs:291:14 [INFO] [stdout] | [INFO] [stdout] 291 | ) -> (()) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 291 - ) -> (()) { [INFO] [stdout] 291 + ) -> () { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/scrollable_drawing_area.rs:458:46 [INFO] [stdout] | [INFO] [stdout] 458 | fn connect_value_changed (()) + 'static>(&self, f: F) -> glib::SignalHandlerId; [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 458 - fn connect_value_changed (()) + 'static>(&self, f: F) -> glib::SignalHandlerId; [INFO] [stdout] 458 + fn connect_value_changed () + 'static>(&self, f: F) -> glib::SignalHandlerId; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/scrollable_drawing_area.rs:472:46 [INFO] [stdout] | [INFO] [stdout] 472 | fn connect_value_changed (()) + 'static>(&self, f: F) -> glib::SignalHandlerId { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 472 - fn connect_value_changed (()) + 'static>(&self, f: F) -> glib::SignalHandlerId { [INFO] [stdout] 472 + fn connect_value_changed () + 'static>(&self, f: F) -> glib::SignalHandlerId { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/scrollable_drawing_area.rs:474:41 [INFO] [stdout] | [INFO] [stdout] 474 | let f: Box (()) + 'static>> = Box::new(Box::new(f)); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 474 - let f: Box (()) + 'static>> = Box::new(Box::new(f)); [INFO] [stdout] 474 + let f: Box () + 'static>> = Box::new(Box::new(f)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/scrollable_drawing_area.rs:576:6 [INFO] [stdout] | [INFO] [stdout] 576 | ) -> (()) [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 576 - ) -> (()) [INFO] [stdout] 576 + ) -> () [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/scrollable_drawing_area.rs:582:25 [INFO] [stdout] | [INFO] [stdout] 582 | let f: &&(Fn(&P) -> (()) + 'static) = mem::transmute(f); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 582 - let f: &&(Fn(&P) -> (()) + 'static) = mem::transmute(f); [INFO] [stdout] 582 + let f: &&(Fn(&P) -> () + 'static) = mem::transmute(f); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/theme.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | use cairo; [INFO] [stdout] | ^^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Arg` and `SubCommand` [INFO] [stdout] --> src/main.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 18 | use clap::{Arg, SubCommand}; [INFO] [stdout] | ^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::rpc::Core` [INFO] [stdout] --> src/prefs_win.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::rpc::Core; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/scrollable_drawing_area.rs:12:1 [INFO] [stdout] | [INFO] [stdout] 12 | use std; [INFO] [stdout] | ^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `glib::StaticType` [INFO] [stdout] --> src/scrollable_drawing_area.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use glib::StaticType; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/scrollable_drawing_area.rs:16:1 [INFO] [stdout] | [INFO] [stdout] 16 | use gobject_sys; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ScrollablePolicy` [INFO] [stdout] --> src/scrollable_drawing_area.rs:17:48 [INFO] [stdout] | [INFO] [stdout] 17 | use gtk::{Adjustment, DrawingArea, Scrollable, ScrollablePolicy}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `GtkAdjustment`, `GtkDrawingArea`, and `GtkWidget` [INFO] [stdout] --> src/scrollable_drawing_area.rs:19:15 [INFO] [stdout] | [INFO] [stdout] 19 | use gtk_sys::{GtkAdjustment, GtkDrawingArea, GtkWidget}; [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `libc::c_int` [INFO] [stdout] --> src/scrollable_drawing_area.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | use libc::c_int; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cell::Cell` [INFO] [stdout] --> src/scrollable_drawing_area.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | use std::cell::Cell; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ptr` [INFO] [stdout] --> src/scrollable_drawing_area.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | use std::ptr; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `glib::Cast` [INFO] [stdout] --> src/scrollable_drawing_area.rs:52:9 [INFO] [stdout] | [INFO] [stdout] 52 | use glib::Cast; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `GtkWidget` [INFO] [stdout] --> src/scrollable_drawing_area.rs:54:71 [INFO] [stdout] | [INFO] [stdout] 54 | use gtk_sys::{GtkAdjustment, GtkDrawingArea, GtkDrawingAreaClass, GtkWidget}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/scrollable_drawing_area.rs:71:81 [INFO] [stdout] | [INFO] [stdout] 71 | Option (())>, [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 71 - Option (())>, [INFO] [stdout] 71 + Option ()>, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/scrollable_drawing_area.rs:128:41 [INFO] [stdout] | [INFO] [stdout] 128 | fn value_changed_impl(&self) -> (()) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 128 - fn value_changed_impl(&self) -> (()) { [INFO] [stdout] 128 + fn value_changed_impl(&self) -> () { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit expression [INFO] [stdout] --> src/scrollable_drawing_area.rs:147:17 [INFO] [stdout] | [INFO] [stdout] 147 | () [INFO] [stdout] | ^^ help: remove the final `()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] = note: `#[warn(clippy::unused_unit)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `Once::new()` function is now preferred [INFO] [stdout] --> src/scrollable_drawing_area.rs:411:31 [INFO] [stdout] | [INFO] [stdout] 411 | use std::sync::{Once, ONCE_INIT}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/scrollable_drawing_area.rs:291:14 [INFO] [stdout] | [INFO] [stdout] 291 | ) -> (()) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 291 - ) -> (()) { [INFO] [stdout] 291 + ) -> () { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `Once::new()` function is now preferred [INFO] [stdout] --> src/scrollable_drawing_area.rs:414:29 [INFO] [stdout] | [INFO] [stdout] 414 | static ONCE: Once = ONCE_INIT; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: replace the use of the deprecated constant [INFO] [stdout] | [INFO] [stdout] 414 - static ONCE: Once = ONCE_INIT; [INFO] [stdout] 414 + static ONCE: Once = Once::new(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/scrollable_drawing_area.rs:458:46 [INFO] [stdout] | [INFO] [stdout] 458 | fn connect_value_changed (()) + 'static>(&self, f: F) -> glib::SignalHandlerId; [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 458 - fn connect_value_changed (()) + 'static>(&self, f: F) -> glib::SignalHandlerId; [INFO] [stdout] 458 + fn connect_value_changed () + 'static>(&self, f: F) -> glib::SignalHandlerId; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/scrollable_drawing_area.rs:472:46 [INFO] [stdout] | [INFO] [stdout] 472 | fn connect_value_changed (()) + 'static>(&self, f: F) -> glib::SignalHandlerId { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 472 - fn connect_value_changed (()) + 'static>(&self, f: F) -> glib::SignalHandlerId { [INFO] [stdout] 472 + fn connect_value_changed () + 'static>(&self, f: F) -> glib::SignalHandlerId { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/scrollable_drawing_area.rs:474:41 [INFO] [stdout] | [INFO] [stdout] 474 | let f: Box (()) + 'static>> = Box::new(Box::new(f)); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 474 - let f: Box (()) + 'static>> = Box::new(Box::new(f)); [INFO] [stdout] 474 + let f: Box () + 'static>> = Box::new(Box::new(f)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/scrollable_drawing_area.rs:576:6 [INFO] [stdout] | [INFO] [stdout] 576 | ) -> (()) [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 576 - ) -> (()) [INFO] [stdout] 576 + ) -> () [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/scrollable_drawing_area.rs:582:25 [INFO] [stdout] | [INFO] [stdout] 582 | let f: &&(Fn(&P) -> (()) + 'static) = mem::transmute(f); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 582 - let f: &&(Fn(&P) -> (()) + 'static) = mem::transmute(f); [INFO] [stdout] 582 + let f: &&(Fn(&P) -> () + 'static) = mem::transmute(f); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/theme.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | use cairo; [INFO] [stdout] | ^^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Arg` and `SubCommand` [INFO] [stdout] --> src/main.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 18 | use clap::{Arg, SubCommand}; [INFO] [stdout] | ^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/main.rs:49:34 [INFO] [stdout] | [INFO] [stdout] 49 | fn call(self: Box, a: &Any); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 49 | fn call(self: Box, a: &dyn Any); [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/main.rs:53:31 [INFO] [stdout] | [INFO] [stdout] 53 | fn call(self: Box, a: &Any) { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 53 | fn call(self: Box, a: &dyn Any) { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `Once::new()` function is now preferred [INFO] [stdout] --> src/scrollable_drawing_area.rs:411:31 [INFO] [stdout] | [INFO] [stdout] 411 | use std::sync::{Once, ONCE_INIT}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `Once::new()` function is now preferred [INFO] [stdout] --> src/scrollable_drawing_area.rs:414:29 [INFO] [stdout] | [INFO] [stdout] 414 | static ONCE: Once = ONCE_INIT; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: replace the use of the deprecated constant [INFO] [stdout] | [INFO] [stdout] 414 - static ONCE: Once = ONCE_INIT; [INFO] [stdout] 414 + static ONCE: Once = Once::new(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/main.rs:49:34 [INFO] [stdout] | [INFO] [stdout] 49 | fn call(self: Box, a: &Any); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 49 | fn call(self: Box, a: &dyn Any); [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/main.rs:53:31 [INFO] [stdout] | [INFO] [stdout] 53 | fn call(self: Box, a: &Any) { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 53 | fn call(self: Box, a: &dyn Any) { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/main.rs:52:17 [INFO] [stdout] | [INFO] [stdout] 52 | impl IdleCallback for F { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 52 | impl IdleCallback for F { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/main.rs:52:17 [INFO] [stdout] | [INFO] [stdout] 52 | impl IdleCallback for F { [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 52 | impl IdleCallback for F { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `gtk::AdjustmentExt::value_changed` [INFO] [stdout] --> src/edit_view.rs:702:18 [INFO] [stdout] | [INFO] [stdout] 702 | hadj.value_changed(); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `gtk::AdjustmentExt::value_changed` [INFO] [stdout] --> src/edit_view.rs:702:18 [INFO] [stdout] | [INFO] [stdout] 702 | hadj.value_changed(); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/scrollable_drawing_area.rs:138:54 [INFO] [stdout] | [INFO] [stdout] 138 | let params: &[glib::Value] = &[(self as &glib::ToValue).to_value()]; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 138 | let params: &[glib::Value] = &[(self as &dyn glib::ToValue).to_value()]; [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/scrollable_drawing_area.rs:474:28 [INFO] [stdout] | [INFO] [stdout] 474 | let f: Box (()) + 'static>> = Box::new(Box::new(f)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 474 | let f: Box (()) + 'static>> = Box::new(Box::new(f)); [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/scrollable_drawing_area.rs:582:15 [INFO] [stdout] | [INFO] [stdout] 582 | let f: &&(Fn(&P) -> (()) + 'static) = mem::transmute(f); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 582 | let f: &&(dyn Fn(&P) -> (()) + 'static) = mem::transmute(f); [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/scrollable_drawing_area.rs:138:54 [INFO] [stdout] | [INFO] [stdout] 138 | let params: &[glib::Value] = &[(self as &glib::ToValue).to_value()]; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 138 | let params: &[glib::Value] = &[(self as &dyn glib::ToValue).to_value()]; [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/scrollable_drawing_area.rs:474:28 [INFO] [stdout] | [INFO] [stdout] 474 | let f: Box (()) + 'static>> = Box::new(Box::new(f)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 474 | let f: Box (()) + 'static>> = Box::new(Box::new(f)); [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/scrollable_drawing_area.rs:582:15 [INFO] [stdout] | [INFO] [stdout] 582 | let f: &&(Fn(&P) -> (()) + 'static) = mem::transmute(f); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 582 | let f: &&(dyn Fn(&P) -> (()) + 'static) = mem::transmute(f); [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `w` [INFO] [stdout] --> src/edit_view.rs:272:78 [INFO] [stdout] | [INFO] [stdout] 272 | replace_all_button.connect_clicked(clone!(@strong edit_view => move |w| { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_w` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `w` [INFO] [stdout] --> src/edit_view.rs:268:74 [INFO] [stdout] | [INFO] [stdout] 268 | replace_button.connect_clicked(clone!(@strong edit_view => move |w| { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_w` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `w` [INFO] [stdout] --> src/edit_view.rs:254:76 [INFO] [stdout] | [INFO] [stdout] 254 | search_entry.connect_stop_search(clone!(@strong edit_view => move |w| { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_w` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `w` [INFO] [stdout] --> src/edit_view.rs:250:73 [INFO] [stdout] | [INFO] [stdout] 250 | search_entry.connect_activate(clone!(@strong edit_view => move |w| { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_w` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `text_width` [INFO] [stdout] --> src/edit_view.rs:362:14 [INFO] [stdout] | [INFO] [stdout] 362 | let (text_width, text_height, vadj, hadj) = { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_text_width` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hadj` [INFO] [stdout] --> src/edit_view.rs:362:45 [INFO] [stdout] | [INFO] [stdout] 362 | let (text_width, text_height, vadj, hadj) = { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_hadj` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `padding` [INFO] [stdout] --> src/edit_view.rs:640:13 [INFO] [stdout] | [INFO] [stdout] 640 | let padding: usize = format!("{}", num_lines.saturating_sub(1)).len(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_padding` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `main_state` [INFO] [stdout] --> src/edit_view.rs:712:9 [INFO] [stdout] | [INFO] [stdout] 712 | main_state: &MainState, [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_main_state` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `es` [INFO] [stdout] --> src/edit_view.rs:911:37 [INFO] [stdout] | [INFO] [stdout] 911 | pub fn handle_scroll(&mut self, es: &EventScroll) -> Inhibit { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_es` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `w` [INFO] [stdout] --> src/edit_view.rs:272:78 [INFO] [stdout] | [INFO] [stdout] 272 | replace_all_button.connect_clicked(clone!(@strong edit_view => move |w| { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_w` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `w` [INFO] [stdout] --> src/edit_view.rs:268:74 [INFO] [stdout] | [INFO] [stdout] 268 | replace_button.connect_clicked(clone!(@strong edit_view => move |w| { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_w` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `w` [INFO] [stdout] --> src/edit_view.rs:254:76 [INFO] [stdout] | [INFO] [stdout] 254 | search_entry.connect_stop_search(clone!(@strong edit_view => move |w| { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_w` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `w` [INFO] [stdout] --> src/edit_view.rs:250:73 [INFO] [stdout] | [INFO] [stdout] 250 | search_entry.connect_activate(clone!(@strong edit_view => move |w| { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_w` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `text_width` [INFO] [stdout] --> src/edit_view.rs:362:14 [INFO] [stdout] | [INFO] [stdout] 362 | let (text_width, text_height, vadj, hadj) = { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_text_width` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hadj` [INFO] [stdout] --> src/edit_view.rs:362:45 [INFO] [stdout] | [INFO] [stdout] 362 | let (text_width, text_height, vadj, hadj) = { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_hadj` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `prefs_win` [INFO] [stdout] --> src/main_win.rs:393:13 [INFO] [stdout] | [INFO] [stdout] 393 | let prefs_win = PrefsWin::new(&self.window, &main_state, controller.clone()); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_prefs_win` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `padding` [INFO] [stdout] --> src/edit_view.rs:640:13 [INFO] [stdout] | [INFO] [stdout] 640 | let padding: usize = format!("{}", num_lines.saturating_sub(1)).len(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_padding` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `main_state` [INFO] [stdout] --> src/edit_view.rs:712:9 [INFO] [stdout] | [INFO] [stdout] 712 | main_state: &MainState, [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_main_state` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `es` [INFO] [stdout] --> src/edit_view.rs:911:37 [INFO] [stdout] | [INFO] [stdout] 911 | pub fn handle_scroll(&mut self, es: &EventScroll) -> Inhibit { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_es` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `font_combo_box` [INFO] [stdout] --> src/prefs_win.rs:30:13 [INFO] [stdout] | [INFO] [stdout] 30 | let font_combo_box: ComboBoxText = builder.get_object("font_combo_box").unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_font_combo_box` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `prefs_win` [INFO] [stdout] --> src/main_win.rs:393:13 [INFO] [stdout] | [INFO] [stdout] 393 | let prefs_win = PrefsWin::new(&self.window, &main_state, controller.clone()); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_prefs_win` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `font_combo_box` [INFO] [stdout] --> src/prefs_win.rs:30:13 [INFO] [stdout] | [INFO] [stdout] 30 | let font_combo_box: ComboBoxText = builder.get_object("font_combo_box").unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_font_combo_box` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/scrollable_drawing_area.rs:156:29 [INFO] [stdout] | [INFO] [stdout] 156 | let mut private = self.get_priv(); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/scrollable_drawing_area.rs:163:29 [INFO] [stdout] | [INFO] [stdout] 163 | let mut private = self.get_priv(); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/scrollable_drawing_area.rs:170:29 [INFO] [stdout] | [INFO] [stdout] 170 | let mut private = self.get_priv(); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/scrollable_drawing_area.rs:177:29 [INFO] [stdout] | [INFO] [stdout] 177 | let mut private = self.get_priv(); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/main.rs:193:73 [INFO] [stdout] | [INFO] [stdout] 193 | application.connect_open(clone!(@strong controller => move |_,files,s| { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `application` [INFO] [stdout] --> src/main.rs:187:69 [INFO] [stdout] | [INFO] [stdout] 187 | application.connect_activate(clone!(@strong controller => move |application| { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_application` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `IdleCallback` is never used [INFO] [stdout] --> src/main.rs:48:7 [INFO] [stdout] | [INFO] [stdout] 48 | trait IdleCallback: Send { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Lock` is never constructed [INFO] [stdout] --> src/channel/mod.rs:45:12 [INFO] [stdout] | [INFO] [stdout] 45 | pub struct Lock { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SourceData` is never constructed [INFO] [stdout] --> src/channel/mod.rs:157:8 [INFO] [stdout] | [INFO] [stdout] 157 | struct SourceData { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EventStream` is never constructed [INFO] [stdout] --> src/channel/mod.rs:164:12 [INFO] [stdout] | [INFO] [stdout] 164 | pub struct EventStream { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_callback` and `get_stream` are never used [INFO] [stdout] --> src/channel/mod.rs:179:8 [INFO] [stdout] | [INFO] [stdout] 178 | impl EventStream { [INFO] [stdout] | -------------------------- methods in this implementation [INFO] [stdout] 179 | fn get_callback(&self) -> Rc>>> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 183 | fn get_stream(&self) -> Rc>> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `close`, `emit`, `lock`, `observe`, and `set_callback` are never used [INFO] [stdout] --> src/channel/mod.rs:190:12 [INFO] [stdout] | [INFO] [stdout] 188 | impl EventStream { [INFO] [stdout] | -------------------------- associated items in this implementation [INFO] [stdout] 189 | /// Create a new event stream. [INFO] [stdout] 190 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 209 | pub fn close(&self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 214 | pub fn emit(&self, event: MSG) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 228 | pub fn lock(&self) -> Lock { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 238 | pub fn observe(&self, callback: CALLBACK) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 246 | pub fn set_callback(&self, callback: CALLBACK) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `source_get` is never used [INFO] [stdout] --> src/channel/source.rs:61:8 [INFO] [stdout] | [INFO] [stdout] 61 | pub fn source_get(source: &Source) -> &T { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `ClipboardRequest` is never used [INFO] [stdout] --> src/clipboard.rs:8:11 [INFO] [stdout] | [INFO] [stdout] 8 | pub trait ClipboardRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `into_raw_request_text` is never used [INFO] [stdout] --> src/clipboard.rs:25:4 [INFO] [stdout] | [INFO] [stdout] 25 | fn into_raw_request_text(func: F) -> gpointer { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `trampoline_request_text` is never used [INFO] [stdout] --> src/clipboard.rs:30:22 [INFO] [stdout] | [INFO] [stdout] 30 | unsafe extern "C" fn trampoline_request_text( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `save` is never used [INFO] [stdout] --> src/controller.rs:118:12 [INFO] [stdout] | [INFO] [stdout] 31 | impl Controller { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 118 | pub fn save(&self, view_id: &str, file_path: &str) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `map` is never read [INFO] [stdout] --> src/linecache.rs:73:5 [INFO] [stdout] | [INFO] [stdout] 72 | pub struct LineCache { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] 73 | map: HashMap, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LineCache` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_missing` is never used [INFO] [stdout] --> src/linecache.rs:112:12 [INFO] [stdout] | [INFO] [stdout] 79 | impl LineCache { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 112 | pub fn get_missing(&self, first: u64, last: u64) -> Vec<(u64, u64)> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `builder` is never read [INFO] [stdout] --> src/main_win.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct MainWin { [INFO] [stdout] | ------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 27 | builder: Builder, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `controller` and `window` are never read [INFO] [stdout] --> src/prefs_win.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 11 | pub struct PrefsWin { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 12 | controller: ControllerRef, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 13 | window: Window, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `set_theme`, `gesture_multi_line_select`, `gesture_multi_word_select`, and `highlight_find` are never used [INFO] [stdout] --> src/rpc.rs:156:12 [INFO] [stdout] | [INFO] [stdout] 39 | impl Core { [INFO] [stdout] | --------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 156 | pub fn set_theme(&self, theme_name: &str) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 340 | pub fn gesture_multi_line_select(&self, view_id: &str, line: u64, col: u64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 352 | pub fn gesture_multi_word_select(&self, view_id: &str, line: u64, col: u64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 473 | pub fn highlight_find(&self, view_id: &str, visible: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `ScrollableDrawingAreaExt` is never used [INFO] [stdout] --> src/scrollable_drawing_area.rs:457:11 [INFO] [stdout] | [INFO] [stdout] 457 | pub trait ScrollableDrawingAreaExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `value_changed_signal_handler_trampoline` is never used [INFO] [stdout] --> src/scrollable_drawing_area.rs:573:22 [INFO] [stdout] | [INFO] [stdout] 573 | unsafe extern "C" fn value_changed_signal_handler_trampoline

( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Properties` is never used [INFO] [stdout] --> src/scrollable_drawing_area.rs:79:10 [INFO] [stdout] | [INFO] [stdout] 79 | enum Properties { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `scrollable_drawing_area_size_allocate` is never used [INFO] [stdout] --> src/scrollable_drawing_area.rs:398:30 [INFO] [stdout] | [INFO] [stdout] 398 | pub unsafe extern "C" fn scrollable_drawing_area_size_allocate( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/channel/mod.rs:140:16 [INFO] [stdout] | [INFO] [stdout] 140 | observers: Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/channel/mod.rs:158:15 [INFO] [stdout] | [INFO] [stdout] 158 | callback: Rc>>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/channel/mod.rs:179:31 [INFO] [stdout] | [INFO] [stdout] 179 | fn get_callback(&self) -> Rc>>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: transmute used without annotations [INFO] [stdout] --> src/clipboard.rs:18:22 [INFO] [stdout] | [INFO] [stdout] 18 | Some(transmute(trampoline)), [INFO] [stdout] | ^^^^^^^^^ help: consider adding missing annotations: `transmute::<*mut libc::c_void, unsafe extern "C" fn(*mut gtk_sys::GtkClipboard, *const i8, *mut libc::c_void)>` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_transmute_annotations [INFO] [stdout] = note: `#[warn(clippy::missing_transmute_annotations)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/clipboard.rs:26:15 [INFO] [stdout] | [INFO] [stdout] 26 | let func: Box> = Box::new(Box::new(func)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: transmute from a pointer type (`*mut libc::c_void`) to a reference type (`&&dyn for<'a> std::ops::Fn(&'a gtk::Clipboard, std::string::String)`) [INFO] [stdout] --> src/clipboard.rs:35:55 [INFO] [stdout] | [INFO] [stdout] 35 | let f: &&(dyn Fn(&Clipboard, String) + 'static) = transmute(data); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `&*(data as *const &dyn for<'a> std::ops::Fn(&'a gtk::Clipboard, std::string::String))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ref [INFO] [stdout] = note: `#[warn(clippy::transmute_ptr_to_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: importing legacy numeric constants [INFO] [stdout] --> src/edit_view.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | use std::u32; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove this import [INFO] [stdout] = note: then `u32::` will resolve to the respective associated constant [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/scrollable_drawing_area.rs:156:29 [INFO] [stdout] | [INFO] [stdout] 156 | let mut private = self.get_priv(); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/edit_view.rs:207:53 [INFO] [stdout] | [INFO] [stdout] 207 | edit_view.borrow_mut().handle_line_draw(&ctx) [INFO] [stdout] | ^^^^ help: change this to: `ctx` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/edit_view.rs:215:48 [INFO] [stdout] | [INFO] [stdout] 215 | edit_view.borrow_mut().handle_draw(&ctx) [INFO] [stdout] | ^^^^ help: change this to: `ctx` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/scrollable_drawing_area.rs:163:29 [INFO] [stdout] | [INFO] [stdout] 163 | let mut private = self.get_priv(); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/scrollable_drawing_area.rs:170:29 [INFO] [stdout] | [INFO] [stdout] 170 | let mut private = self.get_priv(); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/scrollable_drawing_area.rs:177:29 [INFO] [stdout] | [INFO] [stdout] 177 | let mut private = self.get_priv(); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `Iterator::last` on a `DoubleEndedIterator`; this will needlessly iterate the entire iterator [INFO] [stdout] --> src/edit_view.rs:314:28 [INFO] [stdout] | [INFO] [stdout] 314 | Some(ref f) => f [INFO] [stdout] | ____________________________^ [INFO] [stdout] 315 | | .split(::std::path::MAIN_SEPARATOR) [INFO] [stdout] 316 | | .last() [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_ended_iterator_last [INFO] [stdout] = note: `#[warn(clippy::double_ended_iterator_last)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 316 - .last() [INFO] [stdout] 316 + .next_back() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f64` -> `f64`) [INFO] [stdout] --> src/edit_view.rs:385:24 [INFO] [stdout] | [INFO] [stdout] 385 | vadj.set_upper(text_height as f64); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `text_height` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/edit_view.rs:413:66 [INFO] [stdout] | [INFO] [stdout] 413 | let layout = self.create_layout_for_line(&pango_ctx, &main_state, line); [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `main_state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u64` -> `u64`) [INFO] [stdout] --> src/edit_view.rs:505:17 [INFO] [stdout] | [INFO] [stdout] 505 | first_line as u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `first_line` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/edit_view.rs:544:20 [INFO] [stdout] | [INFO] [stdout] 544 | if let Some(_) = self.line_cache.get_line(i) { [INFO] [stdout] | -------^^^^^^^------------------------------ help: try: `if self.line_cache.get_line(i).is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u64` -> `u64`) [INFO] [stdout] --> src/edit_view.rs:607:17 [INFO] [stdout] | [INFO] [stdout] 607 | first_line as u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `first_line` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/edit_view.rs:733:13 [INFO] [stdout] | [INFO] [stdout] 733 | &line.text() [INFO] [stdout] | ^^^^^^^^^^^^ help: change this to: `line.text()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/main.rs:193:73 [INFO] [stdout] | [INFO] [stdout] 193 | application.connect_open(clone!(@strong controller => move |_,files,s| { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `application` [INFO] [stdout] --> src/main.rs:187:69 [INFO] [stdout] | [INFO] [stdout] 187 | application.connect_activate(clone!(@strong controller => move |application| { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_application` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/edit_view.rs:958:64 [INFO] [stdout] | [INFO] [stdout] 958 | self.controller.borrow().core().insert_newline(&view_id); [INFO] [stdout] | ^^^^^^^^ help: change this to: `view_id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `IdleCallback` is never used [INFO] [stdout] --> src/main.rs:48:7 [INFO] [stdout] | [INFO] [stdout] 48 | trait IdleCallback: Send { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Lock` is never constructed [INFO] [stdout] --> src/channel/mod.rs:45:12 [INFO] [stdout] | [INFO] [stdout] 45 | pub struct Lock { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SourceData` is never constructed [INFO] [stdout] --> src/channel/mod.rs:157:8 [INFO] [stdout] | [INFO] [stdout] 157 | struct SourceData { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EventStream` is never constructed [INFO] [stdout] --> src/channel/mod.rs:164:12 [INFO] [stdout] | [INFO] [stdout] 164 | pub struct EventStream { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_callback` and `get_stream` are never used [INFO] [stdout] --> src/channel/mod.rs:179:8 [INFO] [stdout] | [INFO] [stdout] 178 | impl EventStream { [INFO] [stdout] | -------------------------- methods in this implementation [INFO] [stdout] 179 | fn get_callback(&self) -> Rc>>> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 183 | fn get_stream(&self) -> Rc>> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `close`, `emit`, `lock`, `observe`, and `set_callback` are never used [INFO] [stdout] --> src/channel/mod.rs:190:12 [INFO] [stdout] | [INFO] [stdout] 188 | impl EventStream { [INFO] [stdout] | -------------------------- associated items in this implementation [INFO] [stdout] 189 | /// Create a new event stream. [INFO] [stdout] 190 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 209 | pub fn close(&self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 214 | pub fn emit(&self, event: MSG) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 228 | pub fn lock(&self) -> Lock { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 238 | pub fn observe(&self, callback: CALLBACK) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 246 | pub fn set_callback(&self, callback: CALLBACK) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `source_get` is never used [INFO] [stdout] --> src/channel/source.rs:61:8 [INFO] [stdout] | [INFO] [stdout] 61 | pub fn source_get(source: &Source) -> &T { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `ClipboardRequest` is never used [INFO] [stdout] --> src/clipboard.rs:8:11 [INFO] [stdout] | [INFO] [stdout] 8 | pub trait ClipboardRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `into_raw_request_text` is never used [INFO] [stdout] --> src/clipboard.rs:25:4 [INFO] [stdout] | [INFO] [stdout] 25 | fn into_raw_request_text(func: F) -> gpointer { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `trampoline_request_text` is never used [INFO] [stdout] --> src/clipboard.rs:30:22 [INFO] [stdout] | [INFO] [stdout] 30 | unsafe extern "C" fn trampoline_request_text( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `save` is never used [INFO] [stdout] --> src/controller.rs:118:12 [INFO] [stdout] | [INFO] [stdout] 31 | impl Controller { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 118 | pub fn save(&self, view_id: &str, file_path: &str) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `map` is never read [INFO] [stdout] --> src/linecache.rs:73:5 [INFO] [stdout] | [INFO] [stdout] 72 | pub struct LineCache { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] 73 | map: HashMap, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LineCache` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_missing` is never used [INFO] [stdout] --> src/linecache.rs:112:12 [INFO] [stdout] | [INFO] [stdout] 79 | impl LineCache { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 112 | pub fn get_missing(&self, first: u64, last: u64) -> Vec<(u64, u64)> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `builder` is never read [INFO] [stdout] --> src/main_win.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct MainWin { [INFO] [stdout] | ------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 27 | builder: Builder, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `controller` and `window` are never read [INFO] [stdout] --> src/prefs_win.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 11 | pub struct PrefsWin { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 12 | controller: ControllerRef, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 13 | window: Window, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `set_theme`, `gesture_multi_line_select`, `gesture_multi_word_select`, and `highlight_find` are never used [INFO] [stdout] --> src/rpc.rs:156:12 [INFO] [stdout] | [INFO] [stdout] 39 | impl Core { [INFO] [stdout] | --------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 156 | pub fn set_theme(&self, theme_name: &str) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 340 | pub fn gesture_multi_line_select(&self, view_id: &str, line: u64, col: u64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 352 | pub fn gesture_multi_word_select(&self, view_id: &str, line: u64, col: u64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 473 | pub fn highlight_find(&self, view_id: &str, visible: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `ScrollableDrawingAreaExt` is never used [INFO] [stdout] --> src/scrollable_drawing_area.rs:457:11 [INFO] [stdout] | [INFO] [stdout] 457 | pub trait ScrollableDrawingAreaExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `value_changed_signal_handler_trampoline` is never used [INFO] [stdout] --> src/scrollable_drawing_area.rs:573:22 [INFO] [stdout] | [INFO] [stdout] 573 | unsafe extern "C" fn value_changed_signal_handler_trampoline

( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Properties` is never used [INFO] [stdout] --> src/scrollable_drawing_area.rs:79:10 [INFO] [stdout] | [INFO] [stdout] 79 | enum Properties { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `scrollable_drawing_area_size_allocate` is never used [INFO] [stdout] --> src/scrollable_drawing_area.rs:398:30 [INFO] [stdout] | [INFO] [stdout] 398 | pub unsafe extern "C" fn scrollable_drawing_area_size_allocate( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/edit_view.rs:1134:39 [INFO] [stdout] | [INFO] [stdout] 1134 | core.paste(&view_id2, &text); [INFO] [stdout] | ^^^^^ help: change this to: `text` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i64` -> `i64`) [INFO] [stdout] --> src/linecache.rs:44:45 [INFO] [stdout] | [INFO] [stdout] 44 | 0 => style_span.start = c.as_i64().unwrap() as i64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `c.as_i64().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/channel/mod.rs:140:16 [INFO] [stdout] | [INFO] [stdout] 140 | observers: Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/channel/mod.rs:158:15 [INFO] [stdout] | [INFO] [stdout] 158 | callback: Rc>>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/channel/mod.rs:179:31 [INFO] [stdout] | [INFO] [stdout] 179 | fn get_callback(&self) -> Rc>>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/linecache.rs:106:21 [INFO] [stdout] | [INFO] [stdout] 106 | if let Some(&Some(ref line)) = self.lines.get(ix) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] = note: `#[warn(clippy::needless_borrowed_reference)]` on by default [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 106 - if let Some(&Some(ref line)) = self.lines.get(ix) { [INFO] [stdout] 106 + if let Some(Some(line)) = self.lines.get(ix) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: transmute used without annotations [INFO] [stdout] --> src/clipboard.rs:18:22 [INFO] [stdout] | [INFO] [stdout] 18 | Some(transmute(trampoline)), [INFO] [stdout] | ^^^^^^^^^ help: consider adding missing annotations: `transmute::<*mut libc::c_void, unsafe extern "C" fn(*mut gtk_sys::GtkClipboard, *const i8, *mut libc::c_void)>` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_transmute_annotations [INFO] [stdout] = note: `#[warn(clippy::missing_transmute_annotations)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/clipboard.rs:26:15 [INFO] [stdout] | [INFO] [stdout] 26 | let func: Box> = Box::new(Box::new(func)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: transmute from a pointer type (`*mut libc::c_void`) to a reference type (`&&dyn for<'a> std::ops::Fn(&'a gtk::Clipboard, std::string::String)`) [INFO] [stdout] --> src/clipboard.rs:35:55 [INFO] [stdout] | [INFO] [stdout] 35 | let f: &&(dyn Fn(&Clipboard, String) + 'static) = transmute(data); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `&*(data as *const &dyn for<'a> std::ops::Fn(&'a gtk::Clipboard, std::string::String))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ref [INFO] [stdout] = note: `#[warn(clippy::transmute_ptr_to_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: importing legacy numeric constants [INFO] [stdout] --> src/edit_view.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | use std::u32; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove this import [INFO] [stdout] = note: then `u32::` will resolve to the respective associated constant [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are explicitly cloning with `.map()` [INFO] [stdout] --> src/main_win.rs:174:35 [INFO] [stdout] | [INFO] [stdout] 174 | if let Some(theme_name) = state.themes.first().map(Clone::clone) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling the dedicated `cloned` method: `state.themes.first().cloned()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] = note: `#[warn(clippy::map_clone)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/edit_view.rs:207:53 [INFO] [stdout] | [INFO] [stdout] 207 | edit_view.borrow_mut().handle_line_draw(&ctx) [INFO] [stdout] | ^^^^ help: change this to: `ctx` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main_win.rs:286:30 [INFO] [stdout] | [INFO] [stdout] 286 | EditView::update(&ev, params); [INFO] [stdout] | ^^^ help: change this to: `ev` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/edit_view.rs:215:48 [INFO] [stdout] | [INFO] [stdout] 215 | edit_view.borrow_mut().handle_draw(&ctx) [INFO] [stdout] | ^^^^ help: change this to: `ctx` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `Iterator::last` on a `DoubleEndedIterator`; this will needlessly iterate the entire iterator [INFO] [stdout] --> src/edit_view.rs:314:28 [INFO] [stdout] | [INFO] [stdout] 314 | Some(ref f) => f [INFO] [stdout] | ____________________________^ [INFO] [stdout] 315 | | .split(::std::path::MAIN_SEPARATOR) [INFO] [stdout] 316 | | .last() [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_ended_iterator_last [INFO] [stdout] = note: `#[warn(clippy::double_ended_iterator_last)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 316 - .last() [INFO] [stdout] 316 + .next_back() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are explicitly cloning with `.map()` [INFO] [stdout] --> src/main_win.rs:459:26 [INFO] [stdout] | [INFO] [stdout] 459 | if let Some(w) = self.view_id_to_w.get(view_id).map(Clone::clone) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling the dedicated `cloned` method: `self.view_id_to_w.get(view_id).cloned()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main_win.rs:463:56 [INFO] [stdout] | [INFO] [stdout] 463 | let builder = Builder::new_from_string(&GLADE_SRC); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `GLADE_SRC` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f64` -> `f64`) [INFO] [stdout] --> src/edit_view.rs:385:24 [INFO] [stdout] | [INFO] [stdout] 385 | vadj.set_upper(text_height as f64); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `text_height` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/edit_view.rs:413:66 [INFO] [stdout] | [INFO] [stdout] 413 | let layout = self.create_layout_for_line(&pango_ctx, &main_state, line); [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `main_state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u64` -> `u64`) [INFO] [stdout] --> src/edit_view.rs:505:17 [INFO] [stdout] | [INFO] [stdout] 505 | first_line as u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `first_line` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/edit_view.rs:544:20 [INFO] [stdout] | [INFO] [stdout] 544 | if let Some(_) = self.line_cache.get_line(i) { [INFO] [stdout] | -------^^^^^^^------------------------------ help: try: `if self.line_cache.get_line(i).is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u64` -> `u64`) [INFO] [stdout] --> src/edit_view.rs:607:17 [INFO] [stdout] | [INFO] [stdout] 607 | first_line as u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `first_line` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/edit_view.rs:733:13 [INFO] [stdout] | [INFO] [stdout] 733 | &line.text() [INFO] [stdout] | ^^^^^^^^^^^^ help: change this to: `line.text()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/edit_view.rs:958:64 [INFO] [stdout] | [INFO] [stdout] 958 | self.controller.borrow().core().insert_newline(&view_id); [INFO] [stdout] | ^^^^^^^^ help: change this to: `view_id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/edit_view.rs:1134:39 [INFO] [stdout] | [INFO] [stdout] 1134 | core.paste(&view_id2, &text); [INFO] [stdout] | ^^^^^ help: change this to: `text` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i64` -> `i64`) [INFO] [stdout] --> src/linecache.rs:44:45 [INFO] [stdout] | [INFO] [stdout] 44 | 0 => style_span.start = c.as_i64().unwrap() as i64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `c.as_i64().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/linecache.rs:106:21 [INFO] [stdout] | [INFO] [stdout] 106 | if let Some(&Some(ref line)) = self.lines.get(ix) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] = note: `#[warn(clippy::needless_borrowed_reference)]` on by default [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 106 - if let Some(&Some(ref line)) = self.lines.get(ix) { [INFO] [stdout] 106 + if let Some(Some(line)) = self.lines.get(ix) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are explicitly cloning with `.map()` [INFO] [stdout] --> src/main_win.rs:174:35 [INFO] [stdout] | [INFO] [stdout] 174 | if let Some(theme_name) = state.themes.first().map(Clone::clone) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling the dedicated `cloned` method: `state.themes.first().cloned()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] = note: `#[warn(clippy::map_clone)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/rpc.rs:61:42 [INFO] [stdout] | [INFO] [stdout] 61 | handler.notification(&method, &msg["params"]); [INFO] [stdout] | ^^^^^^^ help: change this to: `method` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main_win.rs:286:30 [INFO] [stdout] | [INFO] [stdout] 286 | EditView::update(&ev, params); [INFO] [stdout] | ^^^ help: change this to: `ev` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are explicitly cloning with `.map()` [INFO] [stdout] --> src/main_win.rs:459:26 [INFO] [stdout] | [INFO] [stdout] 459 | if let Some(w) = self.view_id_to_w.get(view_id).map(Clone::clone) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling the dedicated `cloned` method: `self.view_id_to_w.get(view_id).cloned()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main_win.rs:463:56 [INFO] [stdout] | [INFO] [stdout] 463 | let builder = Builder::new_from_string(&GLADE_SRC); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `GLADE_SRC` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `0 as *const _` detected [INFO] [stdout] --> src/scrollable_drawing_area.rs:92:23 [INFO] [stdout] | [INFO] [stdout] 92 | parent_class: 0 as *const _, [INFO] [stdout] | ^^^^^^^^^^^^^ help: try: `std::ptr::null()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_ptr [INFO] [stdout] = note: `#[warn(clippy::zero_ptr)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `0 as *const _` detected [INFO] [stdout] --> src/scrollable_drawing_area.rs:93:21 [INFO] [stdout] | [INFO] [stdout] 93 | properties: 0 as *const _, [INFO] [stdout] | ^^^^^^^^^^^^^ help: try: `std::ptr::null()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_ptr [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/scrollable_drawing_area.rs:128:37 [INFO] [stdout] | [INFO] [stdout] 128 | fn value_changed_impl(&self) -> (()) { [INFO] [stdout] | ^^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/scrollable_drawing_area.rs:137:37 [INFO] [stdout] | [INFO] [stdout] 137 | fn emit_value_changed(&self) -> (()) { [INFO] [stdout] | ^^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/scrollable_drawing_area.rs:191:25 [INFO] [stdout] | [INFO] [stdout] 191 | return ptr as *mut ::gobject_sys::GObject; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 191 - return ptr as *mut ::gobject_sys::GObject; [INFO] [stdout] 191 + ptr as *mut ::gobject_sys::GObject [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/scrollable_drawing_area.rs:200:25 [INFO] [stdout] | [INFO] [stdout] 200 | return private.hscroll_policy.get(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 200 - return private.hscroll_policy.get(); [INFO] [stdout] 200 + private.hscroll_policy.get() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/scrollable_drawing_area.rs:210:25 [INFO] [stdout] | [INFO] [stdout] 210 | return ptr as *mut ::gobject_sys::GObject; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 210 - return ptr as *mut ::gobject_sys::GObject; [INFO] [stdout] 210 + ptr as *mut ::gobject_sys::GObject [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/scrollable_drawing_area.rs:219:25 [INFO] [stdout] | [INFO] [stdout] 219 | return private.vscroll_policy.get(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 219 - return private.vscroll_policy.get(); [INFO] [stdout] 219 + private.vscroll_policy.get() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant redefinition of a binding `obj` [INFO] [stdout] --> src/scrollable_drawing_area.rs:242:13 [INFO] [stdout] | [INFO] [stdout] 242 | let obj = obj; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: `obj` is initially defined here [INFO] [stdout] --> src/scrollable_drawing_area.rs:238:13 [INFO] [stdout] | [INFO] [stdout] 238 | obj: *mut gobject_ffi::GTypeInstance, [INFO] [stdout] | ^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_locals [INFO] [stdout] = note: `#[warn(clippy::redundant_locals)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/scrollable_drawing_area.rs:261:13 [INFO] [stdout] | [INFO] [stdout] 261 | / (*(PRIV.parent_class as *mut gobject_ffi::GObjectClass)) [INFO] [stdout] 262 | | .finalize [INFO] [stdout] 263 | | .map(|f| f(obj)); [INFO] [stdout] | |________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] = note: `#[warn(clippy::option_map_unit_fn)]` on by default [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 261 ~ if let Some(f) = (*(PRIV.parent_class as *mut gobject_ffi::GObjectClass)) [INFO] [stdout] 262 + .finalize { f(obj) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/scrollable_drawing_area.rs:291:10 [INFO] [stdout] | [INFO] [stdout] 291 | ) -> (()) { [INFO] [stdout] | ^^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting raw pointers to the same type and constness is unnecessary (`*mut scrollable_drawing_area::imp::ScrollableDrawingAreaFfi` -> `*mut scrollable_drawing_area::imp::ScrollableDrawingAreaFfi`) [INFO] [stdout] --> src/scrollable_drawing_area.rs:294:24 [INFO] [stdout] | [INFO] [stdout] 294 | let this = this as *mut ScrollableDrawingAreaFfi; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `this` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting raw pointers to the same type and constness is unnecessary (`*mut scrollable_drawing_area::imp::ScrollableDrawingAreaFfi` -> `*mut scrollable_drawing_area::imp::ScrollableDrawingAreaFfi`) [INFO] [stdout] --> src/scrollable_drawing_area.rs:305:24 [INFO] [stdout] | [INFO] [stdout] 305 | let this = this as *mut ScrollableDrawingAreaFfi; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `this` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> src/scrollable_drawing_area.rs:323:17 [INFO] [stdout] | [INFO] [stdout] 323 | / let mut properties = Vec::new(); [INFO] [stdout] 324 | | properties.push(ptr::null()); [INFO] [stdout] 325 | | properties.push(gobject_ffi::g_param_spec_object( [INFO] [stdout] 326 | | CString::new("hadjustment").unwrap().as_ptr(), [INFO] [stdout] ... | [INFO] [stdout] 353 | | gobject_ffi::G_PARAM_READWRITE, [INFO] [stdout] 354 | | )); [INFO] [stdout] | |___________________^ help: consider using the `vec![]` macro: `let mut properties = vec![..];` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_init_then_push [INFO] [stdout] = note: `#[warn(clippy::vec_init_then_push)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: importing legacy numeric constants [INFO] [stdout] --> src/scrollable_drawing_area.rs:412:13 [INFO] [stdout] | [INFO] [stdout] 412 | use std::u16; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove this import [INFO] [stdout] = note: then `u16::` will resolve to the respective associated constant [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/scrollable_drawing_area.rs:417:16 [INFO] [stdout] | [INFO] [stdout] 417 | if !(class_size <= u16::MAX as usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(class_size > u16::MAX as usize)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/scrollable_drawing_area.rs:423:16 [INFO] [stdout] | [INFO] [stdout] 423 | if !(instance_size <= u16::MAX as usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(instance_size > u16::MAX as usize)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/scrollable_drawing_area.rs:458:42 [INFO] [stdout] | [INFO] [stdout] 458 | fn connect_value_changed (()) + 'static>(&self, f: F) -> glib::SignalHandlerId; [INFO] [stdout] | ^^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/scrollable_drawing_area.rs:472:42 [INFO] [stdout] | [INFO] [stdout] 472 | fn connect_value_changed (()) + 'static>(&self, f: F) -> glib::SignalHandlerId { [INFO] [stdout] | ^^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/scrollable_drawing_area.rs:474:20 [INFO] [stdout] | [INFO] [stdout] 474 | let f: Box (()) + 'static>> = Box::new(Box::new(f)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/scrollable_drawing_area.rs:474:37 [INFO] [stdout] | [INFO] [stdout] 474 | let f: Box (()) + 'static>> = Box::new(Box::new(f)); [INFO] [stdout] | ^^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: transmute used without annotations [INFO] [stdout] --> src/scrollable_drawing_area.rs:478:22 [INFO] [stdout] | [INFO] [stdout] 478 | mem::transmute(value_changed_signal_handler_trampoline:: as usize), [INFO] [stdout] | ^^^^^^^^^ help: consider adding missing annotations: `transmute::>` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_transmute_annotations [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/scrollable_drawing_area.rs:576:2 [INFO] [stdout] | [INFO] [stdout] 576 | ) -> (()) [INFO] [stdout] | ^^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: transmute from a pointer type (`*mut libc::c_void`) to a reference type (`&&dyn for<'a> std::ops::Fn(&'a P)`) [INFO] [stdout] --> src/scrollable_drawing_area.rs:582:43 [INFO] [stdout] | [INFO] [stdout] 582 | let f: &&(Fn(&P) -> (()) + 'static) = mem::transmute(f); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `&*(f as *const &dyn for<'a> std::ops::Fn(&'a P))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/scrollable_drawing_area.rs:582:21 [INFO] [stdout] | [INFO] [stdout] 582 | let f: &&(Fn(&P) -> (()) + 'static) = mem::transmute(f); [INFO] [stdout] | ^^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / self.sender.send(CoreMsg::Notification { [INFO] [stdout] 108 | | method: method2, [INFO] [stdout] 109 | | params: params2, [INFO] [stdout] 110 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 107 | let _ = self.sender.send(CoreMsg::Notification { [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/proto.rs:2:54 [INFO] [stdout] | [INFO] [stdout] 2 | #[derive(Clone, PartialEq, Eq, Default, Hash, Debug, Serialize, Deserialize)] [INFO] [stdout] | ^-------- [INFO] [stdout] | | [INFO] [stdout] | `Serialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Style` [INFO] [stdout] ... [INFO] [stdout] 8 | pub struct Style { [INFO] [stdout] | ----- `Style` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: `#[warn(non_local_definitions)]` on by default [INFO] [stdout] = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/proto.rs:2:65 [INFO] [stdout] | [INFO] [stdout] 2 | #[derive(Clone, PartialEq, Eq, Default, Hash, Debug, Serialize, Deserialize)] [INFO] [stdout] | ^---------- [INFO] [stdout] | | [INFO] [stdout] | `Deserialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Style` [INFO] [stdout] ... [INFO] [stdout] 8 | pub struct Style { [INFO] [stdout] | ----- `Style` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/proto.rs:26:45 [INFO] [stdout] | [INFO] [stdout] 26 | #[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] [INFO] [stdout] | ^-------- [INFO] [stdout] | | [INFO] [stdout] | `Serialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Color` [INFO] [stdout] 27 | pub struct Color { [INFO] [stdout] | ----- `Color` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/proto.rs:26:56 [INFO] [stdout] | [INFO] [stdout] 26 | #[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] [INFO] [stdout] | ^---------- [INFO] [stdout] | | [INFO] [stdout] | `Deserialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Color` [INFO] [stdout] 27 | pub struct Color { [INFO] [stdout] | ----- `Color` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/proto.rs:38:24 [INFO] [stdout] | [INFO] [stdout] 38 | #[derive(Clone, Debug, Serialize, Deserialize)] [INFO] [stdout] | ^-------- [INFO] [stdout] | | [INFO] [stdout] | `Serialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_UnderlineOption` [INFO] [stdout] 39 | pub enum UnderlineOption { [INFO] [stdout] | --------------- `UnderlineOption` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/proto.rs:38:35 [INFO] [stdout] | [INFO] [stdout] 38 | #[derive(Clone, Debug, Serialize, Deserialize)] [INFO] [stdout] | ^---------- [INFO] [stdout] | | [INFO] [stdout] | `Deserialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_UnderlineOption` [INFO] [stdout] 39 | pub enum UnderlineOption { [INFO] [stdout] | --------------- `UnderlineOption` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/proto.rs:49:33 [INFO] [stdout] | [INFO] [stdout] 49 | #[derive(Clone, Debug, Default, Serialize, Deserialize)] [INFO] [stdout] | ^-------- [INFO] [stdout] | | [INFO] [stdout] | `Serialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_ThemeSettings` [INFO] [stdout] 50 | pub struct ThemeSettings { [INFO] [stdout] | ------------- `ThemeSettings` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/proto.rs:49:44 [INFO] [stdout] | [INFO] [stdout] 49 | #[derive(Clone, Debug, Default, Serialize, Deserialize)] [INFO] [stdout] | ^---------- [INFO] [stdout] | | [INFO] [stdout] | `Deserialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_ThemeSettings` [INFO] [stdout] 50 | pub struct ThemeSettings { [INFO] [stdout] | ------------- `ThemeSettings` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/scrollable_drawing_area.rs:478:80 [INFO] [stdout] | [INFO] [stdout] 478 | mem::transmute(value_changed_signal_handler_trampoline:: as usize), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(function_casts_as_integer)]` on by default [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 478 | mem::transmute(value_changed_signal_handler_trampoline:: as *const () as usize), [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/rpc.rs:61:42 [INFO] [stdout] | [INFO] [stdout] 61 | handler.notification(&method, &msg["params"]); [INFO] [stdout] | ^^^^^^^ help: change this to: `method` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `0 as *const _` detected [INFO] [stdout] --> src/scrollable_drawing_area.rs:92:23 [INFO] [stdout] | [INFO] [stdout] 92 | parent_class: 0 as *const _, [INFO] [stdout] | ^^^^^^^^^^^^^ help: try: `std::ptr::null()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_ptr [INFO] [stdout] = note: `#[warn(clippy::zero_ptr)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `0 as *const _` detected [INFO] [stdout] --> src/scrollable_drawing_area.rs:93:21 [INFO] [stdout] | [INFO] [stdout] 93 | properties: 0 as *const _, [INFO] [stdout] | ^^^^^^^^^^^^^ help: try: `std::ptr::null()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_ptr [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/scrollable_drawing_area.rs:128:37 [INFO] [stdout] | [INFO] [stdout] 128 | fn value_changed_impl(&self) -> (()) { [INFO] [stdout] | ^^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/scrollable_drawing_area.rs:137:37 [INFO] [stdout] | [INFO] [stdout] 137 | fn emit_value_changed(&self) -> (()) { [INFO] [stdout] | ^^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/scrollable_drawing_area.rs:191:25 [INFO] [stdout] | [INFO] [stdout] 191 | return ptr as *mut ::gobject_sys::GObject; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 191 - return ptr as *mut ::gobject_sys::GObject; [INFO] [stdout] 191 + ptr as *mut ::gobject_sys::GObject [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/scrollable_drawing_area.rs:200:25 [INFO] [stdout] | [INFO] [stdout] 200 | return private.hscroll_policy.get(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 200 - return private.hscroll_policy.get(); [INFO] [stdout] 200 + private.hscroll_policy.get() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/scrollable_drawing_area.rs:210:25 [INFO] [stdout] | [INFO] [stdout] 210 | return ptr as *mut ::gobject_sys::GObject; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 210 - return ptr as *mut ::gobject_sys::GObject; [INFO] [stdout] 210 + ptr as *mut ::gobject_sys::GObject [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/scrollable_drawing_area.rs:219:25 [INFO] [stdout] | [INFO] [stdout] 219 | return private.vscroll_policy.get(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 219 - return private.vscroll_policy.get(); [INFO] [stdout] 219 + private.vscroll_policy.get() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant redefinition of a binding `obj` [INFO] [stdout] --> src/scrollable_drawing_area.rs:242:13 [INFO] [stdout] | [INFO] [stdout] 242 | let obj = obj; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: `obj` is initially defined here [INFO] [stdout] --> src/scrollable_drawing_area.rs:238:13 [INFO] [stdout] | [INFO] [stdout] 238 | obj: *mut gobject_ffi::GTypeInstance, [INFO] [stdout] | ^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_locals [INFO] [stdout] = note: `#[warn(clippy::redundant_locals)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/scrollable_drawing_area.rs:261:13 [INFO] [stdout] | [INFO] [stdout] 261 | / (*(PRIV.parent_class as *mut gobject_ffi::GObjectClass)) [INFO] [stdout] 262 | | .finalize [INFO] [stdout] 263 | | .map(|f| f(obj)); [INFO] [stdout] | |________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] = note: `#[warn(clippy::option_map_unit_fn)]` on by default [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 261 ~ if let Some(f) = (*(PRIV.parent_class as *mut gobject_ffi::GObjectClass)) [INFO] [stdout] 262 + .finalize { f(obj) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/scrollable_drawing_area.rs:291:10 [INFO] [stdout] | [INFO] [stdout] 291 | ) -> (()) { [INFO] [stdout] | ^^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting raw pointers to the same type and constness is unnecessary (`*mut scrollable_drawing_area::imp::ScrollableDrawingAreaFfi` -> `*mut scrollable_drawing_area::imp::ScrollableDrawingAreaFfi`) [INFO] [stdout] --> src/scrollable_drawing_area.rs:294:24 [INFO] [stdout] | [INFO] [stdout] 294 | let this = this as *mut ScrollableDrawingAreaFfi; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `this` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting raw pointers to the same type and constness is unnecessary (`*mut scrollable_drawing_area::imp::ScrollableDrawingAreaFfi` -> `*mut scrollable_drawing_area::imp::ScrollableDrawingAreaFfi`) [INFO] [stdout] --> src/scrollable_drawing_area.rs:305:24 [INFO] [stdout] | [INFO] [stdout] 305 | let this = this as *mut ScrollableDrawingAreaFfi; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `this` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> src/scrollable_drawing_area.rs:323:17 [INFO] [stdout] | [INFO] [stdout] 323 | / let mut properties = Vec::new(); [INFO] [stdout] 324 | | properties.push(ptr::null()); [INFO] [stdout] 325 | | properties.push(gobject_ffi::g_param_spec_object( [INFO] [stdout] 326 | | CString::new("hadjustment").unwrap().as_ptr(), [INFO] [stdout] ... | [INFO] [stdout] 353 | | gobject_ffi::G_PARAM_READWRITE, [INFO] [stdout] 354 | | )); [INFO] [stdout] | |___________________^ help: consider using the `vec![]` macro: `let mut properties = vec![..];` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_init_then_push [INFO] [stdout] = note: `#[warn(clippy::vec_init_then_push)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: importing legacy numeric constants [INFO] [stdout] --> src/scrollable_drawing_area.rs:412:13 [INFO] [stdout] | [INFO] [stdout] 412 | use std::u16; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove this import [INFO] [stdout] = note: then `u16::` will resolve to the respective associated constant [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/scrollable_drawing_area.rs:417:16 [INFO] [stdout] | [INFO] [stdout] 417 | if !(class_size <= u16::MAX as usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(class_size > u16::MAX as usize)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/scrollable_drawing_area.rs:423:16 [INFO] [stdout] | [INFO] [stdout] 423 | if !(instance_size <= u16::MAX as usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(instance_size > u16::MAX as usize)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/scrollable_drawing_area.rs:458:42 [INFO] [stdout] | [INFO] [stdout] 458 | fn connect_value_changed (()) + 'static>(&self, f: F) -> glib::SignalHandlerId; [INFO] [stdout] | ^^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/scrollable_drawing_area.rs:472:42 [INFO] [stdout] | [INFO] [stdout] 472 | fn connect_value_changed (()) + 'static>(&self, f: F) -> glib::SignalHandlerId { [INFO] [stdout] | ^^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/scrollable_drawing_area.rs:474:20 [INFO] [stdout] | [INFO] [stdout] 474 | let f: Box (()) + 'static>> = Box::new(Box::new(f)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/scrollable_drawing_area.rs:474:37 [INFO] [stdout] | [INFO] [stdout] 474 | let f: Box (()) + 'static>> = Box::new(Box::new(f)); [INFO] [stdout] | ^^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: transmute used without annotations [INFO] [stdout] --> src/scrollable_drawing_area.rs:478:22 [INFO] [stdout] | [INFO] [stdout] 478 | mem::transmute(value_changed_signal_handler_trampoline:: as usize), [INFO] [stdout] | ^^^^^^^^^ help: consider adding missing annotations: `transmute::>` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_transmute_annotations [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/scrollable_drawing_area.rs:576:2 [INFO] [stdout] | [INFO] [stdout] 576 | ) -> (()) [INFO] [stdout] | ^^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: transmute from a pointer type (`*mut libc::c_void`) to a reference type (`&&dyn for<'a> std::ops::Fn(&'a P)`) [INFO] [stdout] --> src/scrollable_drawing_area.rs:582:43 [INFO] [stdout] | [INFO] [stdout] 582 | let f: &&(Fn(&P) -> (()) + 'static) = mem::transmute(f); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `&*(f as *const &dyn for<'a> std::ops::Fn(&'a P))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/scrollable_drawing_area.rs:582:21 [INFO] [stdout] | [INFO] [stdout] 582 | let f: &&(Fn(&P) -> (()) + 'static) = mem::transmute(f); [INFO] [stdout] | ^^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/main.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 107 | / self.sender.send(CoreMsg::Notification { [INFO] [stdout] 108 | | method: method2, [INFO] [stdout] 109 | | params: params2, [INFO] [stdout] 110 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 107 | let _ = self.sender.send(CoreMsg::Notification { [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/proto.rs:2:54 [INFO] [stdout] | [INFO] [stdout] 2 | #[derive(Clone, PartialEq, Eq, Default, Hash, Debug, Serialize, Deserialize)] [INFO] [stdout] | ^-------- [INFO] [stdout] | | [INFO] [stdout] | `Serialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Style` [INFO] [stdout] ... [INFO] [stdout] 8 | pub struct Style { [INFO] [stdout] | ----- `Style` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: `#[warn(non_local_definitions)]` on by default [INFO] [stdout] = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/proto.rs:2:65 [INFO] [stdout] | [INFO] [stdout] 2 | #[derive(Clone, PartialEq, Eq, Default, Hash, Debug, Serialize, Deserialize)] [INFO] [stdout] | ^---------- [INFO] [stdout] | | [INFO] [stdout] | `Deserialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Style` [INFO] [stdout] ... [INFO] [stdout] 8 | pub struct Style { [INFO] [stdout] | ----- `Style` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/proto.rs:26:45 [INFO] [stdout] | [INFO] [stdout] 26 | #[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] [INFO] [stdout] | ^-------- [INFO] [stdout] | | [INFO] [stdout] | `Serialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Color` [INFO] [stdout] 27 | pub struct Color { [INFO] [stdout] | ----- `Color` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/proto.rs:26:56 [INFO] [stdout] | [INFO] [stdout] 26 | #[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] [INFO] [stdout] | ^---------- [INFO] [stdout] | | [INFO] [stdout] | `Deserialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Color` [INFO] [stdout] 27 | pub struct Color { [INFO] [stdout] | ----- `Color` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/proto.rs:38:24 [INFO] [stdout] | [INFO] [stdout] 38 | #[derive(Clone, Debug, Serialize, Deserialize)] [INFO] [stdout] | ^-------- [INFO] [stdout] | | [INFO] [stdout] | `Serialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_UnderlineOption` [INFO] [stdout] 39 | pub enum UnderlineOption { [INFO] [stdout] | --------------- `UnderlineOption` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/proto.rs:38:35 [INFO] [stdout] | [INFO] [stdout] 38 | #[derive(Clone, Debug, Serialize, Deserialize)] [INFO] [stdout] | ^---------- [INFO] [stdout] | | [INFO] [stdout] | `Deserialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_UnderlineOption` [INFO] [stdout] 39 | pub enum UnderlineOption { [INFO] [stdout] | --------------- `UnderlineOption` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/proto.rs:49:33 [INFO] [stdout] | [INFO] [stdout] 49 | #[derive(Clone, Debug, Default, Serialize, Deserialize)] [INFO] [stdout] | ^-------- [INFO] [stdout] | | [INFO] [stdout] | `Serialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_ThemeSettings` [INFO] [stdout] 50 | pub struct ThemeSettings { [INFO] [stdout] | ------------- `ThemeSettings` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/proto.rs:49:44 [INFO] [stdout] | [INFO] [stdout] 49 | #[derive(Clone, Debug, Default, Serialize, Deserialize)] [INFO] [stdout] | ^---------- [INFO] [stdout] | | [INFO] [stdout] | `Deserialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_ThemeSettings` [INFO] [stdout] 50 | pub struct ThemeSettings { [INFO] [stdout] | ------------- `ThemeSettings` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/scrollable_drawing_area.rs:478:80 [INFO] [stdout] | [INFO] [stdout] 478 | mem::transmute(value_changed_signal_handler_trampoline:: as usize), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(function_casts_as_integer)]` on by default [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 478 | mem::transmute(value_changed_signal_handler_trampoline:: as *const () as usize), [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 58.14s [INFO] running `Command { std: "docker" "inspect" "346b7373b2096b001828ce5825df3bd60eb52f9338316d76b69d1525d60ee71c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "346b7373b2096b001828ce5825df3bd60eb52f9338316d76b69d1525d60ee71c", kill_on_drop: false }` [INFO] [stdout] 346b7373b2096b001828ce5825df3bd60eb52f9338316d76b69d1525d60ee71c