[INFO] cloning repository https://github.com/TW0hank0/positive_mahjong [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/TW0hank0/positive_mahjong" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTW0hank0%2Fpositive_mahjong", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTW0hank0%2Fpositive_mahjong'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 827a7b48a366c790b9842a45484dddb04af09ac6 [INFO] linting TW0hank0/positive_mahjong against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTW0hank0%2Fpositive_mahjong" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'... [INFO] [stderr] done. [INFO] removed /workspace/builds/worker-3-tc1/source/.cargo/config.toml [INFO] started tweaking git repo https://github.com/TW0hank0/positive_mahjong [INFO] finished tweaking git repo https://github.com/TW0hank0/positive_mahjong [INFO] tweaked toml for git repo https://github.com/TW0hank0/positive_mahjong written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/TW0hank0/positive_mahjong 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/TW0hank0/positive_mahjong 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] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded futures-core v0.3.32 [INFO] [stderr] Downloaded futures-sink v0.3.32 [INFO] [stderr] Downloaded futures-macro v0.3.32 [INFO] [stderr] Downloaded cfg_aliases v0.2.1 [INFO] [stderr] Downloaded dunce v1.0.5 [INFO] [stderr] Downloaded byteorder-lite v0.1.0 [INFO] [stderr] Downloaded getset v0.1.6 [INFO] [stderr] Downloaded smol_str v0.3.5 [INFO] [stderr] Downloaded quick-error v2.0.1 [INFO] [stderr] Downloaded unicode-vo v0.1.0 [INFO] [stderr] Downloaded pico-args v0.5.0 [INFO] [stderr] Downloaded fax v0.2.6 [INFO] [stderr] Downloaded scoped-tls-hkt v0.1.5 [INFO] [stderr] Downloaded raw-window-handle v0.6.2 [INFO] [stderr] Downloaded pin-project-internal v1.1.11 [INFO] [stderr] Downloaded endi v1.1.1 [INFO] [stderr] Downloaded gethostname v1.1.0 [INFO] [stderr] Downloaded chrono v0.4.44 [INFO] [stderr] Downloaded libredox v0.1.14 [INFO] [stderr] Downloaded sctk-adwaita v0.10.1 [INFO] [stderr] Downloaded objc2-cloud-kit v0.2.2 [INFO] [stderr] Downloaded cgl v0.3.2 [INFO] [stderr] Downloaded udev v0.9.3 [INFO] [stderr] Downloaded gbm-sys v0.4.0 [INFO] [stderr] Downloaded xkbcommon v0.9.0 [INFO] [stderr] Downloaded objc2-core-data v0.3.2 [INFO] [stderr] Downloaded error-code v3.3.2 [INFO] [stderr] Downloaded clipboard-win v5.4.1 [INFO] [stderr] Downloaded objc2-metal v0.2.2 [INFO] [stderr] Downloaded android-build v0.1.3 [INFO] [stderr] Downloaded atspi v0.29.0 [INFO] [stderr] Downloaded objc2-app-kit v0.2.2 [INFO] [stderr] Downloaded i-slint-backend-android-activity v1.15.1 [INFO] [stderr] Downloaded objc2 v0.5.2 [INFO] [stderr] Downloaded kurbo v0.12.0 [INFO] [stderr] Downloaded objc2-foundation v0.2.2 [INFO] [stderr] Downloaded x11rb-protocol v0.13.2 [INFO] [stderr] Downloaded rustix v0.38.44 [INFO] [stderr] Downloaded drm v0.14.2 [INFO] [stderr] Downloaded accesskit_windows v0.30.0 [INFO] [stderr] Downloaded i-slint-renderer-skia v1.15.1 [INFO] [stderr] Downloaded tiff v0.10.3 [INFO] [stderr] Downloaded muda v0.17.1 [INFO] [stderr] Downloaded objc2-cloud-kit v0.3.2 [INFO] [stderr] Downloaded android-activity v0.6.0 [INFO] [stderr] Downloaded write-fonts v0.43.0 [INFO] [stderr] Downloaded glutin v0.32.3 [INFO] [stderr] Downloaded ndk v0.8.0 [INFO] [stderr] Downloaded regex-syntax v0.8.10 [INFO] [stderr] Downloaded skia-bindings v0.90.0 [INFO] [stderr] Downloaded itertools v0.13.0 [INFO] [stderr] Downloaded smithay-client-toolkit v0.20.0 [INFO] [stderr] Downloaded regex v1.12.3 [INFO] [stderr] Downloaded i-slint-backend-qt v1.15.1 [INFO] [stderr] Downloaded atspi-common v0.13.0 [INFO] [stderr] Downloaded objc2-metal v0.3.2 [INFO] [stderr] Downloaded calloop v0.14.4 [INFO] [stderr] Downloaded android-activity v0.5.2 [INFO] [stderr] Downloaded bindgen v0.72.1 [INFO] [stderr] Downloaded quick-xml v0.38.4 [INFO] [stderr] Downloaded ndk-sys v0.5.0+25.2.9519653 [INFO] [stderr] Downloaded objc2-app-kit v0.3.2 [INFO] [stderr] Downloaded skia-safe v0.90.0 [INFO] [stderr] Downloaded nix v0.30.1 [INFO] [stderr] Downloaded ndk-sys v0.6.0+11769913 [INFO] [stderr] Downloaded objc2-ui-kit v0.3.2 [INFO] [stderr] Downloaded aws-lc-sys v0.37.1 [INFO] [stderr] Downloaded khronos_api v3.1.0 [INFO] [stderr] Downloaded regex-automata v0.4.14 [INFO] [stderr] Downloaded orbclient v0.3.50 [INFO] [stderr] Downloaded objc2-core-image v0.3.2 [INFO] [stderr] Downloaded rav1e v0.8.1 [INFO] [stderr] Downloaded accesskit_unix v0.18.0 [INFO] [stderr] Downloaded accesskit v0.22.0 [INFO] [stderr] Downloaded accesskit_consumer v0.32.0 [INFO] [stderr] Downloaded accesskit_winit v0.30.0 [INFO] [stderr] Downloaded wayland-protocols-experimental v20250721.0.1 [INFO] [stderr] Downloaded smithay-clipboard v0.7.3 [INFO] [stderr] Downloaded ndk v0.9.0 [INFO] [stderr] Downloaded pxfm v0.1.27 [INFO] [stderr] Downloaded drm-sys v0.8.1 [INFO] [stderr] Downloaded drm-ffi v0.9.1 [INFO] [stderr] Downloaded drm-fourcc v2.2.0 [INFO] [stderr] Downloaded calloop-wayland-source v0.4.1 [INFO] [stderr] Downloaded input-sys v1.18.0 [INFO] [stderr] Downloaded copypasta v0.10.2 [INFO] [stderr] Downloaded futures v0.3.32 [INFO] [stderr] Downloaded x11-clipboard v0.9.3 [INFO] [stderr] Downloaded futures-executor v0.3.32 [INFO] [stderr] Downloaded keyboard-types v0.7.0 [INFO] [stderr] Downloaded objc2-core-video v0.3.2 [INFO] [stderr] Downloaded objc2-quartz-core v0.3.2 [INFO] [stderr] Downloaded softbuffer v0.4.8 [INFO] [stderr] Downloaded windows-future v0.3.2 [INFO] [stderr] Downloaded core-graphics v0.23.2 [INFO] [stderr] Downloaded calloop v0.13.0 [INFO] [stderr] Downloaded x11rb v0.13.2 [INFO] [stderr] Downloaded wayland-protocols-misc v0.3.10 [INFO] [stderr] Downloaded glutin-winit v0.5.0 [INFO] [stderr] Downloaded android-properties v0.2.2 [INFO] [stderr] Downloaded foreign-types-macros v0.2.3 [INFO] [stderr] Downloaded foreign-types v0.5.0 [INFO] [stderr] Downloaded dpi v0.1.2 [INFO] [stderr] Downloaded objc2-ui-kit v0.2.2 [INFO] [stderr] Downloaded windows-numerics v0.3.1 [INFO] [stderr] Downloaded foreign-types-shared v0.3.1 [INFO] [stderr] Downloaded i-slint-backend-linuxkms v1.15.1 [INFO] [stderr] Downloaded qttypes v0.2.12 [INFO] [stderr] Downloaded tiny-xlib v0.2.4 [INFO] [stderr] Downloaded windows-collections v0.3.2 [INFO] [stderr] Downloaded windows-threading v0.2.1 [INFO] [stderr] Downloaded core-graphics-types v0.1.3 [INFO] [stderr] Downloaded quick-xml v0.39.2 [INFO] [stderr] Downloaded gbm v0.18.0 [INFO] [stderr] Downloaded io-lifetimes v1.0.11 [INFO] [stderr] Downloaded input v0.9.1 [INFO] [stderr] Downloaded cpp_macros v0.5.10 [INFO] [stderr] Downloaded cpp v0.5.10 [INFO] [stderr] Downloaded linux-raw-sys v0.4.15 [INFO] [stderr] Downloaded cpp_common v0.5.10 [INFO] [stderr] Downloaded cpp_build v0.5.10 [INFO] [stderr] Downloaded accesskit_macos v0.23.0 [INFO] [stderr] Downloaded accesskit_atspi_common v0.15.0 [INFO] [stderr] Downloaded zbus_xml v5.1.0 [INFO] [stderr] Downloaded zbus-lockstep-macros v0.5.2 [INFO] [stderr] Downloaded atspi-proxies v0.13.0 [INFO] [stderr] Downloaded xml-rs v0.8.28 [INFO] [stderr] Downloaded clang-sys v1.8.1 [INFO] [stderr] Downloaded tar v0.4.44 [INFO] [stderr] Downloaded smithay-client-toolkit v0.19.2 [INFO] [stderr] Downloaded wayland-protocols v0.32.10 [INFO] [stderr] Downloaded zbus-lockstep v0.5.2 [INFO] [stderr] Downloaded gl_generator v0.14.0 [INFO] [stderr] Downloaded raw-window-metal v1.1.0 [INFO] [stderr] Downloaded filetime v0.2.27 [INFO] [stderr] Downloaded xattr v1.6.1 [INFO] [stderr] Downloaded toml v0.9.12+spec-1.1.0 [INFO] [stderr] Downloaded ctor-lite v0.1.2 [INFO] [stderr] Downloaded wayland-backend v0.3.12 [INFO] [stderr] Downloaded wayland-protocols-plasma v0.3.10 [INFO] [stderr] Downloaded x11-dl v2.21.0 [INFO] [stderr] Downloaded xkeysym v0.2.1 [INFO] [stderr] Downloaded read-fonts v0.35.0 [INFO] [stderr] Downloaded i-slint-common v1.15.1 [INFO] [stderr] Downloaded av-scenechange v0.14.1 [INFO] [stderr] Downloaded glutin_egl_sys v0.7.1 [INFO] [stderr] Downloaded glutin_glx_sys v0.6.1 [INFO] [stderr] Downloaded glutin_wgl_sys v0.6.1 [INFO] [stderr] Downloaded objc2-core-data v0.2.2 [INFO] [stderr] Downloaded objc2-core-image v0.2.2 [INFO] [stderr] Downloaded objc2-quartz-core v0.2.2 [INFO] [stderr] Downloaded objc2-symbols v0.2.2 [INFO] [stderr] Downloaded objc2-contacts v0.2.2 [INFO] [stderr] Downloaded block2 v0.5.1 [INFO] [stderr] Downloaded objc-sys v0.3.5 [INFO] [stderr] Downloaded objc2-foundation v0.3.2 [INFO] [stderr] Downloaded image v0.25.9 [INFO] [stderr] Downloaded objc2-link-presentation v0.2.2 [INFO] [stderr] Downloaded objc2-uniform-type-identifiers v0.2.2 [INFO] [stderr] Downloaded objc2-core-location v0.2.2 [INFO] [stderr] Downloaded objc2-user-notifications v0.2.2 [INFO] [stderr] Downloaded plain v0.2.3 [INFO] [stderr] Downloaded redox_syscall v0.7.3 [INFO] [stderr] Downloaded winit v0.30.13 [INFO] [stderr] Downloaded objc2 v0.6.3 [INFO] [stderr] Downloaded wayland-protocols-wlr v0.3.10 [INFO] [stderr] Downloaded zbus v5.14.0 [INFO] [stderr] Downloaded femtovg v0.20.4 [INFO] [stderr] Downloaded ttf-parser v0.21.1 [INFO] [stderr] Downloaded objc2-core-foundation v0.3.2 [INFO] [stderr] Downloaded exr v1.74.0 [INFO] [stderr] Downloaded moxcms v0.7.11 [INFO] [stderr] Downloaded ab_glyph_rasterizer v0.1.10 [INFO] [stderr] Downloaded owned_ttf_parser v0.25.1 [INFO] [stderr] Downloaded ab_glyph v0.2.32 [INFO] [stderr] Downloaded calloop-wayland-source v0.3.0 [INFO] [stderr] Downloaded cursor-icon v1.2.0 [INFO] [stderr] Downloaded wayland-csd-frame v0.3.0 [INFO] [stderr] Downloaded xcursor v0.3.10 [INFO] [stderr] Downloaded wayland-cursor v0.31.12 [INFO] [stderr] Downloaded smol_str v0.2.2 [INFO] [stderr] Downloaded wayland-sys v0.31.8 [INFO] [stderr] Downloaded wayland-client v0.31.12 [INFO] [stderr] Downloaded wayland-scanner v0.31.9 [INFO] [stderr] Downloaded as-raw-xcb-connection v1.0.1 [INFO] [stderr] Downloaded zvariant v5.10.0 [INFO] [stderr] Downloaded i-slint-backend-winit v1.15.1 [INFO] [stderr] Downloaded glow v0.16.0 [INFO] [stderr] Downloaded harfrust v0.3.2 [INFO] [stderr] Downloaded fontdue v0.9.3 [INFO] [stderr] Downloaded png v0.18.1 [INFO] [stderr] Downloaded libfuzzer-sys v0.4.12 [INFO] [stderr] Downloaded i-slint-compiler v1.15.1 [INFO] [stderr] Downloaded swash v0.2.6 [INFO] [stderr] Downloaded i-slint-core v1.15.1 [INFO] [stderr] Downloaded skrifa v0.37.0 [INFO] [stderr] Downloaded i-slint-renderer-software v1.15.1 [INFO] [stderr] Downloaded objc2-core-text v0.3.2 [INFO] [stderr] Downloaded zune-jpeg v0.4.21 [INFO] [stderr] Downloaded tiny-skia v0.11.4 [INFO] [stderr] Downloaded rustybuzz v0.20.1 [INFO] [stderr] Downloaded unicode-width v0.2.2 [INFO] [stderr] Downloaded rustls v0.20.9 [INFO] [stderr] Downloaded zerocopy v0.8.39 [INFO] [stderr] Downloaded quinn-proto v0.11.13 [INFO] [stderr] Downloaded aws-lc-rs v1.15.4 [INFO] [stderr] Downloaded syn v2.0.116 [INFO] [stderr] Downloaded xkbcommon-dl v0.4.2 [INFO] [stderr] Downloaded async-broadcast v0.7.2 [INFO] [stderr] Downloaded async-executor v1.14.0 [INFO] [stderr] Downloaded async-recursion v1.1.1 [INFO] [stderr] Downloaded piper v0.2.5 [INFO] [stderr] Downloaded ordered-stream v0.2.0 [INFO] [stderr] Downloaded serde_repr v0.1.20 [INFO] [stderr] Downloaded tempfile v3.25.0 [INFO] [stderr] Downloaded uds_windows v1.2.0 [INFO] [stderr] Downloaded uuid v1.22.0 [INFO] [stderr] Downloaded zbus_macros v5.14.0 [INFO] [stderr] Downloaded zbus_names v4.3.1 [INFO] [stderr] Downloaded zvariant_derive v5.10.0 [INFO] [stderr] Downloaded i-slint-backend-selector v1.15.1 [INFO] [stderr] Downloaded auto_enums v0.8.8 [INFO] [stderr] Downloaded parley v0.7.0 [INFO] [stderr] Downloaded pulldown-cmark v0.13.1 [INFO] [stderr] Downloaded slint v1.15.1 [INFO] [stderr] Downloaded annotate-snippets v0.12.12 [INFO] [stderr] Downloaded memmap2 v0.9.10 [INFO] [stderr] Downloaded objc2-core-graphics v0.3.2 [INFO] [stderr] Downloaded dispatch2 v0.3.1 [INFO] [stderr] Downloaded fontique v0.7.0 [INFO] [stderr] Downloaded qoi v0.4.1 [INFO] [stderr] Downloaded imgref v1.12.0 [INFO] [stderr] Downloaded core2 v0.4.0 [INFO] [stderr] Downloaded bitstream-io v4.9.0 [INFO] [stderr] Downloaded built v0.8.0 [INFO] [stderr] Downloaded half v2.7.1 [INFO] [stderr] Downloaded lyon_geom v1.0.18 [INFO] [stderr] Downloaded lyon_path v1.0.16 [INFO] [stderr] Downloaded ttf-parser v0.25.1 [INFO] [stderr] Downloaded kurbo v0.13.0 [INFO] [stderr] Downloaded usvg v0.46.0 [INFO] [stderr] Downloaded webpki-root-certs v1.0.6 [INFO] [stderr] Downloaded iri-string v0.7.10 [INFO] [stderr] Downloaded tower-http v0.6.8 [INFO] [stderr] Downloaded futures-util v0.3.32 [INFO] [stderr] Downloaded portable-atomic v1.13.1 [INFO] [stderr] Downloaded zvariant_utils v3.3.0 [INFO] [stderr] Downloaded i-slint-renderer-femtovg v1.15.1 [INFO] [stderr] Downloaded derive_utils v0.15.1 [INFO] [stderr] Downloaded iana-time-zone v0.1.65 [INFO] [stderr] Downloaded clru v0.6.3 [INFO] [stderr] Downloaded htmlparser v0.2.1 [INFO] [stderr] Downloaded i-slint-core-macros v1.15.1 [INFO] [stderr] Downloaded lyon_algorithms v1.0.16 [INFO] [stderr] Downloaded yazi v0.2.1 [INFO] [stderr] Downloaded pin-project v1.1.11 [INFO] [stderr] Downloaded slint-macros v1.15.1 [INFO] [stderr] Downloaded vtable v0.3.0 [INFO] [stderr] Downloaded block2 v0.6.2 [INFO] [stderr] Downloaded objc2-encode v4.1.0 [INFO] [stderr] Downloaded font-types v0.10.1 [INFO] [stderr] Downloaded windows-core v0.58.0 [INFO] [stderr] Downloaded zune-inflate v0.2.54 [INFO] [stderr] Downloaded av1-grain v0.2.5 [INFO] [stderr] Downloaded noop_proc_macro v0.3.0 [INFO] [stderr] Downloaded num-derive v0.4.2 [INFO] [stderr] Downloaded paste v1.0.15 [INFO] [stderr] Downloaded v_frame v0.3.9 [INFO] [stderr] Downloaded ravif v0.12.0 [INFO] [stderr] Downloaded linked_hash_set v0.1.6 [INFO] [stderr] Downloaded lyon_extra v1.0.3 [INFO] [stderr] Downloaded num_enum_derive v0.7.5 [INFO] [stderr] Downloaded png v0.17.16 [INFO] [stderr] Downloaded flate2 v1.1.9 [INFO] [stderr] Downloaded roxmltree v0.21.1 [INFO] [stderr] Downloaded euclid v0.22.13 [INFO] [stderr] Downloaded bytemuck v1.25.0 [INFO] [stderr] Downloaded zune-jpeg v0.5.12 [INFO] [stderr] Downloaded resvg v0.46.0 [INFO] [stderr] Downloaded snafu v0.8.9 [INFO] [stderr] Downloaded borsh v1.6.0 [INFO] [stderr] Downloaded bincode v2.0.1 [INFO] [stderr] Downloaded zerocopy-derive v0.8.39 [INFO] [stderr] Downloaded security-framework v3.6.0 [INFO] [stderr] Downloaded rustls-platform-verifier v0.6.2 [INFO] [stderr] Downloaded tower v0.5.3 [INFO] [stderr] Downloaded reqwest v0.13.2 [INFO] [stderr] Downloaded getopts v0.2.24 [INFO] [stderr] Downloaded pulldown-cmark-escape v0.11.0 [INFO] [stderr] Downloaded zeno v0.3.3 [INFO] [stderr] Downloaded const-field-offset-macro v0.1.5 [INFO] [stderr] Downloaded memoffset v0.9.1 [INFO] [stderr] Downloaded const-field-offset v0.1.5 [INFO] [stderr] Downloaded vtable-macro v0.3.0 [INFO] [stderr] Downloaded by_address v1.2.1 [INFO] [stderr] Downloaded linebender_resource_handle v0.1.1 [INFO] [stderr] Downloaded objc2-io-surface v0.3.2 [INFO] [stderr] Downloaded windows-implement v0.58.0 [INFO] [stderr] Downloaded windows-interface v0.58.0 [INFO] [stderr] Downloaded windows-strings v0.1.0 [INFO] [stderr] Downloaded libloading v0.8.9 [INFO] [stderr] Downloaded dlib v0.5.2 [INFO] [stderr] Downloaded yeslogic-fontconfig-sys v6.0.0 [INFO] [stderr] Downloaded bit_field v0.10.3 [INFO] [stderr] Downloaded loop9 v0.1.5 [INFO] [stderr] Downloaded aligned v0.4.3 [INFO] [stderr] Downloaded arg_enum_proc_macro v0.3.4 [INFO] [stderr] Downloaded pastey v0.1.1 [INFO] [stderr] Downloaded maybe-rayon v0.1.1 [INFO] [stderr] Downloaded new_debug_unreachable v1.0.6 [INFO] [stderr] Downloaded profiling v1.0.17 [INFO] [stderr] Downloaded equator-macro v0.4.2 [INFO] [stderr] Downloaded equator v0.4.2 [INFO] [stderr] Downloaded aligned-vec v0.6.4 [INFO] [stderr] Downloaded zune-core v0.4.12 [INFO] [stderr] Downloaded linked-hash-map v0.5.6 [INFO] [stderr] Downloaded slotmap v1.1.1 [INFO] [stderr] Downloaded fontdb v0.23.0 [INFO] [stderr] Downloaded svgtypes v0.16.1 [INFO] [stderr] Downloaded unicode-bidi v0.3.18 [INFO] [stderr] Downloaded rowan v0.16.1 [INFO] [stderr] Downloaded rspolib v0.1.2 [INFO] [stderr] Downloaded typed-index-collections v3.5.0 [INFO] [stderr] Downloaded toml_edit v0.24.1+spec-1.1.0 [INFO] [stderr] Downloaded neli v0.7.4 [INFO] [stderr] Downloaded local-ip-address v0.6.10 [INFO] [stderr] Downloaded getrandom v0.4.1 [INFO] [stderr] Downloaded webpki v0.22.4 [INFO] [stderr] Downloaded tiny_http v0.12.0 [INFO] [stderr] Downloaded quinn v0.11.9 [INFO] [stderr] Downloaded security-framework-sys v2.16.0 [INFO] [stderr] Downloaded find-msvc-tools v0.1.9 [INFO] [stderr] Downloaded cc v1.2.56 [INFO] [stderr] Downloaded socket2 v0.6.2 [INFO] [stderr] Downloaded field-offset v0.3.6 [INFO] [stderr] Downloaded windows-result v0.2.0 [INFO] [stderr] Downloaded avif-serialize v0.8.8 [INFO] [stderr] Downloaded as-slice v0.2.1 [INFO] [stderr] Downloaded interpolate_name v0.2.4 [INFO] [stderr] Downloaded profiling-procmacros v1.0.17 [INFO] [stderr] Downloaded simd_helpers v0.1.0 [INFO] [stderr] Downloaded fax_derive v0.2.0 [INFO] [stderr] Downloaded num_enum v0.7.5 [INFO] [stderr] Downloaded weezl v0.1.12 [INFO] [stderr] Downloaded gif v0.14.1 [INFO] [stderr] Downloaded image-webp v0.2.4 [INFO] [stderr] Downloaded imagesize v0.14.0 [INFO] [stderr] Downloaded unicode-properties v0.1.4 [INFO] [stderr] Downloaded simplecss v0.2.2 [INFO] [stderr] Downloaded tiny-skia-path v0.11.4 [INFO] [stderr] Downloaded unicode-script v0.5.8 [INFO] [stderr] Downloaded xmlwriter v0.1.0 [INFO] [stderr] Downloaded strum_macros v0.27.2 [INFO] [stderr] Downloaded toml_parser v1.0.9+spec-1.1.0 [INFO] [stderr] Downloaded slint-build v1.15.1 [INFO] [stderr] Downloaded derive_builder_core v0.20.2 [INFO] [stderr] Downloaded derive_builder v0.20.2 [INFO] [stderr] Downloaded fs_extra v1.3.0 [INFO] [stderr] Downloaded futures-channel v0.3.32 [INFO] [stderr] Downloaded sys-locale v0.3.2 [INFO] [stderr] Downloaded integer-sqrt v0.1.5 [INFO] [stderr] Downloaded pin-weak v1.1.0 [INFO] [stderr] Downloaded lebe v0.5.3 [INFO] [stderr] Downloaded y4m v0.8.0 [INFO] [stderr] Downloaded fdeflate v0.3.7 [INFO] [stderr] Downloaded siphasher v1.0.2 [INFO] [stderr] Downloaded bytemuck_derive v1.10.2 [INFO] [stderr] Downloaded zune-core v0.5.1 [INFO] [stderr] Downloaded snafu-derive v0.8.9 [INFO] [stderr] Downloaded system-configuration v0.7.0 [INFO] [stderr] Downloaded quinn-udp v0.5.14 [INFO] [stderr] Downloaded glob v0.3.3 [INFO] [stderr] Downloaded libloading v0.7.4 [INFO] [stderr] Downloaded cmake v0.1.57 [INFO] [stderr] Downloaded rgb v0.8.53 [INFO] [stderr] Downloaded data-url v0.3.2 [INFO] [stderr] Downloaded unicode-ccc v0.4.0 [INFO] [stderr] Downloaded strict-num v0.1.1 [INFO] [stderr] Downloaded text-size v1.1.1 [INFO] [stderr] Downloaded unicode-linebreak v0.1.5 [INFO] [stderr] Downloaded strum v0.27.2 [INFO] [stderr] Downloaded unty v0.0.4 [INFO] [stderr] Downloaded rustls-pemfile v0.2.1 [INFO] [stderr] Downloaded core_maths v0.1.1 [INFO] [stderr] Downloaded float-cmp v0.9.0 [INFO] [stderr] Downloaded natord v1.0.9 [INFO] [stderr] Downloaded countme v3.0.1 [INFO] [stderr] Downloaded openssl-probe v0.2.1 [INFO] [stderr] Downloaded unicode-bidi-mirroring v0.4.0 [INFO] [stderr] Downloaded spin_on v0.1.1 [INFO] [stderr] Downloaded ascii v1.1.0 [INFO] [stderr] Downloaded derive_builder_macro v0.20.2 [INFO] [stderr] Downloaded neli-proc-macros v0.2.2 [INFO] [stderr] Downloaded chunked_transfer v1.5.0 [INFO] [stderr] Downloaded lru-slab v0.1.2 [INFO] [stderr] Downloaded windows-registry v0.6.1 [INFO] [stderr] Downloaded java-locator v0.1.9 [INFO] [stderr] Downloaded slab v0.4.12 [INFO] [stderr] Downloaded futures-task v0.3.32 [INFO] [stderr] Downloaded windows v0.58.0 [INFO] [stderr] Downloaded windows v0.62.2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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] 50ae307b1cca122100d97780acda2e8b8a68db9aae5be7679599ddc7e23ac7ea [INFO] running `Command { std: "docker" "start" "-a" "50ae307b1cca122100d97780acda2e8b8a68db9aae5be7679599ddc7e23ac7ea", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "50ae307b1cca122100d97780acda2e8b8a68db9aae5be7679599ddc7e23ac7ea", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "50ae307b1cca122100d97780acda2e8b8a68db9aae5be7679599ddc7e23ac7ea", kill_on_drop: false }` [INFO] [stdout] 50ae307b1cca122100d97780acda2e8b8a68db9aae5be7679599ddc7e23ac7ea [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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] 40ce35662d7712806186d31a56675816814631810c3ce388f6158135246a0e50 [INFO] running `Command { std: "docker" "start" "-a" "40ce35662d7712806186d31a56675816814631810c3ce388f6158135246a0e50", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.106 [INFO] [stderr] Compiling quote v1.0.44 [INFO] [stderr] Compiling unicode-ident v1.0.24 [INFO] [stderr] Compiling libc v0.2.182 [INFO] [stderr] Checking cfg-if v1.0.4 [INFO] [stderr] Compiling libm v0.2.16 [INFO] [stderr] Compiling portable-atomic v1.13.1 [INFO] [stderr] Checking critical-section v1.2.0 [INFO] [stderr] Compiling memchr v2.8.0 [INFO] [stderr] Checking bitflags v2.11.0 [INFO] [stderr] Compiling autocfg v1.5.0 [INFO] [stderr] Compiling find-msvc-tools v0.1.9 [INFO] [stderr] Checking log v0.4.29 [INFO] [stderr] Checking smallvec v1.15.1 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Checking pin-project-lite v0.2.16 [INFO] [stderr] Checking slab v0.4.12 [INFO] [stderr] Compiling rustix v1.1.3 [INFO] [stderr] Checking linux-raw-sys v0.11.0 [INFO] [stderr] Compiling equivalent v1.0.2 [INFO] [stderr] Compiling allocator-api2 v0.2.21 [INFO] [stderr] Checking once_cell v1.21.3 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling syn v2.0.116 [INFO] [stderr] Compiling jobserver v0.1.34 [INFO] [stderr] Checking libloading v0.8.9 [INFO] [stderr] Compiling foldhash v0.2.0 [INFO] [stderr] Compiling hashbrown v0.16.1 [INFO] [stderr] Checking futures-core v0.3.32 [INFO] [stderr] Compiling crc32fast v1.5.0 [INFO] [stderr] Checking dlib v0.5.2 [INFO] [stderr] Compiling cc v1.2.56 [INFO] [stderr] Compiling winnow v0.7.14 [INFO] [stderr] Compiling indexmap v2.13.0 [INFO] [stderr] Compiling toml_datetime v0.7.5+spec-1.1.0 [INFO] [stderr] Compiling version_check v0.9.5 [INFO] [stderr] Compiling stable_deref_trait v1.2.1 [INFO] [stderr] Checking tracing-core v0.1.36 [INFO] [stderr] Checking futures-io v0.3.32 [INFO] [stderr] Checking core_maths v0.1.1 [INFO] [stderr] Compiling wayland-sys v0.31.8 [INFO] [stderr] Compiling wayland-backend v0.3.12 [INFO] [stderr] Compiling toml_parser v1.0.9+spec-1.1.0 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Checking scoped-tls v1.0.1 [INFO] [stderr] Checking downcast-rs v1.2.1 [INFO] [stderr] Compiling toml_edit v0.23.10+spec-1.0.0 [INFO] [stderr] Compiling quick-xml v0.39.2 [INFO] [stderr] Compiling unicode-xid v0.2.6 [INFO] [stderr] Compiling wayland-client v0.31.12 [INFO] [stderr] Compiling proc-macro-crate v3.4.0 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Checking simd-adler32 v0.3.8 [INFO] [stderr] Checking parking v2.2.1 [INFO] [stderr] Checking concurrent-queue v2.5.0 [INFO] [stderr] Checking arrayvec v0.7.6 [INFO] [stderr] Checking writeable v0.6.2 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling wayland-scanner v0.31.9 [INFO] [stderr] Compiling icu_properties_data v2.1.2 [INFO] [stderr] Checking litemap v0.8.1 [INFO] [stderr] Checking adler2 v2.0.1 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling icu_normalizer_data v2.1.1 [INFO] [stderr] Checking miniz_oxide v0.8.9 [INFO] [stderr] Checking ttf-parser v0.25.1 [INFO] [stderr] Checking memmap2 v0.9.10 [INFO] [stderr] Checking futures-sink v0.3.32 [INFO] [stderr] Compiling lazy_static v1.5.0 [INFO] [stderr] Checking atomic-waker v1.1.2 [INFO] [stderr] Checking flate2 v1.1.9 [INFO] [stderr] Checking polling v3.11.0 [INFO] [stderr] Compiling semver v1.0.27 [INFO] [stderr] Compiling heck v0.5.0 [INFO] [stderr] Checking fastrand v2.3.0 [INFO] [stderr] Compiling crossbeam-epoch v0.9.18 [INFO] [stderr] Checking fdeflate v0.3.7 [INFO] [stderr] Compiling zmij v1.0.21 [INFO] [stderr] Compiling rayon-core v1.13.0 [INFO] [stderr] Compiling crossbeam-deque v0.8.6 [INFO] [stderr] Checking futures-channel v0.3.32 [INFO] [stderr] Checking event-listener v5.4.1 [INFO] [stderr] Compiling endi v1.1.1 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling bytemuck_derive v1.10.2 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling enumflags2_derive v0.7.12 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling unicode-segmentation v1.12.0 [INFO] [stderr] Checking zerofrom v0.1.6 [INFO] [stderr] Checking yoke v0.8.1 [INFO] [stderr] Checking bytemuck v1.25.0 [INFO] [stderr] Checking zerovec v0.11.5 [INFO] [stderr] Checking tracing v0.1.44 [INFO] [stderr] Checking float-cmp v0.9.0 [INFO] [stderr] Compiling convert_case v0.10.0 [INFO] [stderr] Checking strict-num v0.1.1 [INFO] [stderr] Checking wayland-protocols v0.32.10 [INFO] [stderr] Checking event-listener-strategy v0.5.4 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Checking tinystr v0.8.2 [INFO] [stderr] Checking futures-lite v2.6.1 [INFO] [stderr] Checking icu_locale_core v2.1.1 [INFO] [stderr] Checking arrayref v0.3.9 [INFO] [stderr] Checking bytes v1.11.1 [INFO] [stderr] Compiling cfg_aliases v0.2.1 [INFO] [stderr] Checking untrusted v0.9.0 [INFO] [stderr] Checking futures-task v0.3.32 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Checking futures-util v0.3.32 [INFO] [stderr] Checking tiny-skia-path v0.11.4 [INFO] [stderr] Checking enumflags2 v0.7.12 [INFO] [stderr] Compiling zvariant_utils v3.3.0 [INFO] [stderr] Compiling derive_more-impl v2.1.1 [INFO] [stderr] Checking font-types v0.10.1 [INFO] [stderr] Compiling zvariant_derive v5.10.0 [INFO] [stderr] Compiling strum_macros v0.27.2 [INFO] [stderr] Compiling equator-macro v0.4.2 [INFO] [stderr] Compiling cmake v0.1.57 [INFO] [stderr] Compiling zvariant v5.10.0 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling async-io v2.6.0 [INFO] [stderr] Checking base64 v0.22.1 [INFO] [stderr] Checking itoa v1.0.17 [INFO] [stderr] Checking zeroize v1.8.2 [INFO] [stderr] Compiling khronos_api v3.1.0 [INFO] [stderr] Compiling fs_extra v1.3.0 [INFO] [stderr] Compiling dunce v1.0.5 [INFO] [stderr] Compiling aws-lc-sys v0.37.1 [INFO] [stderr] Checking png v0.17.16 [INFO] [stderr] Compiling equator v0.4.2 [INFO] [stderr] Checking read-fonts v0.35.0 [INFO] [stderr] Compiling rayon v1.11.0 [INFO] [stderr] Compiling num-integer v0.1.46 [INFO] [stderr] Compiling slotmap v1.1.1 [INFO] [stderr] Checking errno v0.3.14 [INFO] [stderr] Compiling yeslogic-fontconfig-sys v6.0.0 [INFO] [stderr] Checking percent-encoding v2.3.2 [INFO] [stderr] Compiling zbus_names v4.3.1 [INFO] [stderr] Compiling anyhow v1.0.102 [INFO] [stderr] Checking scopeguard v1.2.0 [INFO] [stderr] Checking async-task v4.7.1 [INFO] [stderr] Checking signal-hook-registry v1.4.8 [INFO] [stderr] Compiling num-bigint v0.4.6 [INFO] [stderr] Checking tiny-skia v0.11.4 [INFO] [stderr] Compiling aligned-vec v0.6.4 [INFO] [stderr] Compiling quick-xml v0.38.4 [INFO] [stderr] Compiling potential_utf v0.1.4 [INFO] [stderr] Checking async-channel v2.5.0 [INFO] [stderr] Compiling zerotrie v0.2.3 [INFO] [stderr] Compiling rustc_version v0.4.1 [INFO] [stderr] Compiling cpp_common v0.5.10 [INFO] [stderr] Checking mio v1.1.1 [INFO] [stderr] Checking socket2 v0.6.2 [INFO] [stderr] Compiling memoffset v0.9.1 [INFO] [stderr] Compiling regex-syntax v0.8.10 [INFO] [stderr] Checking xkeysym v0.2.1 [INFO] [stderr] Checking cursor-icon v1.2.0 [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Checking fnv v1.0.7 [INFO] [stderr] Checking xcursor v0.3.10 [INFO] [stderr] Compiling xml-rs v0.8.28 [INFO] [stderr] Compiling zerocopy v0.8.39 [INFO] [stderr] Compiling zbus_xml v5.1.0 [INFO] [stderr] Checking wayland-cursor v0.31.12 [INFO] [stderr] Checking wayland-csd-frame v0.3.0 [INFO] [stderr] Checking tokio v1.49.0 [INFO] [stderr] Compiling field-offset v0.3.6 [INFO] [stderr] Compiling icu_provider v2.1.1 [INFO] [stderr] Compiling gl_generator v0.14.0 [INFO] [stderr] Compiling num-rational v0.4.2 [INFO] [stderr] Compiling icu_collections v2.1.1 [INFO] [stderr] Checking async-signal v0.2.13 [INFO] [stderr] Compiling v_frame v0.3.9 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Checking wayland-protocols-wlr v0.3.10 [INFO] [stderr] Checking async-lock v3.4.2 [INFO] [stderr] Compiling zerocopy-derive v0.8.39 [INFO] [stderr] Checking euclid v0.22.13 [INFO] [stderr] Checking piper v0.2.5 [INFO] [stderr] Compiling as-slice v0.2.1 [INFO] [stderr] Compiling paste v1.0.15 [INFO] [stderr] Checking zune-core v0.5.1 [INFO] [stderr] Compiling built v0.8.0 [INFO] [stderr] Checking as-raw-xcb-connection v1.0.1 [INFO] [stderr] Compiling quick-error v2.0.1 [INFO] [stderr] Compiling linebender_resource_handle v0.1.1 [INFO] [stderr] Checking tinyvec_macros v0.1.1 [INFO] [stderr] Checking byteorder-lite v0.1.0 [INFO] [stderr] Checking linux-raw-sys v0.4.15 [INFO] [stderr] Compiling av-scenechange v0.14.1 [INFO] [stderr] Compiling aws-lc-rs v1.15.4 [INFO] [stderr] Checking tinyvec v1.10.0 [INFO] [stderr] Compiling rav1e v0.8.1 [INFO] [stderr] Checking zune-jpeg v0.5.12 [INFO] [stderr] Compiling aligned v0.4.3 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Checking blocking v1.6.2 [INFO] [stderr] Checking lyon_geom v1.0.18 [INFO] [stderr] Checking async-process v2.5.0 [INFO] [stderr] Compiling zbus-lockstep v0.5.2 [INFO] [stderr] Compiling zbus_macros v5.14.0 [INFO] [stderr] Checking async-executor v1.14.0 [INFO] [stderr] Checking http v1.4.0 [INFO] [stderr] Checking async-broadcast v0.7.2 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling profiling-procmacros v1.0.17 [INFO] [stderr] Compiling serde_repr v0.1.20 [INFO] [stderr] Compiling async-recursion v1.1.1 [INFO] [stderr] Compiling arg_enum_proc_macro v0.3.4 [INFO] [stderr] Checking pxfm v0.1.27 [INFO] [stderr] Checking gethostname v1.1.0 [INFO] [stderr] Checking uuid v1.22.0 [INFO] [stderr] Checking kurbo v0.13.0 [INFO] [stderr] Checking ordered-stream v0.2.0 [INFO] [stderr] Compiling core2 v0.4.0 [INFO] [stderr] Compiling nom v8.0.0 [INFO] [stderr] Compiling x11-dl v2.21.0 [INFO] [stderr] Compiling y4m v0.8.0 [INFO] [stderr] Compiling pastey v0.1.1 [INFO] [stderr] Checking unicode-bidi-mirroring v0.4.0 [INFO] [stderr] Checking unicode-script v0.5.8 [INFO] [stderr] Checking unicode-ccc v0.4.0 [INFO] [stderr] Compiling fontique v0.7.0 [INFO] [stderr] Checking unicode-properties v0.1.4 [INFO] [stderr] Compiling weezl v0.1.12 [INFO] [stderr] Checking x11rb-protocol v0.13.2 [INFO] [stderr] Checking siphasher v1.0.2 [INFO] [stderr] Checking svgtypes v0.16.1 [INFO] [stderr] Compiling half v2.7.1 [INFO] [stderr] Checking moxcms v0.7.11 [INFO] [stderr] Checking zbus v5.14.0 [INFO] [stderr] Compiling i-slint-common v1.15.1 [INFO] [stderr] Checking rustybuzz v0.20.1 [INFO] [stderr] Checking calloop v0.13.0 [INFO] [stderr] Compiling av1-grain v0.2.5 [INFO] [stderr] Compiling bitstream-io v4.9.0 [INFO] [stderr] Compiling icu_properties v2.1.2 [INFO] [stderr] Compiling icu_normalizer v2.1.1 [INFO] [stderr] Compiling profiling v1.0.17 [INFO] [stderr] Checking lyon_path v1.0.16 [INFO] [stderr] Compiling zbus-lockstep-macros v0.5.2 [INFO] [stderr] Compiling cpp_build v0.5.10 [INFO] [stderr] Checking fontdb v0.23.0 [INFO] [stderr] Checking skrifa v0.37.0 [INFO] [stderr] Compiling maybe-rayon v0.1.1 [INFO] [stderr] Checking rustls-pki-types v1.14.0 [INFO] [stderr] Compiling rgb v0.8.53 [INFO] [stderr] Checking png v0.18.1 [INFO] [stderr] Compiling fax_derive v0.2.0 [INFO] [stderr] Compiling num-derive v0.4.2 [INFO] [stderr] Compiling const-field-offset-macro v0.1.5 [INFO] [stderr] Compiling itertools v0.14.0 [INFO] [stderr] Checking roxmltree v0.21.1 [INFO] [stderr] Compiling simd_helpers v0.1.0 [INFO] [stderr] Checking simplecss v0.2.2 [INFO] [stderr] Checking unicode-bidi v0.3.18 [INFO] [stderr] Compiling new_debug_unreachable v1.0.6 [INFO] [stderr] Compiling rustversion v1.0.22 [INFO] [stderr] Compiling color_quant v1.1.0 [INFO] [stderr] Compiling imgref v1.12.0 [INFO] [stderr] Compiling smithay-client-toolkit v0.19.2 [INFO] [stderr] Checking imagesize v0.14.0 [INFO] [stderr] Checking static_assertions v1.1.0 [INFO] [stderr] Compiling noop_proc_macro v0.3.0 [INFO] [stderr] Compiling zune-core v0.4.12 [INFO] [stderr] Checking pico-args v0.5.0 [INFO] [stderr] Checking unicode-vo v0.1.0 [INFO] [stderr] Compiling pulldown-cmark v0.13.1 [INFO] [stderr] Checking data-url v0.3.2 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Checking unicode-width v0.2.2 [INFO] [stderr] Checking xmlwriter v0.1.0 [INFO] [stderr] Compiling bitflags v1.3.2 [INFO] [stderr] Checking gif v0.14.1 [INFO] [stderr] Checking usvg v0.46.0 [INFO] [stderr] Checking getopts v0.2.24 [INFO] [stderr] Compiling image-webp v0.2.4 [INFO] [stderr] Compiling zune-jpeg v0.4.21 [INFO] [stderr] Checking atspi-common v0.13.0 [INFO] [stderr] Compiling loop9 v0.1.5 [INFO] [stderr] Checking x11rb v0.13.2 [INFO] [stderr] Checking swash v0.2.6 [INFO] [stderr] Checking image v0.25.9 [INFO] [stderr] Compiling fax v0.2.6 [INFO] [stderr] Checking const-field-offset v0.1.5 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Checking calloop-wayland-source v0.3.0 [INFO] [stderr] Checking http-body v1.0.1 [INFO] [stderr] Checking harfrust v0.3.2 [INFO] [stderr] Checking owned_ttf_parser v0.25.1 [INFO] [stderr] Compiling pin-project-internal v1.1.11 [INFO] [stderr] Compiling snafu-derive v0.8.9 [INFO] [stderr] Compiling vtable-macro v0.3.0 [INFO] [stderr] Compiling zune-inflate v0.2.54 [INFO] [stderr] Compiling avif-serialize v0.8.8 [INFO] [stderr] Compiling derive_utils v0.15.1 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Checking raw-window-handle v0.6.2 [INFO] [stderr] Compiling lebe v0.5.3 [INFO] [stderr] Compiling rustls v0.23.36 [INFO] [stderr] Checking pulldown-cmark-escape v0.11.0 [INFO] [stderr] Compiling bit_field v0.10.3 [INFO] [stderr] Compiling httparse v1.10.1 [INFO] [stderr] Checking iana-time-zone v0.1.65 [INFO] [stderr] Compiling rspolib v0.1.2 [INFO] [stderr] Checking ab_glyph_rasterizer v0.1.10 [INFO] [stderr] Compiling utf8_iter v1.0.4 [INFO] [stderr] Checking unicase v2.9.0 [INFO] [stderr] Compiling foldhash v0.1.5 [INFO] [stderr] Checking ab_glyph v0.2.32 [INFO] [stderr] Checking chrono v0.4.44 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling hashbrown v0.15.5 [INFO] [stderr] Compiling snafu v0.8.9 [INFO] [stderr] Compiling form_urlencoded v1.2.2 [INFO] [stderr] Compiling exr v1.74.0 [INFO] [stderr] Checking parley v0.7.0 [INFO] [stderr] Compiling auto_enums v0.8.8 [INFO] [stderr] Checking vtable v0.3.0 [INFO] [stderr] Compiling ravif v0.12.0 [INFO] [stderr] Checking pin-project v1.1.11 [INFO] [stderr] Compiling tiff v0.10.3 [INFO] [stderr] Checking resvg v0.46.0 [INFO] [stderr] Compiling i-slint-core-macros v1.15.1 [INFO] [stderr] Compiling qttypes v0.2.12 [INFO] [stderr] Checking lyon_algorithms v1.0.16 [INFO] [stderr] Checking lyon_extra v1.0.3 [INFO] [stderr] Checking tokio-util v0.7.18 [INFO] [stderr] Compiling glutin_glx_sys v0.6.1 [INFO] [stderr] Compiling glutin_egl_sys v0.7.1 [INFO] [stderr] Checking derive_more v2.1.1 [INFO] [stderr] Checking strum v0.27.2 [INFO] [stderr] Compiling winit v0.30.13 [INFO] [stderr] Compiling qoi v0.4.1 [INFO] [stderr] Checking calloop v0.14.4 [INFO] [stderr] Compiling num_enum_derive v0.7.5 [INFO] [stderr] Checking clru v0.6.3 [INFO] [stderr] Compiling anstyle v1.0.13 [INFO] [stderr] Checking sys-locale v0.3.2 [INFO] [stderr] Checking try-lock v0.2.5 [INFO] [stderr] Compiling i-slint-compiler v1.15.1 [INFO] [stderr] Checking scoped-tls-hkt v0.1.5 [INFO] [stderr] Checking unicode-linebreak v0.1.5 [INFO] [stderr] Checking htmlparser v0.2.1 [INFO] [stderr] Compiling countme v3.0.1 [INFO] [stderr] Checking pin-weak v1.1.0 [INFO] [stderr] Compiling ttf-parser v0.21.1 [INFO] [stderr] Compiling text-size v1.1.1 [INFO] [stderr] Checking tower-service v0.3.3 [INFO] [stderr] Checking accesskit v0.22.0 [INFO] [stderr] Compiling linked-hash-map v0.5.6 [INFO] [stderr] Checking subtle v2.6.1 [INFO] [stderr] Compiling hashbrown v0.14.5 [INFO] [stderr] Compiling smithay-client-toolkit v0.20.0 [INFO] [stderr] Compiling rustc-hash v1.1.0 [INFO] [stderr] Compiling natord v1.0.9 [INFO] [stderr] Compiling linked_hash_set v0.1.6 [INFO] [stderr] Checking accesskit_consumer v0.32.0 [INFO] [stderr] Checking i-slint-core v1.15.1 [INFO] [stderr] Compiling rowan v0.16.1 [INFO] [stderr] Checking h2 v0.4.13 [INFO] [stderr] Compiling fontdue v0.9.3 [INFO] [stderr] Compiling num_enum v0.7.5 [INFO] [stderr] Checking want v0.3.1 [INFO] [stderr] Checking calloop-wayland-source v0.4.1 [INFO] [stderr] Compiling annotate-snippets v0.12.12 [INFO] [stderr] Checking sctk-adwaita v0.10.1 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Checking atspi-proxies v0.13.0 [INFO] [stderr] Checking xkbcommon-dl v0.4.2 [INFO] [stderr] Checking wayland-protocols-experimental v20250721.0.1 [INFO] [stderr] Checking wayland-protocols-plasma v0.3.10 [INFO] [stderr] Checking wayland-protocols-misc v0.3.10 [INFO] [stderr] Compiling glutin v0.32.3 [INFO] [stderr] Compiling tiny-xlib v0.2.4 [INFO] [stderr] Checking smol_str v0.2.2 [INFO] [stderr] Compiling smol_str v0.3.5 [INFO] [stderr] Checking pin-utils v0.1.0 [INFO] [stderr] Compiling typed-index-collections v3.5.0 [INFO] [stderr] Compiling ident_case v1.0.1 [INFO] [stderr] Compiling by_address v1.2.1 [INFO] [stderr] Checking dpi v0.1.2 [INFO] [stderr] Compiling strsim v0.11.1 [INFO] [stderr] Compiling byteorder v1.5.0 [INFO] [stderr] Compiling darling_core v0.20.11 [INFO] [stderr] Compiling cpp_macros v0.5.10 [INFO] [stderr] Compiling spin_on v0.1.1 [INFO] [stderr] Checking atspi v0.29.0 [INFO] [stderr] Checking hyper v1.8.1 [INFO] [stderr] Checking accesskit_atspi_common v0.15.0 [INFO] [stderr] Compiling i-slint-backend-qt v1.15.1 [INFO] [stderr] Compiling glutin-winit v0.5.0 [INFO] [stderr] Checking sync_wrapper v1.0.2 [INFO] [stderr] Checking tower-layer v0.3.3 [INFO] [stderr] Checking ipnet v2.11.0 [INFO] [stderr] Checking glow v0.16.0 [INFO] [stderr] Checking openssl-probe v0.2.1 [INFO] [stderr] Checking ctor-lite v0.1.2 [INFO] [stderr] Compiling darling_macro v0.20.11 [INFO] [stderr] Checking rustls-native-certs v0.8.3 [INFO] [stderr] Checking hyper-util v0.1.20 [INFO] [stderr] Checking smithay-clipboard v0.7.3 [INFO] [stderr] Checking tower v0.5.3 [INFO] [stderr] Checking accesskit_unix v0.18.0 [INFO] [stderr] Checking femtovg v0.20.4 [INFO] [stderr] Checking cpp v0.5.10 [INFO] [stderr] Checking x11-clipboard v0.9.3 [INFO] [stderr] Checking futures-executor v0.3.32 [INFO] [stderr] Checking pmj_shared v0.1.0 (/opt/rustwide/workdir/pmj_shared) [INFO] [stderr] Compiling i-slint-backend-winit v1.15.1 [INFO] [stderr] Checking integer-sqrt v0.1.5 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Checking iri-string v0.7.10 [INFO] [stdout] warning: unused import: `std::net` [INFO] [stdout] --> pmj_shared/src/gamemodes_shared/shared_base.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::net; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync` [INFO] [stdout] --> pmj_shared/src/gamemodes_shared/shared_base.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::sync; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking zeno v0.3.3 [INFO] [stderr] Compiling toml_writer v1.0.6+spec-1.1.0 [INFO] [stderr] Compiling toml_edit v0.24.1+spec-1.1.0 [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `write!` args [INFO] [stdout] --> pmj_shared/src/gamemodes_shared/sharedv1_simple.rs:259:20 [INFO] [stdout] | [INFO] [stdout] 259 | self.ip.to_string(), [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] = note: `#[warn(clippy::to_string_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `write!` args [INFO] [stdout] --> pmj_shared/src/gamemodes_shared/sharedv1_simple.rs:260:24 [INFO] [stdout] | [INFO] [stdout] 260 | self.number.to_string(), [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `write!` args [INFO] [stdout] --> pmj_shared/src/gamemodes_shared/sharedv2_better.rs:259:20 [INFO] [stdout] | [INFO] [stdout] 259 | self.ip.to_string(), [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `write!` args [INFO] [stdout] --> pmj_shared/src/gamemodes_shared/sharedv2_better.rs:260:24 [INFO] [stdout] | [INFO] [stdout] 260 | self.number.to_string(), [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking i-slint-renderer-software v1.15.1 [INFO] [stderr] Checking i-slint-renderer-femtovg v1.15.1 [INFO] [stderr] Checking accesskit_winit v0.30.0 [INFO] [stderr] Checking futures v0.3.32 [INFO] [stderr] Checking copypasta v0.10.2 [INFO] [stderr] Checking tower-http v0.6.8 [INFO] [stderr] Checking softbuffer v0.4.8 [INFO] [stderr] Compiling darling v0.20.11 [INFO] [stderr] Checking http-body-util v0.1.3 [INFO] [stderr] Compiling i-slint-backend-selector v1.15.1 [INFO] [stderr] Compiling ring v0.16.20 [INFO] [stderr] Checking getrandom v0.2.17 [INFO] [stderr] Checking encoding_rs v0.8.35 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Checking mime v0.3.17 [INFO] [stderr] Compiling derive_builder_core v0.20.2 [INFO] [stderr] Compiling proc-macro-error-attr2 v2.0.0 [INFO] [stderr] Compiling proc-macro-error2 v2.0.1 [INFO] [stderr] Checking lock_api v0.4.14 [INFO] [stderr] Checking spin v0.5.2 [INFO] [stderr] Compiling rustls v0.20.9 [INFO] [stderr] Compiling derive_builder_macro v0.20.2 [INFO] [stderr] Checking rand_core v0.10.0 [INFO] [stderr] Compiling getrandom v0.4.1 [INFO] [stderr] Checking untrusted v0.7.1 [INFO] [stderr] Checking derive_builder v0.20.2 [INFO] [stderr] Compiling getset v0.1.6 [INFO] [stderr] Checking parking_lot v0.12.5 [INFO] [stderr] Compiling neli-proc-macros v0.2.2 [INFO] [stderr] Checking cpufeatures v0.3.0 [INFO] [stderr] Checking base64 v0.13.1 [INFO] [stderr] Checking rustls-pemfile v0.2.1 [INFO] [stderr] Checking chacha20 v0.10.0 [INFO] [stderr] Checking ascii v1.1.0 [INFO] [stderr] Checking neli v0.7.4 [INFO] [stderr] Checking httpdate v1.0.3 [INFO] [stderr] Checking chunked_transfer v1.5.0 [INFO] [stderr] Checking sct v0.7.1 [INFO] [stderr] Checking webpki v0.22.4 [INFO] [stderr] Checking rand v0.10.0 [INFO] [stdout] warning: unused import: `std::net` [INFO] [stdout] --> pmj_shared/src/gamemodes_shared/shared_base.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::net; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync` [INFO] [stdout] --> pmj_shared/src/gamemodes_shared/shared_base.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::sync; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `write!` args [INFO] [stdout] --> pmj_shared/src/gamemodes_shared/sharedv1_simple.rs:259:20 [INFO] [stdout] | [INFO] [stdout] 259 | self.ip.to_string(), [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] = note: `#[warn(clippy::to_string_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `write!` args [INFO] [stdout] --> pmj_shared/src/gamemodes_shared/sharedv1_simple.rs:260:24 [INFO] [stdout] | [INFO] [stdout] 260 | self.number.to_string(), [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `write!` args [INFO] [stdout] --> pmj_shared/src/gamemodes_shared/sharedv2_better.rs:259:20 [INFO] [stdout] | [INFO] [stdout] 259 | self.ip.to_string(), [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `write!` args [INFO] [stdout] --> pmj_shared/src/gamemodes_shared/sharedv2_better.rs:260:24 [INFO] [stdout] | [INFO] [stdout] 260 | self.number.to_string(), [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking tiny_http v0.12.0 [INFO] [stderr] Checking local-ip-address v0.6.10 [INFO] [stderr] Checking pmj_server v0.1.0 (/opt/rustwide/workdir/pmj_server) [INFO] [stdout] warning: unused import: `pmj_shared::shared` [INFO] [stdout] --> pmj_server/src/gamemodes/mode_base.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use pmj_shared::shared; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `pmj_shared::shared` [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use pmj_shared::shared; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `pmj_shared::shared` [INFO] [stdout] --> pmj_server/src/gamemodes/mode_base.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use pmj_shared::shared; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `pmj_shared::shared` [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use pmj_shared::shared; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:115:25 [INFO] [stdout] | [INFO] [stdout] 115 | card_type: card_type, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `card_type` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:117:25 [INFO] [stdout] | [INFO] [stdout] 117 | card_id: card_id, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `card_id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:127:21 [INFO] [stdout] | [INFO] [stdout] 127 | card_id: card_id, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `card_id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:144:13 [INFO] [stdout] | [INFO] [stdout] 144 | unuse_cards: unuse_cards, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `unuse_cards` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:168:17 [INFO] [stdout] | [INFO] [stdout] 168 | ip: ip, [INFO] [stdout] | ^^^^^^ help: replace it with: `ip` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:180:13 [INFO] [stdout] | [INFO] [stdout] 180 | ip: ip, [INFO] [stdout] | ^^^^^^ help: replace it with: `ip` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:181:13 [INFO] [stdout] | [INFO] [stdout] 181 | number: number, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `number` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:187:25 [INFO] [stdout] | [INFO] [stdout] 187 | ip: ip, [INFO] [stdout] | ^^^^^^ help: replace it with: `ip` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:188:25 [INFO] [stdout] | [INFO] [stdout] 188 | number: number, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `number` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:511:17 [INFO] [stdout] | [INFO] [stdout] 511 | player_ip: player_ip, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `player_ip` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:512:17 [INFO] [stdout] | [INFO] [stdout] 512 | player_number: player_number, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `player_number` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:513:17 [INFO] [stdout] | [INFO] [stdout] 513 | action: action, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `action` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:538:17 [INFO] [stdout] | [INFO] [stdout] 538 | player_ip: player_ip, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `player_ip` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:539:17 [INFO] [stdout] | [INFO] [stdout] 539 | player_number: player_number, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `player_number` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:540:17 [INFO] [stdout] | [INFO] [stdout] 540 | action: action, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `action` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:565:17 [INFO] [stdout] | [INFO] [stdout] 565 | player_ip: player_ip, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `player_ip` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:566:17 [INFO] [stdout] | [INFO] [stdout] 566 | player_number: player_number, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `player_number` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:567:17 [INFO] [stdout] | [INFO] [stdout] 567 | action: action, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `action` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:592:17 [INFO] [stdout] | [INFO] [stdout] 592 | player_ip: player_ip, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `player_ip` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:593:17 [INFO] [stdout] | [INFO] [stdout] 593 | player_number: player_number, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `player_number` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:594:17 [INFO] [stdout] | [INFO] [stdout] 594 | action: action, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `action` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:115:25 [INFO] [stdout] | [INFO] [stdout] 115 | card_type: card_type, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `card_type` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused label [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:710:13 [INFO] [stdout] | [INFO] [stdout] 710 | 'out_loop: loop { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_labels)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> pmj_server/src/server.rs:16:1 [INFO] [stdout] | [INFO] [stdout] 16 | use local_ip_address; [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: this import is redundant [INFO] [stdout] --> pmj_server/src/server.rs:17:1 [INFO] [stdout] | [INFO] [stdout] 17 | use serde_json; [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: this import is redundant [INFO] [stdout] --> pmj_server/src/server.rs:18:1 [INFO] [stdout] | [INFO] [stdout] 18 | 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: this import is redundant [INFO] [stdout] --> pmj_server/src/server.rs:21:1 [INFO] [stdout] | [INFO] [stdout] 21 | use tiny_http; [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: redundant field names in struct initialization [INFO] [stdout] --> pmj_server/src/server.rs:191:49 [INFO] [stdout] | [INFO] [stdout] 191 | ... number: number, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `number` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> pmj_server/src/server.rs:289:49 [INFO] [stdout] | [INFO] [stdout] 289 | ... is_start: is_start, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `is_start` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:117:25 [INFO] [stdout] | [INFO] [stdout] 117 | card_id: card_id, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `card_id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:127:21 [INFO] [stdout] | [INFO] [stdout] 127 | card_id: card_id, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `card_id` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:144:13 [INFO] [stdout] | [INFO] [stdout] 144 | unuse_cards: unuse_cards, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `unuse_cards` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:168:17 [INFO] [stdout] | [INFO] [stdout] 168 | ip: ip, [INFO] [stdout] | ^^^^^^ help: replace it with: `ip` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:180:13 [INFO] [stdout] | [INFO] [stdout] 180 | ip: ip, [INFO] [stdout] | ^^^^^^ help: replace it with: `ip` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:181:13 [INFO] [stdout] | [INFO] [stdout] 181 | number: number, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `number` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:187:25 [INFO] [stdout] | [INFO] [stdout] 187 | ip: ip, [INFO] [stdout] | ^^^^^^ help: replace it with: `ip` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:188:25 [INFO] [stdout] | [INFO] [stdout] 188 | number: number, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `number` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:511:17 [INFO] [stdout] | [INFO] [stdout] 511 | player_ip: player_ip, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `player_ip` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:512:17 [INFO] [stdout] | [INFO] [stdout] 512 | player_number: player_number, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `player_number` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:513:17 [INFO] [stdout] | [INFO] [stdout] 513 | action: action, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `action` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:538:17 [INFO] [stdout] | [INFO] [stdout] 538 | player_ip: player_ip, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `player_ip` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:539:17 [INFO] [stdout] | [INFO] [stdout] 539 | player_number: player_number, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `player_number` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:540:17 [INFO] [stdout] | [INFO] [stdout] 540 | action: action, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `action` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:565:17 [INFO] [stdout] | [INFO] [stdout] 565 | player_ip: player_ip, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `player_ip` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:566:17 [INFO] [stdout] | [INFO] [stdout] 566 | player_number: player_number, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `player_number` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:567:17 [INFO] [stdout] | [INFO] [stdout] 567 | action: action, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `action` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:592:17 [INFO] [stdout] | [INFO] [stdout] 592 | player_ip: player_ip, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `player_ip` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:593:17 [INFO] [stdout] | [INFO] [stdout] 593 | player_number: player_number, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `player_number` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:594:17 [INFO] [stdout] | [INFO] [stdout] 594 | action: action, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `action` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused label [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:710:13 [INFO] [stdout] | [INFO] [stdout] 710 | 'out_loop: loop { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_labels)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> pmj_server/src/server.rs:16:1 [INFO] [stdout] | [INFO] [stdout] 16 | use local_ip_address; [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: this import is redundant [INFO] [stdout] --> pmj_server/src/server.rs:17:1 [INFO] [stdout] | [INFO] [stdout] 17 | use serde_json; [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: this import is redundant [INFO] [stdout] --> pmj_server/src/server.rs:18:1 [INFO] [stdout] | [INFO] [stdout] 18 | 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: this import is redundant [INFO] [stdout] --> pmj_server/src/server.rs:21:1 [INFO] [stdout] | [INFO] [stdout] 21 | use tiny_http; [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: redundant field names in struct initialization [INFO] [stdout] --> pmj_server/src/server.rs:191:49 [INFO] [stdout] | [INFO] [stdout] 191 | ... number: number, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `number` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> pmj_server/src/server.rs:289:49 [INFO] [stdout] | [INFO] [stdout] 289 | ... is_start: is_start, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `is_start` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:473:13 [INFO] [stdout] | [INFO] [stdout] 473 | let mut index: u8 = 0; [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] --> pmj_server/src/gamemodes/modev1_simple.rs:474:13 [INFO] [stdout] | [INFO] [stdout] 474 | let mut found_card: bool = false; [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `card_type` [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:469:9 [INFO] [stdout] | [INFO] [stdout] 469 | card_type: PMJCardTypes, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_card_type` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `card_number` [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:470:9 [INFO] [stdout] | [INFO] [stdout] 470 | card_number: u8, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_card_number` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `card` [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:475:13 [INFO] [stdout] | [INFO] [stdout] 475 | for card in player.cards.iter() {} [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_card` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `exit_loop` is never read [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:782:41 [INFO] [stdout] | [INFO] [stdout] 782 | ... exit_loop = true; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PositiveMahjong` is never constructed [INFO] [stdout] --> pmj_server/src/gamemodes/mode_base.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct PositiveMahjong { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> pmj_server/src/gamemodes/mode_base.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 8 | impl PositiveMahjong { [INFO] [stdout] | -------------------- associated function in this implementation [INFO] [stdout] 9 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `player_ip` is never read [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:29:9 [INFO] [stdout] | [INFO] [stdout] 28 | pub struct PlayerWaitRoundAction { [INFO] [stdout] | --------------------- field in this struct [INFO] [stdout] 29 | pub player_ip: std::net::SocketAddr, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PlayerWaitRoundAction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `player_ip` is never read [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:44:9 [INFO] [stdout] | [INFO] [stdout] 43 | pub struct AfterAction { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] 44 | pub player_ip: std::net::SocketAddr, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `AfterAction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `player_ip` is never read [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:59:9 [INFO] [stdout] | [INFO] [stdout] 58 | pub struct PlayerPlayerRoundAction { [INFO] [stdout] | ----------------------- field in this struct [INFO] [stdout] 59 | pub player_ip: std::net::SocketAddr, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PlayerPlayerRoundAction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:233:12 [INFO] [stdout] | [INFO] [stdout] 104 | impl PositiveMahjong { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 233 | pub fn replacing_a_flower( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 273 | pub fn get_cards( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 293 | pub fn get_game_status(&self) -> GameStatus { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 330 | fn check_win(&mut self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 466 | fn check_win_have_card( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 495 | pub fn player_round_action( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 522 | pub fn wait_round_action( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 549 | pub fn player_round_after_action( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 576 | pub fn wait_round_after_action( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:473:13 [INFO] [stdout] | [INFO] [stdout] 473 | let mut index: u8 = 0; [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: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:162:13 [INFO] [stdout] | [INFO] [stdout] 162 | return Either::Left(String::from("人數已達上限!")); [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] 162 - return Either::Left(String::from("人數已達上限!")); [INFO] [stdout] 162 + Either::Left(String::from("人數已達上限!")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:164:13 [INFO] [stdout] | [INFO] [stdout] 164 | return Either::Left(String::from("遊戲已開始!")); [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] 164 - return Either::Left(String::from("遊戲已開始!")); [INFO] [stdout] 164 + Either::Left(String::from("遊戲已開始!")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:172:13 [INFO] [stdout] | [INFO] [stdout] 172 | return Either::Right(self.player_count.clone()); [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] 172 - return Either::Right(self.player_count.clone()); [INFO] [stdout] 172 + Either::Right(self.player_count.clone()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u8` which implements the `Copy` trait [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:172:34 [INFO] [stdout] | [INFO] [stdout] 172 | return Either::Right(self.player_count.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.player_count` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:178:13 [INFO] [stdout] | [INFO] [stdout] 178 | return Either::Left(String::from("遊戲已開始!")); [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] 178 - return Either::Left(String::from("遊戲已開始!")); [INFO] [stdout] 178 + Either::Left(String::from("遊戲已開始!")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:193:13 [INFO] [stdout] | [INFO] [stdout] 193 | return Either::Right(()); [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] 193 - return Either::Right(()); [INFO] [stdout] 193 + Either::Right(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:195:13 [INFO] [stdout] | [INFO] [stdout] 195 | return Either::Left(String::from("無此玩家!")); [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] 195 - return Either::Left(String::from("無此玩家!")); [INFO] [stdout] 195 + Either::Left(String::from("無此玩家!")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:474:13 [INFO] [stdout] | [INFO] [stdout] 474 | let mut found_card: bool = false; [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `card_type` [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:469:9 [INFO] [stdout] | [INFO] [stdout] 469 | card_type: PMJCardTypes, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_card_type` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `card_number` [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:470:9 [INFO] [stdout] | [INFO] [stdout] 470 | card_number: u8, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_card_number` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `card` [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:475:13 [INFO] [stdout] | [INFO] [stdout] 475 | for card in player.cards.iter() {} [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_card` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:200:9 [INFO] [stdout] | [INFO] [stdout] 200 | return self.is_start.clone(); [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 self.is_start.clone(); [INFO] [stdout] 200 + self.is_start.clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `bool` which implements the `Copy` trait [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:200:16 [INFO] [stdout] | [INFO] [stdout] 200 | return self.is_start.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.is_start` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:239:13 [INFO] [stdout] | [INFO] [stdout] 239 | return Either::Left(String::from("遊戲未開始!")); [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] 239 - return Either::Left(String::from("遊戲未開始!")); [INFO] [stdout] 239 + Either::Left(String::from("遊戲未開始!")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:257:17 [INFO] [stdout] | [INFO] [stdout] 257 | return Either::Left(String::from("無花可補!")); [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] 257 - return Either::Left(String::from("無花可補!")); [INFO] [stdout] 257 + Either::Left(String::from("無花可補!")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:265:17 [INFO] [stdout] | [INFO] [stdout] 265 | return Either::Right(()); [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] 265 - return Either::Right(()); [INFO] [stdout] 265 + Either::Right(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:268:13 [INFO] [stdout] | [INFO] [stdout] 268 | return Either::Left(String::from("無此玩家!")); [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] 268 - return Either::Left(String::from("無此玩家!")); [INFO] [stdout] 268 + Either::Left(String::from("無此玩家!")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:249:17 [INFO] [stdout] | [INFO] [stdout] 249 | / match card.card_type { [INFO] [stdout] 250 | | PMJCardTypes::Flower(_) => { [INFO] [stdout] 251 | | flower_card_indexes.push(card_index.clone()); [INFO] [stdout] ... | [INFO] [stdout] 254 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = note: you might want to preserve the comments from inside the `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 249 ~ if let PMJCardTypes::Flower(_) = card.card_type { [INFO] [stdout] 250 + flower_card_indexes.push(card_index.clone()); [INFO] [stdout] 251 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `usize` which implements the `Copy` trait [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:251:50 [INFO] [stdout] | [INFO] [stdout] 251 | flower_card_indexes.push(card_index.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `card_index` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `usize` which implements the `Copy` trait [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:260:41 [INFO] [stdout] | [INFO] [stdout] 260 | player.cards.remove(index.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try dereferencing it: `*index` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:279:13 [INFO] [stdout] | [INFO] [stdout] 279 | return Either::Left(String::from("遊戲未開始!")); [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] 279 - return Either::Left(String::from("遊戲未開始!")); [INFO] [stdout] 279 + Either::Left(String::from("遊戲未開始!")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:286:13 [INFO] [stdout] | [INFO] [stdout] 286 | return Either::Right(player.cards.clone()); [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] 286 - return Either::Right(player.cards.clone()); [INFO] [stdout] 286 + Either::Right(player.cards.clone()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:288:13 [INFO] [stdout] | [INFO] [stdout] 288 | return Either::Left(String::from("無此玩家!")); [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] 288 - return Either::Left(String::from("無此玩家!")); [INFO] [stdout] 288 + Either::Left(String::from("無此玩家!")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:294:9 [INFO] [stdout] | [INFO] [stdout] 294 | return self.game_status.clone(); [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] 294 - return self.game_status.clone(); [INFO] [stdout] 294 + self.game_status.clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `i_card` after checking its variant with `is_none` [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:413:57 [INFO] [stdout] | [INFO] [stdout] 409 | ... if i_card.is_none() || i2_card.is_none() { [INFO] [stdout] | ---------------- the check is happening here [INFO] [stdout] ... [INFO] [stdout] 413 | ... finish_check_cards.push(i_card.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `if let` or `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `i2_card` after checking its variant with `is_none` [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:414:57 [INFO] [stdout] | [INFO] [stdout] 409 | ... if i_card.is_none() || i2_card.is_none() { [INFO] [stdout] | ----------------- the check is happening here [INFO] [stdout] ... [INFO] [stdout] 414 | ... finish_check_cards.push(i2_card.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `if let` or `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `card_i` after checking its variant with `is_none` [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:453:61 [INFO] [stdout] | [INFO] [stdout] 449 | ... if card_i.is_none() || card_i2.is_none() { [INFO] [stdout] | ---------------- the check is happening here [INFO] [stdout] ... [INFO] [stdout] 453 | ... finish_check_cards.push(card_i.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `if let` or `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `card_i2` after checking its variant with `is_none` [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:454:61 [INFO] [stdout] | [INFO] [stdout] 449 | ... if card_i.is_none() || card_i2.is_none() { [INFO] [stdout] | ----------------- the check is happening here [INFO] [stdout] ... [INFO] [stdout] 454 | ... finish_check_cards.push(card_i2.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `if let` or `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:463:9 [INFO] [stdout] | [INFO] [stdout] 463 | return false; [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] 463 - return false; [INFO] [stdout] 463 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:431:45 [INFO] [stdout] | [INFO] [stdout] 431 | / ... if word_i == word { [INFO] [stdout] 432 | | ... for i2 in player.cards.iter() { [INFO] [stdout] 433 | | ... match i2.card_type { [INFO] [stdout] 434 | | ... PMJCardTypes::Words(word_i2) => { [INFO] [stdout] ... | [INFO] [stdout] 444 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 430 ~ PMJCardTypes::Words(word_i) [INFO] [stdout] 431 ~ if word_i == word => { [INFO] [stdout] 432 | for i2 in player.cards.iter() { [INFO] [stdout] ... [INFO] [stdout] 443 | } [INFO] [stdout] 444 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:429:37 [INFO] [stdout] | [INFO] [stdout] 429 | / ... match i.card_type { [INFO] [stdout] 430 | | ... PMJCardTypes::Words(word_i) => { [INFO] [stdout] 431 | | ... if word_i == word { [INFO] [stdout] 432 | | ... for i2 in player.cards.iter() { [INFO] [stdout] ... | [INFO] [stdout] 446 | | ... _ => {} [INFO] [stdout] 447 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 429 ~ if let PMJCardTypes::Words(word_i) = i.card_type { [INFO] [stdout] 430 + if word_i == word { [INFO] [stdout] 431 + for i2 in player.cards.iter() { [INFO] [stdout] 432 + match i2.card_type { [INFO] [stdout] 433 + PMJCardTypes::Words(word_i2) => { [INFO] [stdout] 434 + if word_i2 == word { [INFO] [stdout] 435 + card_i = Some(i); [INFO] [stdout] 436 + card_i2 = Some(i2); [INFO] [stdout] 437 + break 'loop_i; [INFO] [stdout] 438 + } [INFO] [stdout] 439 + } [INFO] [stdout] 440 + _ => {} [INFO] [stdout] 441 + } [INFO] [stdout] 442 + } [INFO] [stdout] 443 + } [INFO] [stdout] 444 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:435:61 [INFO] [stdout] | [INFO] [stdout] 435 | / ... if word_i2 == word { [INFO] [stdout] 436 | | ... card_i = Some(i); [INFO] [stdout] 437 | | ... card_i2 = Some(i2); [INFO] [stdout] 438 | | ... break 'loop_i; [INFO] [stdout] 439 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 434 ~ PMJCardTypes::Words(word_i2) [INFO] [stdout] 435 ~ if word_i2 == word => { [INFO] [stdout] 436 | card_i = Some(i); [INFO] [stdout] 437 | card_i2 = Some(i2); [INFO] [stdout] 438 | break 'loop_i; [INFO] [stdout] 439 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:433:53 [INFO] [stdout] | [INFO] [stdout] 433 | / ... match i2.card_type { [INFO] [stdout] 434 | | ... PMJCardTypes::Words(word_i2) => { [INFO] [stdout] 435 | | ... if word_i2 == word { [INFO] [stdout] 436 | | ... card_i = Some(i); [INFO] [stdout] ... | [INFO] [stdout] 441 | | ... _ => {} [INFO] [stdout] 442 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 433 ~ if let PMJCardTypes::Words(word_i2) = i2.card_type { [INFO] [stdout] 434 + if word_i2 == word { [INFO] [stdout] 435 + card_i = Some(i); [INFO] [stdout] 436 + card_i2 = Some(i2); [INFO] [stdout] 437 + break 'loop_i; [INFO] [stdout] 438 + } [INFO] [stdout] 439 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:477:13 [INFO] [stdout] | [INFO] [stdout] 477 | return Some(index); [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] 477 - return Some(index); [INFO] [stdout] 477 + Some(index) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:479:13 [INFO] [stdout] | [INFO] [stdout] 479 | return None; [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] 479 - return None; [INFO] [stdout] 479 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:502:13 [INFO] [stdout] | [INFO] [stdout] 502 | return Either::Left(String::from("遊戲未開始!")); [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] 502 - return Either::Left(String::from("遊戲未開始!")); [INFO] [stdout] 502 + Either::Left(String::from("遊戲未開始!")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:515:13 [INFO] [stdout] | [INFO] [stdout] 515 | return Either::Right(()); [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] 515 - return Either::Right(()); [INFO] [stdout] 515 + Either::Right(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:517:13 [INFO] [stdout] | [INFO] [stdout] 517 | return Either::Left(String::from("無此玩家或非此玩家回合!")); [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] 517 - return Either::Left(String::from("無此玩家或非此玩家回合!")); [INFO] [stdout] 517 + Either::Left(String::from("無此玩家或非此玩家回合!")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:529:13 [INFO] [stdout] | [INFO] [stdout] 529 | return Either::Left(String::from("遊戲未開始!")); [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] 529 - return Either::Left(String::from("遊戲未開始!")); [INFO] [stdout] 529 + Either::Left(String::from("遊戲未開始!")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:542:13 [INFO] [stdout] | [INFO] [stdout] 542 | return Either::Right(()); [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] 542 - return Either::Right(()); [INFO] [stdout] 542 + Either::Right(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:544:13 [INFO] [stdout] | [INFO] [stdout] 544 | return Either::Left(String::from("無此玩家或非此玩家回合!")); [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] 544 - return Either::Left(String::from("無此玩家或非此玩家回合!")); [INFO] [stdout] 544 + Either::Left(String::from("無此玩家或非此玩家回合!")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:556:13 [INFO] [stdout] | [INFO] [stdout] 556 | return Either::Left(String::from("遊戲未開始!")); [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] 556 - return Either::Left(String::from("遊戲未開始!")); [INFO] [stdout] 556 + Either::Left(String::from("遊戲未開始!")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:569:13 [INFO] [stdout] | [INFO] [stdout] 569 | return Either::Right(()); [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] 569 - return Either::Right(()); [INFO] [stdout] 569 + Either::Right(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:571:13 [INFO] [stdout] | [INFO] [stdout] 571 | return Either::Left(String::from("無此玩家或非此玩家回合!")); [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] 571 - return Either::Left(String::from("無此玩家或非此玩家回合!")); [INFO] [stdout] 571 + Either::Left(String::from("無此玩家或非此玩家回合!")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `exit_loop` is never read [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:782:41 [INFO] [stdout] | [INFO] [stdout] 782 | ... exit_loop = true; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:583:13 [INFO] [stdout] | [INFO] [stdout] 583 | return Either::Left(String::from("遊戲未開始!")); [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] 583 - return Either::Left(String::from("遊戲未開始!")); [INFO] [stdout] 583 + Either::Left(String::from("遊戲未開始!")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:596:13 [INFO] [stdout] | [INFO] [stdout] 596 | return Either::Right(()); [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] 596 - return Either::Right(()); [INFO] [stdout] 596 + Either::Right(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:598:13 [INFO] [stdout] | [INFO] [stdout] 598 | return Either::Left(String::from("無此玩家或非此玩家回合!")); [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] 598 - return Either::Left(String::from("無此玩家或非此玩家回合!")); [INFO] [stdout] 598 + Either::Left(String::from("無此玩家或非此玩家回合!")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:694:13 [INFO] [stdout] | [INFO] [stdout] 694 | return false; [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] 694 - return false; [INFO] [stdout] 694 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:715:28 [INFO] [stdout] | [INFO] [stdout] 715 | if !(action.player_number == player_number) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(action.player_number != player_number)` [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: using `clone` on type `PMJCard` which implements the `Copy` trait [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:854:24 [INFO] [stdout] | [INFO] [stdout] 854 | let card = self.unuse_cards.choose(&mut rng).unwrap().clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*self.unuse_cards.choose(&mut rng).unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PMJCard` which implements the `Copy` trait [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:857:20 [INFO] [stdout] | [INFO] [stdout] 857 | if unuse_card.clone() == card.clone() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*unuse_card` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PMJCard` which implements the `Copy` trait [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:857:42 [INFO] [stdout] | [INFO] [stdout] 857 | if unuse_card.clone() == card.clone() { [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `card` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PositiveMahjong` is never constructed [INFO] [stdout] --> pmj_server/src/gamemodes/mode_base.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct PositiveMahjong { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> pmj_server/src/server.rs:80:5 [INFO] [stdout] | [INFO] [stdout] 80 | / let mut servers = Vec::new(); [INFO] [stdout] 81 | | servers.push(handle_server_v1_simple( [INFO] [stdout] 82 | | server_addr_ipv4, [INFO] [stdout] 83 | | sync::Arc::clone(&backend), [INFO] [stdout] ... | [INFO] [stdout] 87 | | sync::Arc::clone(&backend), [INFO] [stdout] 88 | | )); [INFO] [stdout] | |_______^ help: consider using the `vec![]` macro: `let servers = 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: associated function `new` is never used [INFO] [stdout] --> pmj_server/src/gamemodes/mode_base.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 8 | impl PositiveMahjong { [INFO] [stdout] | -------------------- associated function in this implementation [INFO] [stdout] 9 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `player_ip` is never read [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:29:9 [INFO] [stdout] | [INFO] [stdout] 28 | pub struct PlayerWaitRoundAction { [INFO] [stdout] | --------------------- field in this struct [INFO] [stdout] 29 | pub player_ip: std::net::SocketAddr, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PlayerWaitRoundAction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `player_ip` is never read [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:44:9 [INFO] [stdout] | [INFO] [stdout] 43 | pub struct AfterAction { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] 44 | pub player_ip: std::net::SocketAddr, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `AfterAction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `player_ip` is never read [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:59:9 [INFO] [stdout] | [INFO] [stdout] 58 | pub struct PlayerPlayerRoundAction { [INFO] [stdout] | ----------------------- field in this struct [INFO] [stdout] 59 | pub player_ip: std::net::SocketAddr, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PlayerPlayerRoundAction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:233:12 [INFO] [stdout] | [INFO] [stdout] 104 | impl PositiveMahjong { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 233 | pub fn replacing_a_flower( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 273 | pub fn get_cards( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 293 | pub fn get_game_status(&self) -> GameStatus { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 330 | fn check_win(&mut self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 466 | fn check_win_have_card( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 495 | pub fn player_round_action( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 522 | pub fn wait_round_action( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 549 | pub fn player_round_after_action( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 576 | pub fn wait_round_after_action( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> pmj_server/src/server.rs:160:21 [INFO] [stdout] | [INFO] [stdout] 160 | / match request.respond(response) { [INFO] [stdout] 161 | | Ok(_) => {} [INFO] [stdout] 162 | | Err(_) => {} [INFO] [stdout] 163 | | } [INFO] [stdout] | |_____________________^ help: try: `if let Ok(_) = request.respond(response) {}` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `SocketAddr` which implements the `Copy` trait [INFO] [stdout] --> pmj_server/src/server.rs:168:52 [INFO] [stdout] | [INFO] [stdout] 168 | ... match guard.add_player(request.remote_addr().unwrap().clone()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*request.remote_addr().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> pmj_server/src/server.rs:215:46 [INFO] [stdout] | [INFO] [stdout] 215 | ... msg: String::from(format!( [INFO] [stdout] | ____________________________^ [INFO] [stdout] 216 | | ... "Hello to client {}", [INFO] [stdout] 217 | | ... content_data.client [INFO] [stdout] 218 | | ... )), [INFO] [stdout] | |________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] help: consider removing `String::from()` [INFO] [stdout] | [INFO] [stdout] 215 ~ msg: format!( [INFO] [stdout] 216 + "Hello to client {}", [INFO] [stdout] 217 + content_data.client [INFO] [stdout] 218 ~ ), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `SocketAddr` which implements the `Copy` trait [INFO] [stdout] --> pmj_server/src/server.rs:238:33 [INFO] [stdout] | [INFO] [stdout] 238 | ... request.remote_addr().unwrap().clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*request.remote_addr().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:107:26 [INFO] [stdout] | [INFO] [stdout] 107 | for card_type in vec![ [INFO] [stdout] | __________________________^ [INFO] [stdout] 108 | | PMJCardTypes::TenThousand, [INFO] [stdout] 109 | | PMJCardTypes::Line, [INFO] [stdout] 110 | | PMJCardTypes::Dots, [INFO] [stdout] 111 | | ] { [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] = note: `#[warn(clippy::useless_vec)]` on by default [INFO] [stdout] help: you can use an array directly [INFO] [stdout] | [INFO] [stdout] 107 ~ for card_type in [PMJCardTypes::TenThousand, [INFO] [stdout] 108 + PMJCardTypes::Line, [INFO] [stdout] 109 ~ PMJCardTypes::Dots] { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:300:36 [INFO] [stdout] | [INFO] [stdout] 300 | for _round_type in vec![GameRoundType::PlayerRoound, GameRoundType::WaitRound] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use an array directly: `[GameRoundType::PlayerRoound, GameRoundType::WaitRound]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:162:13 [INFO] [stdout] | [INFO] [stdout] 162 | return Either::Left(String::from("人數已達上限!")); [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] 162 - return Either::Left(String::from("人數已達上限!")); [INFO] [stdout] 162 + Either::Left(String::from("人數已達上限!")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:164:13 [INFO] [stdout] | [INFO] [stdout] 164 | return Either::Left(String::from("遊戲已開始!")); [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] 164 - return Either::Left(String::from("遊戲已開始!")); [INFO] [stdout] 164 + Either::Left(String::from("遊戲已開始!")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:172:13 [INFO] [stdout] | [INFO] [stdout] 172 | return Either::Right(self.player_count.clone()); [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] 172 - return Either::Right(self.player_count.clone()); [INFO] [stdout] 172 + Either::Right(self.player_count.clone()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u8` which implements the `Copy` trait [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:172:34 [INFO] [stdout] | [INFO] [stdout] 172 | return Either::Right(self.player_count.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.player_count` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:178:13 [INFO] [stdout] | [INFO] [stdout] 178 | return Either::Left(String::from("遊戲已開始!")); [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] 178 - return Either::Left(String::from("遊戲已開始!")); [INFO] [stdout] 178 + Either::Left(String::from("遊戲已開始!")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:193:13 [INFO] [stdout] | [INFO] [stdout] 193 | return Either::Right(()); [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] 193 - return Either::Right(()); [INFO] [stdout] 193 + Either::Right(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:195:13 [INFO] [stdout] | [INFO] [stdout] 195 | return Either::Left(String::from("無此玩家!")); [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] 195 - return Either::Left(String::from("無此玩家!")); [INFO] [stdout] 195 + Either::Left(String::from("無此玩家!")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:200:9 [INFO] [stdout] | [INFO] [stdout] 200 | return self.is_start.clone(); [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 self.is_start.clone(); [INFO] [stdout] 200 + self.is_start.clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `bool` which implements the `Copy` trait [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:200:16 [INFO] [stdout] | [INFO] [stdout] 200 | return self.is_start.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.is_start` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:239:13 [INFO] [stdout] | [INFO] [stdout] 239 | return Either::Left(String::from("遊戲未開始!")); [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] 239 - return Either::Left(String::from("遊戲未開始!")); [INFO] [stdout] 239 + Either::Left(String::from("遊戲未開始!")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:257:17 [INFO] [stdout] | [INFO] [stdout] 257 | return Either::Left(String::from("無花可補!")); [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] 257 - return Either::Left(String::from("無花可補!")); [INFO] [stdout] 257 + Either::Left(String::from("無花可補!")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:265:17 [INFO] [stdout] | [INFO] [stdout] 265 | return Either::Right(()); [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] 265 - return Either::Right(()); [INFO] [stdout] 265 + Either::Right(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:268:13 [INFO] [stdout] | [INFO] [stdout] 268 | return Either::Left(String::from("無此玩家!")); [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] 268 - return Either::Left(String::from("無此玩家!")); [INFO] [stdout] 268 + Either::Left(String::from("無此玩家!")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:249:17 [INFO] [stdout] | [INFO] [stdout] 249 | / match card.card_type { [INFO] [stdout] 250 | | PMJCardTypes::Flower(_) => { [INFO] [stdout] 251 | | flower_card_indexes.push(card_index.clone()); [INFO] [stdout] ... | [INFO] [stdout] 254 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = note: you might want to preserve the comments from inside the `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 249 ~ if let PMJCardTypes::Flower(_) = card.card_type { [INFO] [stdout] 250 + flower_card_indexes.push(card_index.clone()); [INFO] [stdout] 251 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `usize` which implements the `Copy` trait [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:251:50 [INFO] [stdout] | [INFO] [stdout] 251 | flower_card_indexes.push(card_index.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `card_index` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `usize` which implements the `Copy` trait [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:260:41 [INFO] [stdout] | [INFO] [stdout] 260 | player.cards.remove(index.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try dereferencing it: `*index` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:279:13 [INFO] [stdout] | [INFO] [stdout] 279 | return Either::Left(String::from("遊戲未開始!")); [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] 279 - return Either::Left(String::from("遊戲未開始!")); [INFO] [stdout] 279 + Either::Left(String::from("遊戲未開始!")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:286:13 [INFO] [stdout] | [INFO] [stdout] 286 | return Either::Right(player.cards.clone()); [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] 286 - return Either::Right(player.cards.clone()); [INFO] [stdout] 286 + Either::Right(player.cards.clone()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:288:13 [INFO] [stdout] | [INFO] [stdout] 288 | return Either::Left(String::from("無此玩家!")); [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] 288 - return Either::Left(String::from("無此玩家!")); [INFO] [stdout] 288 + Either::Left(String::from("無此玩家!")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:294:9 [INFO] [stdout] | [INFO] [stdout] 294 | return self.game_status.clone(); [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] 294 - return self.game_status.clone(); [INFO] [stdout] 294 + self.game_status.clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `i_card` after checking its variant with `is_none` [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:413:57 [INFO] [stdout] | [INFO] [stdout] 409 | ... if i_card.is_none() || i2_card.is_none() { [INFO] [stdout] | ---------------- the check is happening here [INFO] [stdout] ... [INFO] [stdout] 413 | ... finish_check_cards.push(i_card.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `if let` or `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `i2_card` after checking its variant with `is_none` [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:414:57 [INFO] [stdout] | [INFO] [stdout] 409 | ... if i_card.is_none() || i2_card.is_none() { [INFO] [stdout] | ----------------- the check is happening here [INFO] [stdout] ... [INFO] [stdout] 414 | ... finish_check_cards.push(i2_card.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `if let` or `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `card_i` after checking its variant with `is_none` [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:453:61 [INFO] [stdout] | [INFO] [stdout] 449 | ... if card_i.is_none() || card_i2.is_none() { [INFO] [stdout] | ---------------- the check is happening here [INFO] [stdout] ... [INFO] [stdout] 453 | ... finish_check_cards.push(card_i.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `if let` or `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `card_i2` after checking its variant with `is_none` [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:454:61 [INFO] [stdout] | [INFO] [stdout] 449 | ... if card_i.is_none() || card_i2.is_none() { [INFO] [stdout] | ----------------- the check is happening here [INFO] [stdout] ... [INFO] [stdout] 454 | ... finish_check_cards.push(card_i2.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `if let` or `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:463:9 [INFO] [stdout] | [INFO] [stdout] 463 | return false; [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] 463 - return false; [INFO] [stdout] 463 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:431:45 [INFO] [stdout] | [INFO] [stdout] 431 | / ... if word_i == word { [INFO] [stdout] 432 | | ... for i2 in player.cards.iter() { [INFO] [stdout] 433 | | ... match i2.card_type { [INFO] [stdout] 434 | | ... PMJCardTypes::Words(word_i2) => { [INFO] [stdout] ... | [INFO] [stdout] 444 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 430 ~ PMJCardTypes::Words(word_i) [INFO] [stdout] 431 ~ if word_i == word => { [INFO] [stdout] 432 | for i2 in player.cards.iter() { [INFO] [stdout] ... [INFO] [stdout] 443 | } [INFO] [stdout] 444 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:429:37 [INFO] [stdout] | [INFO] [stdout] 429 | / ... match i.card_type { [INFO] [stdout] 430 | | ... PMJCardTypes::Words(word_i) => { [INFO] [stdout] 431 | | ... if word_i == word { [INFO] [stdout] 432 | | ... for i2 in player.cards.iter() { [INFO] [stdout] ... | [INFO] [stdout] 446 | | ... _ => {} [INFO] [stdout] 447 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 429 ~ if let PMJCardTypes::Words(word_i) = i.card_type { [INFO] [stdout] 430 + if word_i == word { [INFO] [stdout] 431 + for i2 in player.cards.iter() { [INFO] [stdout] 432 + match i2.card_type { [INFO] [stdout] 433 + PMJCardTypes::Words(word_i2) => { [INFO] [stdout] 434 + if word_i2 == word { [INFO] [stdout] 435 + card_i = Some(i); [INFO] [stdout] 436 + card_i2 = Some(i2); [INFO] [stdout] 437 + break 'loop_i; [INFO] [stdout] 438 + } [INFO] [stdout] 439 + } [INFO] [stdout] 440 + _ => {} [INFO] [stdout] 441 + } [INFO] [stdout] 442 + } [INFO] [stdout] 443 + } [INFO] [stdout] 444 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling slint-build v1.15.1 [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:435:61 [INFO] [stdout] | [INFO] [stdout] 435 | / ... if word_i2 == word { [INFO] [stdout] 436 | | ... card_i = Some(i); [INFO] [stdout] 437 | | ... card_i2 = Some(i2); [INFO] [stdout] 438 | | ... break 'loop_i; [INFO] [stdout] 439 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 434 ~ PMJCardTypes::Words(word_i2) [INFO] [stdout] 435 ~ if word_i2 == word => { [INFO] [stdout] 436 | card_i = Some(i); [INFO] [stdout] 437 | card_i2 = Some(i2); [INFO] [stdout] 438 | break 'loop_i; [INFO] [stdout] 439 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:433:53 [INFO] [stdout] | [INFO] [stdout] 433 | / ... match i2.card_type { [INFO] [stdout] 434 | | ... PMJCardTypes::Words(word_i2) => { [INFO] [stdout] 435 | | ... if word_i2 == word { [INFO] [stdout] 436 | | ... card_i = Some(i); [INFO] [stdout] ... | [INFO] [stdout] 441 | | ... _ => {} [INFO] [stdout] 442 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 433 ~ if let PMJCardTypes::Words(word_i2) = i2.card_type { [INFO] [stdout] 434 + if word_i2 == word { [INFO] [stdout] 435 + card_i = Some(i); [INFO] [stdout] 436 + card_i2 = Some(i2); [INFO] [stdout] 437 + break 'loop_i; [INFO] [stdout] 438 + } [INFO] [stdout] 439 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:477:13 [INFO] [stdout] | [INFO] [stdout] 477 | return Some(index); [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] 477 - return Some(index); [INFO] [stdout] 477 + Some(index) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:479:13 [INFO] [stdout] | [INFO] [stdout] 479 | return None; [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] 479 - return None; [INFO] [stdout] 479 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:502:13 [INFO] [stdout] | [INFO] [stdout] 502 | return Either::Left(String::from("遊戲未開始!")); [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] 502 - return Either::Left(String::from("遊戲未開始!")); [INFO] [stdout] 502 + Either::Left(String::from("遊戲未開始!")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:515:13 [INFO] [stdout] | [INFO] [stdout] 515 | return Either::Right(()); [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] 515 - return Either::Right(()); [INFO] [stdout] 515 + Either::Right(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:517:13 [INFO] [stdout] | [INFO] [stdout] 517 | return Either::Left(String::from("無此玩家或非此玩家回合!")); [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] 517 - return Either::Left(String::from("無此玩家或非此玩家回合!")); [INFO] [stdout] 517 + Either::Left(String::from("無此玩家或非此玩家回合!")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:529:13 [INFO] [stdout] | [INFO] [stdout] 529 | return Either::Left(String::from("遊戲未開始!")); [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] 529 - return Either::Left(String::from("遊戲未開始!")); [INFO] [stdout] 529 + Either::Left(String::from("遊戲未開始!")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:542:13 [INFO] [stdout] | [INFO] [stdout] 542 | return Either::Right(()); [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] 542 - return Either::Right(()); [INFO] [stdout] 542 + Either::Right(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:544:13 [INFO] [stdout] | [INFO] [stdout] 544 | return Either::Left(String::from("無此玩家或非此玩家回合!")); [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] 544 - return Either::Left(String::from("無此玩家或非此玩家回合!")); [INFO] [stdout] 544 + Either::Left(String::from("無此玩家或非此玩家回合!")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:556:13 [INFO] [stdout] | [INFO] [stdout] 556 | return Either::Left(String::from("遊戲未開始!")); [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] 556 - return Either::Left(String::from("遊戲未開始!")); [INFO] [stdout] 556 + Either::Left(String::from("遊戲未開始!")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:569:13 [INFO] [stdout] | [INFO] [stdout] 569 | return Either::Right(()); [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] 569 - return Either::Right(()); [INFO] [stdout] 569 + Either::Right(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:571:13 [INFO] [stdout] | [INFO] [stdout] 571 | return Either::Left(String::from("無此玩家或非此玩家回合!")); [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] 571 - return Either::Left(String::from("無此玩家或非此玩家回合!")); [INFO] [stdout] 571 + Either::Left(String::from("無此玩家或非此玩家回合!")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:583:13 [INFO] [stdout] | [INFO] [stdout] 583 | return Either::Left(String::from("遊戲未開始!")); [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] 583 - return Either::Left(String::from("遊戲未開始!")); [INFO] [stdout] 583 + Either::Left(String::from("遊戲未開始!")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:596:13 [INFO] [stdout] | [INFO] [stdout] 596 | return Either::Right(()); [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] 596 - return Either::Right(()); [INFO] [stdout] 596 + Either::Right(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:598:13 [INFO] [stdout] | [INFO] [stdout] 598 | return Either::Left(String::from("無此玩家或非此玩家回合!")); [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] 598 - return Either::Left(String::from("無此玩家或非此玩家回合!")); [INFO] [stdout] 598 + Either::Left(String::from("無此玩家或非此玩家回合!")) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:694:13 [INFO] [stdout] | [INFO] [stdout] 694 | return false; [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] 694 - return false; [INFO] [stdout] 694 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:715:28 [INFO] [stdout] | [INFO] [stdout] 715 | if !(action.player_number == player_number) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(action.player_number != player_number)` [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: using `clone` on type `PMJCard` which implements the `Copy` trait [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:854:24 [INFO] [stdout] | [INFO] [stdout] 854 | let card = self.unuse_cards.choose(&mut rng).unwrap().clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*self.unuse_cards.choose(&mut rng).unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PMJCard` which implements the `Copy` trait [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:857:20 [INFO] [stdout] | [INFO] [stdout] 857 | if unuse_card.clone() == card.clone() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*unuse_card` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PMJCard` which implements the `Copy` trait [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:857:42 [INFO] [stdout] | [INFO] [stdout] 857 | if unuse_card.clone() == card.clone() { [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `card` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> pmj_server/src/server.rs:80:5 [INFO] [stdout] | [INFO] [stdout] 80 | / let mut servers = Vec::new(); [INFO] [stdout] 81 | | servers.push(handle_server_v1_simple( [INFO] [stdout] 82 | | server_addr_ipv4, [INFO] [stdout] 83 | | sync::Arc::clone(&backend), [INFO] [stdout] ... | [INFO] [stdout] 87 | | sync::Arc::clone(&backend), [INFO] [stdout] 88 | | )); [INFO] [stdout] | |_______^ help: consider using the `vec![]` macro: `let servers = 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: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> pmj_server/src/server.rs:160:21 [INFO] [stdout] | [INFO] [stdout] 160 | / match request.respond(response) { [INFO] [stdout] 161 | | Ok(_) => {} [INFO] [stdout] 162 | | Err(_) => {} [INFO] [stdout] 163 | | } [INFO] [stdout] | |_____________________^ help: try: `if let Ok(_) = request.respond(response) {}` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `SocketAddr` which implements the `Copy` trait [INFO] [stdout] --> pmj_server/src/server.rs:168:52 [INFO] [stdout] | [INFO] [stdout] 168 | ... match guard.add_player(request.remote_addr().unwrap().clone()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*request.remote_addr().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> pmj_server/src/server.rs:215:46 [INFO] [stdout] | [INFO] [stdout] 215 | ... msg: String::from(format!( [INFO] [stdout] | ____________________________^ [INFO] [stdout] 216 | | ... "Hello to client {}", [INFO] [stdout] 217 | | ... content_data.client [INFO] [stdout] 218 | | ... )), [INFO] [stdout] | |________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] help: consider removing `String::from()` [INFO] [stdout] | [INFO] [stdout] 215 ~ msg: format!( [INFO] [stdout] 216 + "Hello to client {}", [INFO] [stdout] 217 + content_data.client [INFO] [stdout] 218 ~ ), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `SocketAddr` which implements the `Copy` trait [INFO] [stdout] --> pmj_server/src/server.rs:238:33 [INFO] [stdout] | [INFO] [stdout] 238 | ... request.remote_addr().unwrap().clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*request.remote_addr().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:107:26 [INFO] [stdout] | [INFO] [stdout] 107 | for card_type in vec![ [INFO] [stdout] | __________________________^ [INFO] [stdout] 108 | | PMJCardTypes::TenThousand, [INFO] [stdout] 109 | | PMJCardTypes::Line, [INFO] [stdout] 110 | | PMJCardTypes::Dots, [INFO] [stdout] 111 | | ] { [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] = note: `#[warn(clippy::useless_vec)]` on by default [INFO] [stdout] help: you can use an array directly [INFO] [stdout] | [INFO] [stdout] 107 ~ for card_type in [PMJCardTypes::TenThousand, [INFO] [stdout] 108 + PMJCardTypes::Line, [INFO] [stdout] 109 ~ PMJCardTypes::Dots] { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> pmj_server/src/gamemodes/modev1_simple.rs:300:36 [INFO] [stdout] | [INFO] [stdout] 300 | for _round_type in vec![GameRoundType::PlayerRoound, GameRoundType::WaitRound] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use an array directly: `[GameRoundType::PlayerRoound, GameRoundType::WaitRound]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking rustls-webpki v0.103.9 [INFO] [stderr] Compiling slint-macros v1.15.1 [INFO] [stderr] Compiling pmj_client v0.1.0 (/opt/rustwide/workdir/pmj_client) [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> pmj_client/build.rs:26:1 [INFO] [stdout] | [INFO] [stdout] 26 | 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] = note: `#[warn(clippy::single_component_path_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> pmj_client/build.rs:28:1 [INFO] [stdout] | [INFO] [stdout] 28 | use slint_build; [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] [stderr] Checking tokio-rustls v0.26.4 [INFO] [stderr] Checking rustls-platform-verifier v0.6.2 [INFO] [stderr] Checking hyper-rustls v0.27.7 [INFO] [stderr] Checking reqwest v0.13.2 [INFO] [stderr] Checking slint v1.15.1 [INFO] [stderr] Checking pmj_test_connection v0.1.0 (/opt/rustwide/workdir/pmj_test_connection) [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> pmj_test_connection/src/client.rs:17:1 [INFO] [stdout] | [INFO] [stdout] 17 | use reqwest; [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: this import is redundant [INFO] [stdout] --> pmj_test_connection/src/client.rs:18:1 [INFO] [stdout] | [INFO] [stdout] 18 | use serde_json; [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: this import is redundant [INFO] [stdout] --> pmj_test_connection/src/client.rs:19:1 [INFO] [stdout] | [INFO] [stdout] 19 | 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: this import is redundant [INFO] [stdout] --> pmj_test_connection/src/client.rs:17:1 [INFO] [stdout] | [INFO] [stdout] 17 | use reqwest; [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: this import is redundant [INFO] [stdout] --> pmj_test_connection/src/client.rs:18:1 [INFO] [stdout] | [INFO] [stdout] 18 | use serde_json; [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: this import is redundant [INFO] [stdout] --> pmj_test_connection/src/client.rs:19:1 [INFO] [stdout] | [INFO] [stdout] 19 | 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: using `clone` on type `Duration` which implements the `Copy` trait [INFO] [stdout] --> pmj_test_connection/src/client.rs:44:18 [INFO] [stdout] | [INFO] [stdout] 44 | .timeout(timeout_duration.clone()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `timeout_duration` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Duration` which implements the `Copy` trait [INFO] [stdout] --> pmj_test_connection/src/client.rs:67:18 [INFO] [stdout] | [INFO] [stdout] 67 | .timeout(timeout_duration.clone()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `timeout_duration` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u8` which implements the `Copy` trait [INFO] [stdout] --> pmj_test_connection/src/client.rs:80:25 [INFO] [stdout] | [INFO] [stdout] 80 | number: number.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try removing the `clone` call: `number` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Duration` which implements the `Copy` trait [INFO] [stdout] --> pmj_test_connection/src/client.rs:95:22 [INFO] [stdout] | [INFO] [stdout] 95 | .timeout(timeout_duration.clone()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `timeout_duration` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Duration` which implements the `Copy` trait [INFO] [stdout] --> pmj_test_connection/src/client.rs:44:18 [INFO] [stdout] | [INFO] [stdout] 44 | .timeout(timeout_duration.clone()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `timeout_duration` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Duration` which implements the `Copy` trait [INFO] [stdout] --> pmj_test_connection/src/client.rs:67:18 [INFO] [stdout] | [INFO] [stdout] 67 | .timeout(timeout_duration.clone()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `timeout_duration` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u8` which implements the `Copy` trait [INFO] [stdout] --> pmj_test_connection/src/client.rs:80:25 [INFO] [stdout] | [INFO] [stdout] 80 | number: number.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try removing the `clone` call: `number` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Duration` which implements the `Copy` trait [INFO] [stdout] --> pmj_test_connection/src/client.rs:95:22 [INFO] [stdout] | [INFO] [stdout] 95 | .timeout(timeout_duration.clone()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `timeout_duration` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> pmj_client/src/lib.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | use slint; [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: unused import: `Global` [INFO] [stdout] --> pmj_client/src/lib.rs:2:30 [INFO] [stdout] | [INFO] [stdout] 2 | use slint::{ComponentHandle, Global}; [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] --> pmj_client/src/client.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | use reqwest; [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: `gamemodes_shared` [INFO] [stdout] --> pmj_client/src/client.rs:7:18 [INFO] [stdout] | [INFO] [stdout] 7 | use pmj_shared::{gamemodes_shared, shared}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> pmj_client/src/lib.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | use slint; [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: unused import: `Global` [INFO] [stdout] --> pmj_client/src/lib.rs:2:30 [INFO] [stdout] | [INFO] [stdout] 2 | use slint::{ComponentHandle, Global}; [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] --> pmj_client/src/client.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | use reqwest; [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: `gamemodes_shared` [INFO] [stdout] --> pmj_client/src/client.rs:7:18 [INFO] [stdout] | [INFO] [stdout] 7 | use pmj_shared::{gamemodes_shared, shared}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TextStyle` is never constructed [INFO] [stdout] --> /opt/rustwide/target/debug/build/pmj_client-f384f00177620a33/out/main.rs:12:66 [INFO] [stdout] | [INFO] [stdout] 12 | # [derive (Default , PartialEq , Debug , Clone)] pub struct r#TextStyle { [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 `TextStyle` is never constructed [INFO] [stdout] --> /opt/rustwide/target/debug/build/pmj_client-f384f00177620a33/out/main.rs:12:66 [INFO] [stdout] | [INFO] [stdout] 12 | # [derive (Default , PartialEq , Debug , Clone)] pub struct r#TextStyle { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_client/src/client.rs:103:5 [INFO] [stdout] | [INFO] [stdout] 103 | return main_window; [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] 103 - return main_window; [INFO] [stdout] 103 + main_window [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Duration` which implements the `Copy` trait [INFO] [stdout] --> pmj_client/src/client.rs:66:30 [INFO] [stdout] | [INFO] [stdout] 66 | .timeout(timeout_duration.clone()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `timeout_duration` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> pmj_client/src/client.rs:77:52 [INFO] [stdout] | [INFO] [stdout] 77 | ... .unwrap_or(String::from(resp_text)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `resp_text` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> pmj_client/src/client.rs:88:68 [INFO] [stdout] | [INFO] [stdout] 88 | resp_body_text.push_str(&format!("錯誤:{}", e.to_string())); [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] = note: `#[warn(clippy::to_string_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> pmj_client/src/client.rs:103:5 [INFO] [stdout] | [INFO] [stdout] 103 | return main_window; [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] 103 - return main_window; [INFO] [stdout] 103 + main_window [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Duration` which implements the `Copy` trait [INFO] [stdout] --> pmj_client/src/client.rs:66:30 [INFO] [stdout] | [INFO] [stdout] 66 | .timeout(timeout_duration.clone()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `timeout_duration` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> pmj_client/src/client.rs:77:52 [INFO] [stdout] | [INFO] [stdout] 77 | ... .unwrap_or(String::from(resp_text)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `resp_text` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> pmj_client/src/client.rs:88:68 [INFO] [stdout] | [INFO] [stdout] 88 | resp_body_text.push_str(&format!("錯誤:{}", e.to_string())); [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] = note: `#[warn(clippy::to_string_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 8m 53s [INFO] running `Command { std: "docker" "inspect" "40ce35662d7712806186d31a56675816814631810c3ce388f6158135246a0e50", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "40ce35662d7712806186d31a56675816814631810c3ce388f6158135246a0e50", kill_on_drop: false }` [INFO] [stdout] 40ce35662d7712806186d31a56675816814631810c3ce388f6158135246a0e50