[INFO] updating cached repository chyvonomys/h3m [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/chyvonomys/h3m [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/chyvonomys/h3m" "work/ex/clippy-test-run/sources/stable/gh/chyvonomys/h3m"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/chyvonomys/h3m'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/chyvonomys/h3m" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/chyvonomys/h3m"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/chyvonomys/h3m'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] e010d95a47ecfa11671f9288e3a4df8d07812649 [INFO] sha for GitHub repo chyvonomys/h3m: e010d95a47ecfa11671f9288e3a4df8d07812649 [INFO] validating manifest of chyvonomys/h3m on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of chyvonomys/h3m on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing chyvonomys/h3m [INFO] finished frobbing chyvonomys/h3m [INFO] frobbed toml for chyvonomys/h3m written to work/ex/clippy-test-run/sources/stable/gh/chyvonomys/h3m/Cargo.toml [INFO] started frobbing chyvonomys/h3m [INFO] finished frobbing chyvonomys/h3m [INFO] frobbed toml for chyvonomys/h3m written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/chyvonomys/h3m/Cargo.toml [INFO] crate chyvonomys/h3m has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting chyvonomys/h3m against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/chyvonomys/h3m:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 44382a6fb8ffd169f6012ad959869a7be22784081324e6878aa38b3e6c3152ec [INFO] running `"docker" "start" "-a" "44382a6fb8ffd169f6012ad959869a7be22784081324e6878aa38b3e6c3152ec"` [INFO] [stderr] Checking memchr v2.0.1 [INFO] [stderr] Checking flate2 v1.0.1 [INFO] [stderr] Checking nom v4.0.0-beta1 [INFO] [stderr] Checking h3m v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/enums.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 51 | / h3m_enum_derive! { [Debug, Clone, Copy] [INFO] [stderr] 52 | | [INFO] [stderr] 53 | | (2, AltarOfSacrifice) [INFO] [stderr] 54 | | [INFO] [stderr] ... | [INFO] [stderr] 236 | | (231, RockLands) [INFO] [stderr] 237 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/enums.rs:38:27 [INFO] [stderr] | [INFO] [stderr] 38 | let ret = Put::$p(o, &v.write()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 51 | / h3m_enum_derive! { [Debug, Clone, Copy] [INFO] [stderr] 52 | | [INFO] [stderr] 53 | | (2, AltarOfSacrifice) [INFO] [stderr] 54 | | [INFO] [stderr] ... | [INFO] [stderr] 236 | | (231, RockLands) [INFO] [stderr] 237 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/enums.rs:240:6 [INFO] [stderr] | [INFO] [stderr] 240 | (0x0000000E, RoE) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_000E` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/enums.rs:241:6 [INFO] [stderr] | [INFO] [stderr] 241 | (0x00000015, AB) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0015` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/enums.rs:242:6 [INFO] [stderr] | [INFO] [stderr] 242 | (0x0000001C, SoD) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_001C` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/enums.rs:240:6 [INFO] [stderr] | [INFO] [stderr] 240 | (0x0000000E, RoE) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_000E` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/enums.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 239 | / h3m_enum_derive! { [Debug, Clone, Copy] [INFO] [stderr] 240 | | (0x0000000E, RoE) [INFO] [stderr] 241 | | (0x00000015, AB) [INFO] [stderr] 242 | | (0x0000001C, SoD) [INFO] [stderr] 243 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/enums.rs:38:27 [INFO] [stderr] | [INFO] [stderr] 38 | let ret = Put::$p(o, &v.write()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 239 | / h3m_enum_derive! { [Debug, Clone, Copy] [INFO] [stderr] 240 | | (0x0000000E, RoE) [INFO] [stderr] 241 | | (0x00000015, AB) [INFO] [stderr] 242 | | (0x0000001C, SoD) [INFO] [stderr] 243 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/enums.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 245 | / h3m_enum! { [INFO] [stderr] 246 | | (36, S) [INFO] [stderr] 247 | | (72, M) [INFO] [stderr] 248 | | (108, L) [INFO] [stderr] 249 | | (144, XL) [INFO] [stderr] 250 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/enums.rs:38:27 [INFO] [stderr] | [INFO] [stderr] 38 | let ret = Put::$p(o, &v.write()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 245 | / h3m_enum! { [INFO] [stderr] 246 | | (36, S) [INFO] [stderr] 247 | | (72, M) [INFO] [stderr] 248 | | (108, L) [INFO] [stderr] 249 | | (144, XL) [INFO] [stderr] 250 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/enums.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 252 | / h3m_enum! { [INFO] [stderr] 253 | | (0, Easy) [INFO] [stderr] 254 | | (1, Normal) [INFO] [stderr] 255 | | (2, Hard) [INFO] [stderr] 256 | | (3, Expert) [INFO] [stderr] 257 | | (4, Impossible) [INFO] [stderr] 258 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/enums.rs:38:27 [INFO] [stderr] | [INFO] [stderr] 38 | let ret = Put::$p(o, &v.write()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 252 | / h3m_enum! { [INFO] [stderr] 253 | | (0, Easy) [INFO] [stderr] 254 | | (1, Normal) [INFO] [stderr] 255 | | (2, Hard) [INFO] [stderr] 256 | | (3, Expert) [INFO] [stderr] 257 | | (4, Impossible) [INFO] [stderr] 258 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/enums.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 260 | / h3m_enum! { [INFO] [stderr] 261 | | (0, Unspecified) [INFO] [stderr] 262 | | (1, Basic) [INFO] [stderr] 263 | | (2, Advanced) [INFO] [stderr] 264 | | (3, Expert) [INFO] [stderr] 265 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/enums.rs:38:27 [INFO] [stderr] | [INFO] [stderr] 38 | let ret = Put::$p(o, &v.write()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 260 | / h3m_enum! { [INFO] [stderr] 261 | | (0, Unspecified) [INFO] [stderr] 262 | | (1, Basic) [INFO] [stderr] 263 | | (2, Advanced) [INFO] [stderr] 264 | | (3, Expert) [INFO] [stderr] 265 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/enums.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 267 | / h3m_enum! { [INFO] [stderr] 268 | | (0x00, Male) [INFO] [stderr] 269 | | (0x01, Female) [INFO] [stderr] 270 | | (0xFF, Default) // TODO: option? [INFO] [stderr] 271 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/enums.rs:38:27 [INFO] [stderr] | [INFO] [stderr] 38 | let ret = Put::$p(o, &v.write()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 267 | / h3m_enum! { [INFO] [stderr] 268 | | (0x00, Male) [INFO] [stderr] 269 | | (0x01, Female) [INFO] [stderr] 270 | | (0xFF, Default) // TODO: option? [INFO] [stderr] 271 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/enums.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 273 | / h3m_enum! { [INFO] [stderr] 274 | | (0, Red) [INFO] [stderr] 275 | | (1, Blue) [INFO] [stderr] 276 | | (2, Tan) [INFO] [stderr] ... | [INFO] [stderr] 282 | | (0xFF, Unspecified) // TODO: option? [INFO] [stderr] 283 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/enums.rs:38:27 [INFO] [stderr] | [INFO] [stderr] 38 | let ret = Put::$p(o, &v.write()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 273 | / h3m_enum! { [INFO] [stderr] 274 | | (0, Red) [INFO] [stderr] 275 | | (1, Blue) [INFO] [stderr] 276 | | (2, Tan) [INFO] [stderr] ... | [INFO] [stderr] 282 | | (0xFF, Unspecified) // TODO: option? [INFO] [stderr] 283 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/enums.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 285 | / h3m_enum! { [INFO] [stderr] 286 | | (0, Attack) [INFO] [stderr] 287 | | (1, Defense) [INFO] [stderr] 288 | | (2, SpellPower) [INFO] [stderr] 289 | | (3, Knowledge) [INFO] [stderr] 290 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/enums.rs:38:27 [INFO] [stderr] | [INFO] [stderr] 38 | let ret = Put::$p(o, &v.write()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 285 | / h3m_enum! { [INFO] [stderr] 286 | | (0, Attack) [INFO] [stderr] 287 | | (1, Defense) [INFO] [stderr] 288 | | (2, SpellPower) [INFO] [stderr] 289 | | (3, Knowledge) [INFO] [stderr] 290 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/enums.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 292 | / h3m_enum! { [INFO] [stderr] 293 | | (0, Pathfinding) [INFO] [stderr] 294 | | (1, Archery) [INFO] [stderr] 295 | | (2, Logistics) [INFO] [stderr] ... | [INFO] [stderr] 320 | | (27, FirstAid) [INFO] [stderr] 321 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/enums.rs:38:27 [INFO] [stderr] | [INFO] [stderr] 38 | let ret = Put::$p(o, &v.write()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 292 | / h3m_enum! { [INFO] [stderr] 293 | | (0, Pathfinding) [INFO] [stderr] 294 | | (1, Archery) [INFO] [stderr] 295 | | (2, Logistics) [INFO] [stderr] ... | [INFO] [stderr] 320 | | (27, FirstAid) [INFO] [stderr] 321 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/enums.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 323 | / h3m_enum! { [INFO] [stderr] 324 | | (253, Minus3) [INFO] [stderr] 325 | | (254, Minus2) [INFO] [stderr] 326 | | (255, Minus1) [INFO] [stderr] ... | [INFO] [stderr] 330 | | (3, Plus3) [INFO] [stderr] 331 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/enums.rs:38:27 [INFO] [stderr] | [INFO] [stderr] 38 | let ret = Put::$p(o, &v.write()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 323 | / h3m_enum! { [INFO] [stderr] 324 | | (253, Minus3) [INFO] [stderr] 325 | | (254, Minus2) [INFO] [stderr] 326 | | (255, Minus1) [INFO] [stderr] ... | [INFO] [stderr] 330 | | (3, Plus3) [INFO] [stderr] 331 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/enums.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 333 | / h3m_enum! { [INFO] [stderr] 334 | | (0, SummonBoat) [INFO] [stderr] 335 | | (1, ScuttleBoat) [INFO] [stderr] 336 | | (2, Vision) [INFO] [stderr] ... | [INFO] [stderr] 403 | | (69, AirElemental) [INFO] [stderr] 404 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/enums.rs:38:27 [INFO] [stderr] | [INFO] [stderr] 38 | let ret = Put::$p(o, &v.write()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 333 | / h3m_enum! { [INFO] [stderr] 334 | | (0, SummonBoat) [INFO] [stderr] 335 | | (1, ScuttleBoat) [INFO] [stderr] 336 | | (2, Vision) [INFO] [stderr] ... | [INFO] [stderr] 403 | | (69, AirElemental) [INFO] [stderr] 404 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/enums.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 406 | / h3m_enum! { [INFO] [stderr] 407 | | (0, Compliant) [INFO] [stderr] 408 | | (1, Friendly) [INFO] [stderr] 409 | | (2, Aggressive) [INFO] [stderr] 410 | | (3, Hostile) [INFO] [stderr] 411 | | (4, Savage) [INFO] [stderr] 412 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/enums.rs:38:27 [INFO] [stderr] | [INFO] [stderr] 38 | let ret = Put::$p(o, &v.write()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 406 | / h3m_enum! { [INFO] [stderr] 407 | | (0, Compliant) [INFO] [stderr] 408 | | (1, Friendly) [INFO] [stderr] 409 | | (2, Aggressive) [INFO] [stderr] 410 | | (3, Hostile) [INFO] [stderr] 411 | | (4, Savage) [INFO] [stderr] 412 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/enums.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 414 | / h3m_enum! { [INFO] [stderr] 415 | | (0x00, TrDirt) [INFO] [stderr] 416 | | (0x01, TrSand) [INFO] [stderr] 417 | | (0x02, TrGrass) [INFO] [stderr] ... | [INFO] [stderr] 424 | | (0x09, TrRock) [INFO] [stderr] 425 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/enums.rs:38:27 [INFO] [stderr] | [INFO] [stderr] 38 | let ret = Put::$p(o, &v.write()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 414 | / h3m_enum! { [INFO] [stderr] 415 | | (0x00, TrDirt) [INFO] [stderr] 416 | | (0x01, TrSand) [INFO] [stderr] 417 | | (0x02, TrGrass) [INFO] [stderr] ... | [INFO] [stderr] 424 | | (0x09, TrRock) [INFO] [stderr] 425 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/enums.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 427 | / h3m_enum! { [INFO] [stderr] 428 | | (0x00, RvNone) [INFO] [stderr] 429 | | (0x01, RvClear) [INFO] [stderr] 430 | | (0x02, RvIcy) [INFO] [stderr] 431 | | (0x03, RvMuddy) [INFO] [stderr] 432 | | (0x04, RvLava) [INFO] [stderr] 433 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/enums.rs:38:27 [INFO] [stderr] | [INFO] [stderr] 38 | let ret = Put::$p(o, &v.write()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 427 | / h3m_enum! { [INFO] [stderr] 428 | | (0x00, RvNone) [INFO] [stderr] 429 | | (0x01, RvClear) [INFO] [stderr] 430 | | (0x02, RvIcy) [INFO] [stderr] 431 | | (0x03, RvMuddy) [INFO] [stderr] 432 | | (0x04, RvLava) [INFO] [stderr] 433 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/enums.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 435 | / h3m_enum! { [INFO] [stderr] 436 | | (0x00, Turn1) [INFO] [stderr] 437 | | (0x01, Turn2) [INFO] [stderr] 438 | | (0x02, Turn3) [INFO] [stderr] ... | [INFO] [stderr] 448 | | (0x0C, Horz2) [INFO] [stderr] 449 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/enums.rs:38:27 [INFO] [stderr] | [INFO] [stderr] 38 | let ret = Put::$p(o, &v.write()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 435 | / h3m_enum! { [INFO] [stderr] 436 | | (0x00, Turn1) [INFO] [stderr] 437 | | (0x01, Turn2) [INFO] [stderr] 438 | | (0x02, Turn3) [INFO] [stderr] ... | [INFO] [stderr] 448 | | (0x0C, Horz2) [INFO] [stderr] 449 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/enums.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 451 | / h3m_enum! { [INFO] [stderr] 452 | | (0x00, RdNone) [INFO] [stderr] 453 | | (0x01, RdDirt) [INFO] [stderr] 454 | | (0x02, RdGravel) [INFO] [stderr] 455 | | (0x03, RdCobblestone) [INFO] [stderr] 456 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/enums.rs:38:27 [INFO] [stderr] | [INFO] [stderr] 38 | let ret = Put::$p(o, &v.write()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 451 | / h3m_enum! { [INFO] [stderr] 452 | | (0x00, RdNone) [INFO] [stderr] 453 | | (0x01, RdDirt) [INFO] [stderr] 454 | | (0x02, RdGravel) [INFO] [stderr] 455 | | (0x03, RdCobblestone) [INFO] [stderr] 456 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/enums.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 458 | / h3m_enum! { [INFO] [stderr] 459 | | (0x00, Turn1) [INFO] [stderr] 460 | | (0x01, Turn2) [INFO] [stderr] 461 | | (0x02, Diag1) [INFO] [stderr] ... | [INFO] [stderr] 475 | | (0x10, Cross) [INFO] [stderr] 476 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/enums.rs:38:27 [INFO] [stderr] | [INFO] [stderr] 38 | let ret = Put::$p(o, &v.write()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 458 | / h3m_enum! { [INFO] [stderr] 459 | | (0x00, Turn1) [INFO] [stderr] 460 | | (0x01, Turn2) [INFO] [stderr] 461 | | (0x02, Diag1) [INFO] [stderr] ... | [INFO] [stderr] 475 | | (0x10, Cross) [INFO] [stderr] 476 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/enums.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 478 | / h3m_enum! { [INFO] [stderr] 479 | | (0, Wood) [INFO] [stderr] 480 | | (1, Mercury) [INFO] [stderr] 481 | | (2, Ore) [INFO] [stderr] ... | [INFO] [stderr] 485 | | (6, Gold) [INFO] [stderr] 486 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/enums.rs:38:27 [INFO] [stderr] | [INFO] [stderr] 38 | let ret = Put::$p(o, &v.write()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 478 | / h3m_enum! { [INFO] [stderr] 479 | | (0, Wood) [INFO] [stderr] 480 | | (1, Mercury) [INFO] [stderr] 481 | | (2, Ore) [INFO] [stderr] ... | [INFO] [stderr] 485 | | (6, Gold) [INFO] [stderr] 486 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/enums.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 488 | / h3m_enum! { [INFO] [stderr] 489 | | (0, Town) [INFO] [stderr] 490 | | (1, City) [INFO] [stderr] 491 | | (2, Capitol) [INFO] [stderr] 492 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/enums.rs:38:27 [INFO] [stderr] | [INFO] [stderr] 38 | let ret = Put::$p(o, &v.write()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 488 | / h3m_enum! { [INFO] [stderr] 489 | | (0, Town) [INFO] [stderr] 490 | | (1, City) [INFO] [stderr] 491 | | (2, Capitol) [INFO] [stderr] 492 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/enums.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 494 | / h3m_enum! { [INFO] [stderr] 495 | | (0, Fort) [INFO] [stderr] 496 | | (1, Citadel) [INFO] [stderr] 497 | | (2, Castle) [INFO] [stderr] 498 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/enums.rs:38:27 [INFO] [stderr] | [INFO] [stderr] 38 | let ret = Put::$p(o, &v.write()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 494 | / h3m_enum! { [INFO] [stderr] 495 | | (0, Fort) [INFO] [stderr] 496 | | (1, Citadel) [INFO] [stderr] 497 | | (2, Castle) [INFO] [stderr] 498 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/enums.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 500 | / h3m_enum! { [INFO] [stderr] 501 | | (0, Random) [INFO] [stderr] 502 | | (1, Warrior) [INFO] [stderr] 503 | | (2, Builder) [INFO] [stderr] 504 | | (3, Explorer) [INFO] [stderr] 505 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/enums.rs:38:27 [INFO] [stderr] | [INFO] [stderr] 38 | let ret = Put::$p(o, &v.write()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 500 | / h3m_enum! { [INFO] [stderr] 501 | | (0, Random) [INFO] [stderr] 502 | | (1, Warrior) [INFO] [stderr] 503 | | (2, Builder) [INFO] [stderr] 504 | | (3, Explorer) [INFO] [stderr] 505 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/enums.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 507 | / h3m_enum! { [INFO] [stderr] 508 | | (0x00, Castle) [INFO] [stderr] 509 | | (0x01, Rampart) [INFO] [stderr] 510 | | (0x02, Tower) [INFO] [stderr] ... | [INFO] [stderr] 517 | | (0xFF, Random) [INFO] [stderr] 518 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/enums.rs:38:27 [INFO] [stderr] | [INFO] [stderr] 38 | let ret = Put::$p(o, &v.write()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 507 | / h3m_enum! { [INFO] [stderr] 508 | | (0x00, Castle) [INFO] [stderr] 509 | | (0x01, Rampart) [INFO] [stderr] 510 | | (0x02, Tower) [INFO] [stderr] ... | [INFO] [stderr] 517 | | (0xFF, Random) [INFO] [stderr] 518 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 417 | / mon_named!(flag, mon_switch!(Put::byte, [INFO] [stderr] 418 | | 0u8 => mon_value!(false) | [INFO] [stderr] 419 | | 1u8 => mon_value!(true) [INFO] [stderr] 420 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:183:9 [INFO] [stderr] | [INFO] [stderr] 183 | / { [INFO] [stderr] 184 | | let tempo = &mut Vec::new(); [INFO] [stderr] 185 | | mon_switch!(__impl $o, $v, tempo, $tag!($($args)*), | $($list)* ) [INFO] [stderr] 186 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 417 | / mon_named!(flag, mon_switch!(Put::byte, [INFO] [stderr] 418 | | 0u8 => mon_value!(false) | [INFO] [stderr] 419 | | 1u8 => mon_value!(true) [INFO] [stderr] 420 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 500 | / mon_named!(header, mon_do_parse!( [INFO] [stderr] 501 | | version: mon_call!(Put::version) >> [INFO] [stderr] 502 | | has_players: mon_call!(Put::flag) >> [INFO] [stderr] 503 | | size: mon_call!(Put::size) >> [INFO] [stderr] ... | [INFO] [stderr] 518 | | }) [INFO] [stderr] 519 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 500 | / mon_named!(header, mon_do_parse!( [INFO] [stderr] 501 | | version: mon_call!(Put::version) >> [INFO] [stderr] 502 | | has_players: mon_call!(Put::flag) >> [INFO] [stderr] 503 | | size: mon_call!(Put::size) >> [INFO] [stderr] ... | [INFO] [stderr] 518 | | }) [INFO] [stderr] 519 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 531 | / mon_named!(location, mon_do_parse!( [INFO] [stderr] 532 | | x: mon_call!(Put::byte) >> y: mon_call!(Put::byte) >> u: mon_call!(Put::flag) >> [INFO] [stderr] 533 | | (H3MLocation(ref x, ref y, ref u)) [INFO] [stderr] 534 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 531 | / mon_named!(location, mon_do_parse!( [INFO] [stderr] 532 | | x: mon_call!(Put::byte) >> y: mon_call!(Put::byte) >> u: mon_call!(Put::flag) >> [INFO] [stderr] 533 | | (H3MLocation(ref x, ref y, ref u)) [INFO] [stderr] 534 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 550 | / mon_named!(spells_mask, [INFO] [stderr] 551 | | mon_map!(mon_tuple!(Put::long, Put::long, Put::byte), |t| H3MSpellsMask(ref t)) [INFO] [stderr] 552 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:227:9 [INFO] [stderr] | [INFO] [stderr] 227 | / match *$v { [INFO] [stderr] 228 | | $pat => $f!($o, $mi, $($args)* ), [INFO] [stderr] 229 | | _ => false, [INFO] [stderr] 230 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 550 | / mon_named!(spells_mask, [INFO] [stderr] 551 | | mon_map!(mon_tuple!(Put::long, Put::long, Put::byte), |t| H3MSpellsMask(ref t)) [INFO] [stderr] 552 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 583 | / mon_named_args!(main_town(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 584 | | generate_hero: mon_ifeq!(version, H3MVersion::RoE, mon_value!(true), mon_call!(Put::flag)) >> [INFO] [stderr] 585 | | kind: mon_ifeq!(version, H3MVersion::RoE, mon_value!(H3MTownKind::Random), mon_call!(Put::town_kind)) >> [INFO] [stderr] 586 | | location: mon_call!(Put::location) >> [INFO] [stderr] 587 | | (H3MMainTown { ref generate_hero, ref kind, ref location }) [INFO] [stderr] 588 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 583 | / mon_named_args!(main_town(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 584 | | generate_hero: mon_ifeq!(version, H3MVersion::RoE, mon_value!(true), mon_call!(Put::flag)) >> [INFO] [stderr] 585 | | kind: mon_ifeq!(version, H3MVersion::RoE, mon_value!(H3MTownKind::Random), mon_call!(Put::town_kind)) >> [INFO] [stderr] 586 | | location: mon_call!(Put::location) >> [INFO] [stderr] 587 | | (H3MMainTown { ref generate_hero, ref kind, ref location }) [INFO] [stderr] 588 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 596 | mon_named!(resources, mon_map!(mon_count_fixed!(u32, Put::long, 7), |xs| H3MResources(xs))); [INFO] [stderr] | ---------------------------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:227:9 [INFO] [stderr] | [INFO] [stderr] 227 | / match *$v { [INFO] [stderr] 228 | | $pat => $f!($o, $mi, $($args)* ), [INFO] [stderr] 229 | | _ => false, [INFO] [stderr] 230 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 596 | mon_named!(resources, mon_map!(mon_count_fixed!(u32, Put::long, 7), |xs| H3MResources(xs))); [INFO] [stderr] | ---------------------------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 618 | mon_named!(artifact1, mon_map!(Put::byte, |i| H3MArtifact(ref i, 0))); [INFO] [stderr] | ----------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:227:9 [INFO] [stderr] | [INFO] [stderr] 227 | / match *$v { [INFO] [stderr] 228 | | $pat => $f!($o, $mi, $($args)* ), [INFO] [stderr] 229 | | _ => false, [INFO] [stderr] 230 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 618 | mon_named!(artifact1, mon_map!(Put::byte, |i| H3MArtifact(ref i, 0))); [INFO] [stderr] | ----------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 619 | mon_named!(artifact2, mon_do_parse!(i: mon_call!(Put::byte) >> j: mon_call!(Put::byte) >> (H3MArtifact(ref i, ref j)))); [INFO] [stderr] | ------------------------------------------------------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 619 | mon_named!(artifact2, mon_do_parse!(i: mon_call!(Put::byte) >> j: mon_call!(Put::byte) >> (H3MArtifact(ref i, ref j)))); [INFO] [stderr] | ------------------------------------------------------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 621 | / mon_named_args!(artifact(version: H3MVersion), [INFO] [stderr] 622 | | mon_ifeq!(version, H3MVersion::RoE, mon_call!(Put::artifact1), mon_call!(Put::artifact2)) [INFO] [stderr] 623 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:132:9 [INFO] [stderr] | [INFO] [stderr] 132 | / match $c { [INFO] [stderr] 133 | | $t => $thn!($o, $v, $($targs)*), [INFO] [stderr] 134 | | _ => $els!($o, $v, $($eargs)*), [INFO] [stderr] 135 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 621 | / mon_named_args!(artifact(version: H3MVersion), [INFO] [stderr] 622 | | mon_ifeq!(version, H3MVersion::RoE, mon_call!(Put::artifact1), mon_call!(Put::artifact2)) [INFO] [stderr] 623 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 637 | mon_named!(creature1, mon_map!(Put::byte, |i| H3MCreature(ref i, 0))); [INFO] [stderr] | ----------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:227:9 [INFO] [stderr] | [INFO] [stderr] 227 | / match *$v { [INFO] [stderr] 228 | | $pat => $f!($o, $mi, $($args)* ), [INFO] [stderr] 229 | | _ => false, [INFO] [stderr] 230 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 637 | mon_named!(creature1, mon_map!(Put::byte, |i| H3MCreature(ref i, 0))); [INFO] [stderr] | ----------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 638 | mon_named!(creature2, mon_do_parse!(i: mon_call!(Put::byte) >> j: mon_call!(Put::byte) >> (H3MCreature(ref i, ref j)))); [INFO] [stderr] | ------------------------------------------------------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 638 | mon_named!(creature2, mon_do_parse!(i: mon_call!(Put::byte) >> j: mon_call!(Put::byte) >> (H3MCreature(ref i, ref j)))); [INFO] [stderr] | ------------------------------------------------------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 640 | / mon_named_args!(creature(version: H3MVersion), [INFO] [stderr] 641 | | mon_ifeq!(version, H3MVersion::RoE, mon_call!(Put::creature1), mon_call!(Put::creature2)) [INFO] [stderr] 642 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:132:9 [INFO] [stderr] | [INFO] [stderr] 132 | / match $c { [INFO] [stderr] 133 | | $t => $thn!($o, $v, $($targs)*), [INFO] [stderr] 134 | | _ => $els!($o, $v, $($eargs)*), [INFO] [stderr] 135 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 640 | / mon_named_args!(creature(version: H3MVersion), [INFO] [stderr] 641 | | mon_ifeq!(version, H3MVersion::RoE, mon_call!(Put::creature1), mon_call!(Put::creature2)) [INFO] [stderr] 642 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 702 | / mon_named_args!(special_victory(version: H3MVersion)>, [INFO] [stderr] 703 | | mon_alt!( [INFO] [stderr] 704 | | mon_tag!([0xFF]) => { |_| None } | [INFO] [stderr] 705 | | mon_do_parse!( [INFO] [stderr] ... | [INFO] [stderr] 732 | | ) [INFO] [stderr] 733 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:197:9 [INFO] [stderr] | [INFO] [stderr] 197 | / match *$v { [INFO] [stderr] 198 | | $pat0 => { let _t = &$tag; mon_tag!($o, _t, $tag) }, [INFO] [stderr] 199 | | $pat1 => { let val = $x; $case!($o, val, $($args)*) }, [INFO] [stderr] 200 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 702 | / mon_named_args!(special_victory(version: H3MVersion)>, [INFO] [stderr] 703 | | mon_alt!( [INFO] [stderr] 704 | | mon_tag!([0xFF]) => { |_| None } | [INFO] [stderr] 705 | | mon_do_parse!( [INFO] [stderr] ... | [INFO] [stderr] 732 | | ) [INFO] [stderr] 733 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 752 | / mon_named!(loss, mon_switch!(Put::byte, [INFO] [stderr] 753 | | 0xFFu8 => mon_value!(H3MLossCondition::Default) | [INFO] [stderr] 754 | | 0x00u8 => mon_map!(Put::location, |l| H3MLossCondition::LoseTown(ref l)) | [INFO] [stderr] 755 | | 0x01u8 => mon_map!(Put::location, |l| H3MLossCondition::LoseHero(ref l)) | [INFO] [stderr] 756 | | 0x02u8 => mon_map!(Put::short, |d| H3MLossCondition::TimeExpires(ref d)) [INFO] [stderr] 757 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:183:9 [INFO] [stderr] | [INFO] [stderr] 183 | / { [INFO] [stderr] 184 | | let tempo = &mut Vec::new(); [INFO] [stderr] 185 | | mon_switch!(__impl $o, $v, tempo, $tag!($($args)*), | $($list)* ) [INFO] [stderr] 186 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 752 | / mon_named!(loss, mon_switch!(Put::byte, [INFO] [stderr] 753 | | 0xFFu8 => mon_value!(H3MLossCondition::Default) | [INFO] [stderr] 754 | | 0x00u8 => mon_map!(Put::location, |l| H3MLossCondition::LoseTown(ref l)) | [INFO] [stderr] 755 | | 0x01u8 => mon_map!(Put::location, |l| H3MLossCondition::LoseHero(ref l)) | [INFO] [stderr] 756 | | 0x02u8 => mon_map!(Put::short, |d| H3MLossCondition::TimeExpires(ref d)) [INFO] [stderr] 757 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 774 | / mon_named!(hero, mon_do_parse!( [INFO] [stderr] 775 | | face: mon_call!(Put::byte) >> [INFO] [stderr] 776 | | name: mon_call!(Put::string) >> [INFO] [stderr] 777 | | (H3MHero { ref face, ref name }) [INFO] [stderr] 778 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 774 | / mon_named!(hero, mon_do_parse!( [INFO] [stderr] 775 | | face: mon_call!(Put::byte) >> [INFO] [stderr] 776 | | name: mon_call!(Put::string) >> [INFO] [stderr] 777 | | (H3MHero { ref face, ref name }) [INFO] [stderr] 778 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 797 | / mon_named!(player_playability, mon_do_parse!( [INFO] [stderr] 798 | | human: mon_call!(Put::flag) >> [INFO] [stderr] 799 | | computer: mon_call!(Put::flag) >> [INFO] [stderr] 800 | | behavior: mon_call!(Put::player_behavior) >> [INFO] [stderr] 801 | | (H3MPlayerPlayability { ref human, ref computer, ref behavior }) [INFO] [stderr] 802 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 797 | / mon_named!(player_playability, mon_do_parse!( [INFO] [stderr] 798 | | human: mon_call!(Put::flag) >> [INFO] [stderr] 799 | | computer: mon_call!(Put::flag) >> [INFO] [stderr] 800 | | behavior: mon_call!(Put::player_behavior) >> [INFO] [stderr] 801 | | (H3MPlayerPlayability { ref human, ref computer, ref behavior }) [INFO] [stderr] 802 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 834 | / mon_named_args!(player_allowed_alignments(version: H3MVersion, playable: bool), [INFO] [stderr] 835 | | mon_ifeq!(playable, true, [INFO] [stderr] 836 | | mon_do_parse!( [INFO] [stderr] 837 | | unknown: mon_sod!(version, mon_value!(false), mon_call!(Put::flag)) >> [INFO] [stderr] ... | [INFO] [stderr] 851 | | ) [INFO] [stderr] 852 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:132:9 [INFO] [stderr] | [INFO] [stderr] 132 | / match $c { [INFO] [stderr] 133 | | $t => $thn!($o, $v, $($targs)*), [INFO] [stderr] 134 | | _ => $els!($o, $v, $($eargs)*), [INFO] [stderr] 135 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 834 | / mon_named_args!(player_allowed_alignments(version: H3MVersion, playable: bool), [INFO] [stderr] 835 | | mon_ifeq!(playable, true, [INFO] [stderr] 836 | | mon_do_parse!( [INFO] [stderr] 837 | | unknown: mon_sod!(version, mon_value!(false), mon_call!(Put::flag)) >> [INFO] [stderr] ... | [INFO] [stderr] 851 | | ) [INFO] [stderr] 852 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 890 | / mon_named_args!(player(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 891 | | playability: mon_call!(Put::player_playability) >> [INFO] [stderr] 892 | | allowed_alignments: mon_call!(Put::player_allowed_alignments, version, playability.human || playability.computer) >> [INFO] [stderr] 893 | | main_town: mon_option!(mon_call!(Put::main_town, version)) >> [INFO] [stderr] ... | [INFO] [stderr] 908 | | }) [INFO] [stderr] 909 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 890 | / mon_named_args!(player(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 891 | | playability: mon_call!(Put::player_playability) >> [INFO] [stderr] 892 | | allowed_alignments: mon_call!(Put::player_allowed_alignments, version, playability.human || playability.computer) >> [INFO] [stderr] 893 | | main_town: mon_option!(mon_call!(Put::main_town, version)) >> [INFO] [stderr] ... | [INFO] [stderr] 908 | | }) [INFO] [stderr] 909 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 930 | / mon_named!(hero_availability, mon_do_parse!( [INFO] [stderr] 931 | | id: mon_call!(Put::byte) >> [INFO] [stderr] 932 | | face: mon_call!(Put::byte) >> [INFO] [stderr] 933 | | name: mon_call!(Put::string) >> [INFO] [stderr] 934 | | players_mask: mon_call!(Put::byte) >> [INFO] [stderr] 935 | | (H3MHeroAvailability { ref id, ref face, ref name, ref players_mask }) [INFO] [stderr] 936 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 930 | / mon_named!(hero_availability, mon_do_parse!( [INFO] [stderr] 931 | | id: mon_call!(Put::byte) >> [INFO] [stderr] 932 | | face: mon_call!(Put::byte) >> [INFO] [stderr] 933 | | name: mon_call!(Put::string) >> [INFO] [stderr] 934 | | players_mask: mon_call!(Put::byte) >> [INFO] [stderr] 935 | | (H3MHeroAvailability { ref id, ref face, ref name, ref players_mask }) [INFO] [stderr] 936 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:949:54 [INFO] [stderr] | [INFO] [stderr] 949 | mask_ext: ifeq!(version, H3MVersion::RoE, value!(0x0001FFFF), call!(Eat::long)) >> [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0001_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 957 | / mon_named_args!(available_heroes(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 958 | | mask: mon_count_fixed!(u32, Put::long, 4) >> [INFO] [stderr] 959 | | mask_ext: mon_ifeq!(version, H3MVersion::RoE, mon_value!(0x0001FFFF), mon_call!(Put::long)) >> [INFO] [stderr] 960 | | _zeroes: mon_ifeq!(version, H3MVersion::RoE, mon_value!(()), mon_value!((), [0u8; 4], mon_tag!([0u8; 4]))) >> [INFO] [stderr] ... | [INFO] [stderr] 963 | | (H3MAvailableHeroes { ref mask, ref mask_ext, ref settings }) [INFO] [stderr] 964 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 957 | / mon_named_args!(available_heroes(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 958 | | mask: mon_count_fixed!(u32, Put::long, 4) >> [INFO] [stderr] 959 | | mask_ext: mon_ifeq!(version, H3MVersion::RoE, mon_value!(0x0001FFFF), mon_call!(Put::long)) >> [INFO] [stderr] 960 | | _zeroes: mon_ifeq!(version, H3MVersion::RoE, mon_value!(()), mon_value!((), [0u8; 4], mon_tag!([0u8; 4]))) >> [INFO] [stderr] ... | [INFO] [stderr] 963 | | (H3MAvailableHeroes { ref mask, ref mask_ext, ref settings }) [INFO] [stderr] 964 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:959:62 [INFO] [stderr] | [INFO] [stderr] 959 | mask_ext: mon_ifeq!(version, H3MVersion::RoE, mon_value!(0x0001FFFF), mon_call!(Put::long)) >> [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0001_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1022 | / mon_named_args!(hero_equipment(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 1023 | | head: mon_call!(Put::artifact, version) >> [INFO] [stderr] 1024 | | shoulders: mon_call!(Put::artifact, version) >> [INFO] [stderr] 1025 | | neck: mon_call!(Put::artifact, version) >> [INFO] [stderr] ... | [INFO] [stderr] 1049 | | }) [INFO] [stderr] 1050 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1022 | / mon_named_args!(hero_equipment(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 1023 | | head: mon_call!(Put::artifact, version) >> [INFO] [stderr] 1024 | | shoulders: mon_call!(Put::artifact, version) >> [INFO] [stderr] 1025 | | neck: mon_call!(Put::artifact, version) >> [INFO] [stderr] ... | [INFO] [stderr] 1049 | | }) [INFO] [stderr] 1050 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1079 | / mon_named!(hero_customization, mon_do_parse!( [INFO] [stderr] 1080 | | exp: mon_option!(Put::long) >> [INFO] [stderr] 1081 | | skills: mon_option!(mon_length_count!(Put::long, mon_tuple!(Put::skill, Put::skill_level))) >> [INFO] [stderr] 1082 | | equipment: mon_option!(mon_call!(Put::hero_equipment, H3MVersion::SoD)) >> [INFO] [stderr] ... | [INFO] [stderr] 1089 | | }) [INFO] [stderr] 1090 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1079 | / mon_named!(hero_customization, mon_do_parse!( [INFO] [stderr] 1080 | | exp: mon_option!(Put::long) >> [INFO] [stderr] 1081 | | skills: mon_option!(mon_length_count!(Put::long, mon_tuple!(Put::skill, Put::skill_level))) >> [INFO] [stderr] 1082 | | equipment: mon_option!(mon_call!(Put::hero_equipment, H3MVersion::SoD)) >> [INFO] [stderr] ... | [INFO] [stderr] 1089 | | }) [INFO] [stderr] 1090 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1142 | / mon_named!(tile, mon_do_parse!( [INFO] [stderr] 1143 | | terrain: mon_call!(Put::terrain_type) >> [INFO] [stderr] 1144 | | texture: mon_call!(Put::byte) >> [INFO] [stderr] 1145 | | river_type: mon_call!(Put::river_type) >> [INFO] [stderr] ... | [INFO] [stderr] 1155 | | }) [INFO] [stderr] 1156 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1142 | / mon_named!(tile, mon_do_parse!( [INFO] [stderr] 1143 | | terrain: mon_call!(Put::terrain_type) >> [INFO] [stderr] 1144 | | texture: mon_call!(Put::byte) >> [INFO] [stderr] 1145 | | river_type: mon_call!(Put::river_type) >> [INFO] [stderr] ... | [INFO] [stderr] 1155 | | }) [INFO] [stderr] 1156 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1200 | / mon_named!(object_template, mon_do_parse!( [INFO] [stderr] 1201 | | filename: mon_call!(Put::string) >> [INFO] [stderr] 1202 | | shape_mask: mon_count_fixed!(u8, Put::byte, 6) >> [INFO] [stderr] 1203 | | visit_mask: mon_count_fixed!(u8, Put::byte, 6) >> [INFO] [stderr] ... | [INFO] [stderr] 1213 | | }) [INFO] [stderr] 1214 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1200 | / mon_named!(object_template, mon_do_parse!( [INFO] [stderr] 1201 | | filename: mon_call!(Put::string) >> [INFO] [stderr] 1202 | | shape_mask: mon_count_fixed!(u8, Put::byte, 6) >> [INFO] [stderr] 1203 | | visit_mask: mon_count_fixed!(u8, Put::byte, 6) >> [INFO] [stderr] ... | [INFO] [stderr] 1213 | | }) [INFO] [stderr] 1214 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1231 | / mon_named!(buildings, [INFO] [stderr] 1232 | | mon_switch!(Put::flag, [INFO] [stderr] 1233 | | true => mon_map!(mon_count_fixed!(u8, Put::byte, 12), |m| H3MBuildings::Custom(ref m)) | [INFO] [stderr] 1234 | | false => mon_map!(Put::flag, |f| H3MBuildings::Fort(ref f)) [INFO] [stderr] 1235 | | ) [INFO] [stderr] 1236 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:183:9 [INFO] [stderr] | [INFO] [stderr] 183 | / { [INFO] [stderr] 184 | | let tempo = &mut Vec::new(); [INFO] [stderr] 185 | | mon_switch!(__impl $o, $v, tempo, $tag!($($args)*), | $($list)* ) [INFO] [stderr] 186 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1231 | / mon_named!(buildings, [INFO] [stderr] 1232 | | mon_switch!(Put::flag, [INFO] [stderr] 1233 | | true => mon_map!(mon_count_fixed!(u8, Put::byte, 12), |m| H3MBuildings::Custom(ref m)) | [INFO] [stderr] 1234 | | false => mon_map!(Put::flag, |f| H3MBuildings::Fort(ref f)) [INFO] [stderr] 1235 | | ) [INFO] [stderr] 1236 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1256 | / mon_named_args!(town_event(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 1257 | | event: mon_call!(Put::event, version) >> [INFO] [stderr] 1258 | | buildings: mon_count_fixed!(u8, Put::byte, 6) >> [INFO] [stderr] 1259 | | creatures: mon_count_fixed!(u16, Put::short, 7) >> [INFO] [stderr] 1260 | | unknown: mon_call!(Put::long) >> [INFO] [stderr] 1261 | | (H3MTownEvent { ref event, ref buildings, ref creatures, ref unknown }) [INFO] [stderr] 1262 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1256 | / mon_named_args!(town_event(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 1257 | | event: mon_call!(Put::event, version) >> [INFO] [stderr] 1258 | | buildings: mon_count_fixed!(u8, Put::byte, 6) >> [INFO] [stderr] 1259 | | creatures: mon_count_fixed!(u16, Put::short, 7) >> [INFO] [stderr] 1260 | | unknown: mon_call!(Put::long) >> [INFO] [stderr] 1261 | | (H3MTownEvent { ref event, ref buildings, ref creatures, ref unknown }) [INFO] [stderr] 1262 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1309 | / mon_named_args!(msg_guards(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 1310 | | message: mon_call!(Put::string) >> [INFO] [stderr] 1311 | | guards: mon_option!(mon_call!(Put::creatures, version)) >> [INFO] [stderr] 1312 | | _zeroes: mon_tag!([0u8; 4]) >> [INFO] [stderr] 1313 | | (H3MMessageAndGuards { ref message, ref guards }) [INFO] [stderr] 1314 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1309 | / mon_named_args!(msg_guards(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 1310 | | message: mon_call!(Put::string) >> [INFO] [stderr] 1311 | | guards: mon_option!(mon_call!(Put::creatures, version)) >> [INFO] [stderr] 1312 | | _zeroes: mon_tag!([0u8; 4]) >> [INFO] [stderr] 1313 | | (H3MMessageAndGuards { ref message, ref guards }) [INFO] [stderr] 1314 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1324 | / mon_named_args!(creatures(version: H3MVersion), [INFO] [stderr] 1325 | | mon_map!(mon_count_fixed!((H3MCreature, u16), mon_tuple!(mon_call!(Put::creature, version), mon_call!(Put::short)), 7), |cs| H3MCreatures(cs)) [INFO] [stderr] 1326 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:227:9 [INFO] [stderr] | [INFO] [stderr] 227 | / match *$v { [INFO] [stderr] 228 | | $pat => $f!($o, $mi, $($args)* ), [INFO] [stderr] 229 | | _ => false, [INFO] [stderr] 230 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1324 | / mon_named_args!(creatures(version: H3MVersion), [INFO] [stderr] 1325 | | mon_map!(mon_count_fixed!((H3MCreature, u16), mon_tuple!(mon_call!(Put::creature, version), mon_call!(Put::short)), 7), |cs| H3MCreatures(cs)) [INFO] [stderr] 1326 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1360 | / mon_named_args!(reward(version: H3MVersion), [INFO] [stderr] 1361 | | mon_switch!(Put::byte, [INFO] [stderr] 1362 | | 0u8 => mon_value!(H3MReward::Nothing) | [INFO] [stderr] 1363 | | 1u8 => mon_map!(Put::long, |x| H3MReward::Exp(ref x)) | [INFO] [stderr] ... | [INFO] [stderr] 1373 | | ) [INFO] [stderr] 1374 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:183:9 [INFO] [stderr] | [INFO] [stderr] 183 | / { [INFO] [stderr] 184 | | let tempo = &mut Vec::new(); [INFO] [stderr] 185 | | mon_switch!(__impl $o, $v, tempo, $tag!($($args)*), | $($list)* ) [INFO] [stderr] 186 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1360 | / mon_named_args!(reward(version: H3MVersion), [INFO] [stderr] 1361 | | mon_switch!(Put::byte, [INFO] [stderr] 1362 | | 0u8 => mon_value!(H3MReward::Nothing) | [INFO] [stderr] 1363 | | 1u8 => mon_map!(Put::long, |x| H3MReward::Exp(ref x)) | [INFO] [stderr] ... | [INFO] [stderr] 1373 | | ) [INFO] [stderr] 1374 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1407 | / mon_named!(quest_objective, [INFO] [stderr] 1408 | | mon_switch!(Put::byte, [INFO] [stderr] 1409 | | 0u8 => mon_value!(H3MQuestObjective::Nothing) | [INFO] [stderr] 1410 | | 1u8 => mon_map!(Put::long, |x| H3MQuestObjective::Level(ref x)) | [INFO] [stderr] ... | [INFO] [stderr] 1419 | | ) [INFO] [stderr] 1420 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:183:9 [INFO] [stderr] | [INFO] [stderr] 183 | / { [INFO] [stderr] 184 | | let tempo = &mut Vec::new(); [INFO] [stderr] 185 | | mon_switch!(__impl $o, $v, tempo, $tag!($($args)*), | $($list)* ) [INFO] [stderr] 186 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1407 | / mon_named!(quest_objective, [INFO] [stderr] 1408 | | mon_switch!(Put::byte, [INFO] [stderr] 1409 | | 0u8 => mon_value!(H3MQuestObjective::Nothing) | [INFO] [stderr] 1410 | | 1u8 => mon_map!(Put::long, |x| H3MQuestObjective::Level(ref x)) | [INFO] [stderr] ... | [INFO] [stderr] 1419 | | ) [INFO] [stderr] 1420 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:1438:23 [INFO] [stderr] | [INFO] [stderr] 1438 | deadline: 0xFFFFFFFF, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFFFF_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:1449:23 [INFO] [stderr] | [INFO] [stderr] 1449 | deadline: 0xFFFFFFFF, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFFFF_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1473 | / mon_named!(quest2, [INFO] [stderr] 1474 | | mon_do_parse!( [INFO] [stderr] 1475 | | objective: mon_call!(Put::quest_objective) >> [INFO] [stderr] 1476 | | deadline: mon_call!(Put::long) >> [INFO] [stderr] ... | [INFO] [stderr] 1483 | | ) [INFO] [stderr] 1484 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1473 | / mon_named!(quest2, [INFO] [stderr] 1474 | | mon_do_parse!( [INFO] [stderr] 1475 | | objective: mon_call!(Put::quest_objective) >> [INFO] [stderr] 1476 | | deadline: mon_call!(Put::long) >> [INFO] [stderr] ... | [INFO] [stderr] 1483 | | ) [INFO] [stderr] 1484 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1523 | / mon_named_args!(msg_guard_reward(version: H3MVersion), [INFO] [stderr] 1524 | | mon_do_parse!( [INFO] [stderr] 1525 | | guard: mon_option!(mon_call!(Put::msg_guards, version)) >> [INFO] [stderr] 1526 | | exp: mon_call!(Put::long) >> [INFO] [stderr] ... | [INFO] [stderr] 1541 | | ) [INFO] [stderr] 1542 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1523 | / mon_named_args!(msg_guard_reward(version: H3MVersion), [INFO] [stderr] 1524 | | mon_do_parse!( [INFO] [stderr] 1525 | | guard: mon_option!(mon_call!(Put::msg_guards, version)) >> [INFO] [stderr] 1526 | | exp: mon_call!(Put::long) >> [INFO] [stderr] ... | [INFO] [stderr] 1541 | | ) [INFO] [stderr] 1542 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:1608:48 [INFO] [stderr] | [INFO] [stderr] 1608 | id: ifeq!(version, H3MVersion::RoE, value!(0xFFFFFFFF), call!(Eat::long)) >> [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFFFF_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1635 | / mon_named_args!(obj_hero(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 1636 | | id: mon_ifeq!(version, H3MVersion::RoE, mon_value!(0xFFFFFFFF), mon_call!(Put::long)) >> [INFO] [stderr] 1637 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1638 | | hero_type: mon_call!(Put::byte) >> [INFO] [stderr] ... | [INFO] [stderr] 1660 | | }) [INFO] [stderr] 1661 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1635 | / mon_named_args!(obj_hero(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 1636 | | id: mon_ifeq!(version, H3MVersion::RoE, mon_value!(0xFFFFFFFF), mon_call!(Put::long)) >> [INFO] [stderr] 1637 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1638 | | hero_type: mon_call!(Put::byte) >> [INFO] [stderr] ... | [INFO] [stderr] 1660 | | }) [INFO] [stderr] 1661 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:1636:56 [INFO] [stderr] | [INFO] [stderr] 1636 | id: mon_ifeq!(version, H3MVersion::RoE, mon_value!(0xFFFFFFFF), mon_call!(Put::long)) >> [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFFFF_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:1664:48 [INFO] [stderr] | [INFO] [stderr] 1664 | id: ifeq!(version, H3MVersion::RoE, value!(0xFFFFFFFF), call!(Eat::long)) >> [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFFFF_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1679 | / mon_named_args!(obj_monster(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 1680 | | id: mon_ifeq!(version, H3MVersion::RoE, mon_value!(0xFFFFFFFF), mon_call!(Put::long)) >> [INFO] [stderr] 1681 | | quantity: mon_alt!( [INFO] [stderr] 1682 | | mon_tag!([0u8; 2]) => { |_| H3MQuantity::Random } | [INFO] [stderr] ... | [INFO] [stderr] 1692 | | }) [INFO] [stderr] 1693 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1679 | / mon_named_args!(obj_monster(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 1680 | | id: mon_ifeq!(version, H3MVersion::RoE, mon_value!(0xFFFFFFFF), mon_call!(Put::long)) >> [INFO] [stderr] 1681 | | quantity: mon_alt!( [INFO] [stderr] 1682 | | mon_tag!([0u8; 2]) => { |_| H3MQuantity::Random } | [INFO] [stderr] ... | [INFO] [stderr] 1692 | | }) [INFO] [stderr] 1693 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:1680:56 [INFO] [stderr] | [INFO] [stderr] 1680 | id: mon_ifeq!(version, H3MVersion::RoE, mon_value!(0xFFFFFFFF), mon_call!(Put::long)) >> [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFFFF_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:1696:48 [INFO] [stderr] | [INFO] [stderr] 1696 | id: ifeq!(version, H3MVersion::RoE, value!(0xFFFFFFFF), call!(Eat::long)) >> [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFFFF_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1713 | / mon_named_args!(obj_town(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 1714 | | id: mon_ifeq!(version, H3MVersion::RoE, mon_value!(0xFFFFFFFF), mon_call!(Put::long)) >> [INFO] [stderr] 1715 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1716 | | name: mon_option!(Put::string) >> [INFO] [stderr] ... | [INFO] [stderr] 1728 | | }) [INFO] [stderr] 1729 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1713 | / mon_named_args!(obj_town(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 1714 | | id: mon_ifeq!(version, H3MVersion::RoE, mon_value!(0xFFFFFFFF), mon_call!(Put::long)) >> [INFO] [stderr] 1715 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1716 | | name: mon_option!(Put::string) >> [INFO] [stderr] ... | [INFO] [stderr] 1728 | | }) [INFO] [stderr] 1729 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:1714:56 [INFO] [stderr] | [INFO] [stderr] 1714 | id: mon_ifeq!(version, H3MVersion::RoE, mon_value!(0xFFFFFFFF), mon_call!(Put::long)) >> [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFFFF_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: `v` already exists, having another argument having almost the same name makes code comprehension and documentation more difficult [INFO] [stderr] --> src/main.rs:82:36 [INFO] [stderr] | [INFO] [stderr] 82 | fn $f(o: &mut Vec, v: &$t, $($a: $at),* ) -> bool { [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 1739 | / mon_named_args!(obj_placeholder(_v: H3MVersion), mon_do_parse!( [INFO] [stderr] 1740 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1741 | | id: mon_call!(Put::byte) >> [INFO] [stderr] 1742 | | power_rating: mon_ifeq!(id, &0xFF, mon_map!(Put::byte, |x| Some(ref x)), mon_value!(None)) >> [INFO] [stderr] ... | [INFO] [stderr] 1745 | | }) [INFO] [stderr] 1746 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::duplicate_underscore_argument)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duplicate_underscore_argument [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1739 | / mon_named_args!(obj_placeholder(_v: H3MVersion), mon_do_parse!( [INFO] [stderr] 1740 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1741 | | id: mon_call!(Put::byte) >> [INFO] [stderr] 1742 | | power_rating: mon_ifeq!(id, &0xFF, mon_map!(Put::byte, |x| Some(ref x)), mon_value!(None)) >> [INFO] [stderr] ... | [INFO] [stderr] 1745 | | }) [INFO] [stderr] 1746 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1739 | / mon_named_args!(obj_placeholder(_v: H3MVersion), mon_do_parse!( [INFO] [stderr] 1740 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1741 | | id: mon_call!(Put::byte) >> [INFO] [stderr] 1742 | | power_rating: mon_ifeq!(id, &0xFF, mon_map!(Put::byte, |x| Some(ref x)), mon_value!(None)) >> [INFO] [stderr] ... | [INFO] [stderr] 1745 | | }) [INFO] [stderr] 1746 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: `v` already exists, having another argument having almost the same name makes code comprehension and documentation more difficult [INFO] [stderr] --> src/main.rs:82:36 [INFO] [stderr] | [INFO] [stderr] 82 | fn $f(o: &mut Vec, v: &$t, $($a: $at),* ) -> bool { [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 1753 | / mon_named_args!(obj_owned(_v: H3MVersion), mon_do_parse!( [INFO] [stderr] 1754 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1755 | | _zeroes: mon_tag!([0u8; 3]) >> [INFO] [stderr] 1756 | | (H3MObjectProperties::OwnedObject { ref owner }) [INFO] [stderr] 1757 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duplicate_underscore_argument [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1753 | / mon_named_args!(obj_owned(_v: H3MVersion), mon_do_parse!( [INFO] [stderr] 1754 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1755 | | _zeroes: mon_tag!([0u8; 3]) >> [INFO] [stderr] 1756 | | (H3MObjectProperties::OwnedObject { ref owner }) [INFO] [stderr] 1757 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1753 | / mon_named_args!(obj_owned(_v: H3MVersion), mon_do_parse!( [INFO] [stderr] 1754 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1755 | | _zeroes: mon_tag!([0u8; 3]) >> [INFO] [stderr] 1756 | | (H3MObjectProperties::OwnedObject { ref owner }) [INFO] [stderr] 1757 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: `v` already exists, having another argument having almost the same name makes code comprehension and documentation more difficult [INFO] [stderr] --> src/main.rs:82:36 [INFO] [stderr] | [INFO] [stderr] 82 | fn $f(o: &mut Vec, v: &$t, $($a: $at),* ) -> bool { [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 1766 | / mon_named_args!(obj_dwelling(_v: H3MVersion), mon_do_parse!( [INFO] [stderr] 1767 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1768 | | _zeroes: mon_tag!([0u8; 3]) >> [INFO] [stderr] 1769 | | faction: mon_call!(Put::dwelling_faction) >> [INFO] [stderr] 1770 | | level_range: mon_tuple!(Put::byte, Put::byte) >> [INFO] [stderr] 1771 | | (H3MObjectProperties::RandomDwelling { ref owner, ref faction, ref level_range }) [INFO] [stderr] 1772 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duplicate_underscore_argument [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1766 | / mon_named_args!(obj_dwelling(_v: H3MVersion), mon_do_parse!( [INFO] [stderr] 1767 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1768 | | _zeroes: mon_tag!([0u8; 3]) >> [INFO] [stderr] 1769 | | faction: mon_call!(Put::dwelling_faction) >> [INFO] [stderr] 1770 | | level_range: mon_tuple!(Put::byte, Put::byte) >> [INFO] [stderr] 1771 | | (H3MObjectProperties::RandomDwelling { ref owner, ref faction, ref level_range }) [INFO] [stderr] 1772 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1766 | / mon_named_args!(obj_dwelling(_v: H3MVersion), mon_do_parse!( [INFO] [stderr] 1767 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1768 | | _zeroes: mon_tag!([0u8; 3]) >> [INFO] [stderr] 1769 | | faction: mon_call!(Put::dwelling_faction) >> [INFO] [stderr] 1770 | | level_range: mon_tuple!(Put::byte, Put::byte) >> [INFO] [stderr] 1771 | | (H3MObjectProperties::RandomDwelling { ref owner, ref faction, ref level_range }) [INFO] [stderr] 1772 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: `v` already exists, having another argument having almost the same name makes code comprehension and documentation more difficult [INFO] [stderr] --> src/main.rs:82:36 [INFO] [stderr] | [INFO] [stderr] 82 | fn $f(o: &mut Vec, v: &$t, $($a: $at),* ) -> bool { [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 1780 | / mon_named_args!(obj_dwelling_level(_v: H3MVersion), mon_do_parse!( [INFO] [stderr] 1781 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1782 | | _zeroes: mon_tag!([0u8; 3]) >> [INFO] [stderr] 1783 | | faction: mon_call!(Put::dwelling_faction) >> [INFO] [stderr] 1784 | | (H3MObjectProperties::RandomDwellingLevel { ref owner, ref faction }) [INFO] [stderr] 1785 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duplicate_underscore_argument [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1780 | / mon_named_args!(obj_dwelling_level(_v: H3MVersion), mon_do_parse!( [INFO] [stderr] 1781 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1782 | | _zeroes: mon_tag!([0u8; 3]) >> [INFO] [stderr] 1783 | | faction: mon_call!(Put::dwelling_faction) >> [INFO] [stderr] 1784 | | (H3MObjectProperties::RandomDwellingLevel { ref owner, ref faction }) [INFO] [stderr] 1785 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1780 | / mon_named_args!(obj_dwelling_level(_v: H3MVersion), mon_do_parse!( [INFO] [stderr] 1781 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1782 | | _zeroes: mon_tag!([0u8; 3]) >> [INFO] [stderr] 1783 | | faction: mon_call!(Put::dwelling_faction) >> [INFO] [stderr] 1784 | | (H3MObjectProperties::RandomDwellingLevel { ref owner, ref faction }) [INFO] [stderr] 1785 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: `v` already exists, having another argument having almost the same name makes code comprehension and documentation more difficult [INFO] [stderr] --> src/main.rs:82:36 [INFO] [stderr] | [INFO] [stderr] 82 | fn $f(o: &mut Vec, v: &$t, $($a: $at),* ) -> bool { [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 1793 | / mon_named_args!(obj_dwelling_faction(_v: H3MVersion), mon_do_parse!( [INFO] [stderr] 1794 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1795 | | _zeroes: mon_tag!([0u8; 3]) >> [INFO] [stderr] 1796 | | level_range: mon_tuple!(Put::byte, Put::byte) >> [INFO] [stderr] 1797 | | (H3MObjectProperties::RandomDwellingFaction { ref owner, ref level_range }) [INFO] [stderr] 1798 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duplicate_underscore_argument [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1793 | / mon_named_args!(obj_dwelling_faction(_v: H3MVersion), mon_do_parse!( [INFO] [stderr] 1794 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1795 | | _zeroes: mon_tag!([0u8; 3]) >> [INFO] [stderr] 1796 | | level_range: mon_tuple!(Put::byte, Put::byte) >> [INFO] [stderr] 1797 | | (H3MObjectProperties::RandomDwellingFaction { ref owner, ref level_range }) [INFO] [stderr] 1798 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1793 | / mon_named_args!(obj_dwelling_faction(_v: H3MVersion), mon_do_parse!( [INFO] [stderr] 1794 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1795 | | _zeroes: mon_tag!([0u8; 3]) >> [INFO] [stderr] 1796 | | level_range: mon_tuple!(Put::byte, Put::byte) >> [INFO] [stderr] 1797 | | (H3MObjectProperties::RandomDwellingFaction { ref owner, ref level_range }) [INFO] [stderr] 1798 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1806 | / mon_named_args!(obj_resource(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 1807 | | guard: mon_option!(mon_call!(Put::msg_guards, version)) >> [INFO] [stderr] 1808 | | amount: mon_call!(Put::long) >> [INFO] [stderr] 1809 | | _zeroes: mon_tag!([0u8; 4]) >> [INFO] [stderr] 1810 | | (H3MObjectProperties::Resource { ref guard, ref amount }) [INFO] [stderr] 1811 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1806 | / mon_named_args!(obj_resource(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 1807 | | guard: mon_option!(mon_call!(Put::msg_guards, version)) >> [INFO] [stderr] 1808 | | amount: mon_call!(Put::long) >> [INFO] [stderr] 1809 | | _zeroes: mon_tag!([0u8; 4]) >> [INFO] [stderr] 1810 | | (H3MObjectProperties::Resource { ref guard, ref amount }) [INFO] [stderr] 1811 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1816 | / mon_named_args!(obj_artifact(version: H3MVersion), [INFO] [stderr] 1817 | | mon_map!(mon_option!(mon_call!(Put::msg_guards, version)), |guard| H3MObjectProperties::Artifact { ref guard }) [INFO] [stderr] 1818 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:227:9 [INFO] [stderr] | [INFO] [stderr] 227 | / match *$v { [INFO] [stderr] 228 | | $pat => $f!($o, $mi, $($args)* ), [INFO] [stderr] 229 | | _ => false, [INFO] [stderr] 230 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1816 | / mon_named_args!(obj_artifact(version: H3MVersion), [INFO] [stderr] 1817 | | mon_map!(mon_option!(mon_call!(Put::msg_guards, version)), |guard| H3MObjectProperties::Artifact { ref guard }) [INFO] [stderr] 1818 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1828 | / mon_named_args!(obj_scroll(version: H3MVersion), [INFO] [stderr] 1829 | | mon_do_parse!( [INFO] [stderr] 1830 | | guard: mon_option!(mon_call!(Put::msg_guards, version)) >> [INFO] [stderr] 1831 | | spell: mon_call!(Put::spell) >> [INFO] [stderr] ... | [INFO] [stderr] 1834 | | ) [INFO] [stderr] 1835 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1828 | / mon_named_args!(obj_scroll(version: H3MVersion), [INFO] [stderr] 1829 | | mon_do_parse!( [INFO] [stderr] 1830 | | guard: mon_option!(mon_call!(Put::msg_guards, version)) >> [INFO] [stderr] 1831 | | spell: mon_call!(Put::spell) >> [INFO] [stderr] ... | [INFO] [stderr] 1834 | | ) [INFO] [stderr] 1835 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:1838:44 [INFO] [stderr] | [INFO] [stderr] 1838 | ifeq!(version, H3MVersion::RoE, value!(0x0FFFEFBF), call!(Eat::long)), [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0FFF_EFBF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1841 | / mon_named_args!(obj_witch(version: H3MVersion), mon_map!( [INFO] [stderr] 1842 | | mon_ifeq!(version, H3MVersion::RoE, mon_value!(0x0FFFEFBF), mon_call!(Put::long)), [INFO] [stderr] 1843 | | |skills| H3MObjectProperties::Witch { ref skills } [INFO] [stderr] 1844 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:227:9 [INFO] [stderr] | [INFO] [stderr] 227 | / match *$v { [INFO] [stderr] 228 | | $pat => $f!($o, $mi, $($args)* ), [INFO] [stderr] 229 | | _ => false, [INFO] [stderr] 230 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1841 | / mon_named_args!(obj_witch(version: H3MVersion), mon_map!( [INFO] [stderr] 1842 | | mon_ifeq!(version, H3MVersion::RoE, mon_value!(0x0FFFEFBF), mon_call!(Put::long)), [INFO] [stderr] 1843 | | |skills| H3MObjectProperties::Witch { ref skills } [INFO] [stderr] 1844 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:1842:52 [INFO] [stderr] | [INFO] [stderr] 1842 | mon_ifeq!(version, H3MVersion::RoE, mon_value!(0x0FFFEFBF), mon_call!(Put::long)), [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0FFF_EFBF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: `v` already exists, having another argument having almost the same name makes code comprehension and documentation more difficult [INFO] [stderr] --> src/main.rs:82:36 [INFO] [stderr] | [INFO] [stderr] 82 | fn $f(o: &mut Vec, v: &$t, $($a: $at),* ) -> bool { [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 1849 | / mon_named_args!(obj_shrine(_v: H3MVersion), [INFO] [stderr] 1850 | | mon_do_parse!(spell: mon_call!(Put::byte) >> _zeroes: mon_tag!([0u8; 3]) >> (H3MObjectProperties::Shrine { ref spell })) [INFO] [stderr] 1851 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duplicate_underscore_argument [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1849 | / mon_named_args!(obj_shrine(_v: H3MVersion), [INFO] [stderr] 1850 | | mon_do_parse!(spell: mon_call!(Put::byte) >> _zeroes: mon_tag!([0u8; 3]) >> (H3MObjectProperties::Shrine { ref spell })) [INFO] [stderr] 1851 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1849 | / mon_named_args!(obj_shrine(_v: H3MVersion), [INFO] [stderr] 1850 | | mon_do_parse!(spell: mon_call!(Put::byte) >> _zeroes: mon_tag!([0u8; 3]) >> (H3MObjectProperties::Shrine { ref spell })) [INFO] [stderr] 1851 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: `v` already exists, having another argument having almost the same name makes code comprehension and documentation more difficult [INFO] [stderr] --> src/main.rs:82:36 [INFO] [stderr] | [INFO] [stderr] 82 | fn $f(o: &mut Vec, v: &$t, $($a: $at),* ) -> bool { [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 1856 | / mon_named_args!(obj_grail(_v: H3MVersion), [INFO] [stderr] 1857 | | mon_map!(Put::long, |radius| H3MObjectProperties::Grail { ref radius }) [INFO] [stderr] 1858 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duplicate_underscore_argument [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1856 | / mon_named_args!(obj_grail(_v: H3MVersion), [INFO] [stderr] 1857 | | mon_map!(Put::long, |radius| H3MObjectProperties::Grail { ref radius }) [INFO] [stderr] 1858 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:227:9 [INFO] [stderr] | [INFO] [stderr] 227 | / match *$v { [INFO] [stderr] 228 | | $pat => $f!($o, $mi, $($args)* ), [INFO] [stderr] 229 | | _ => false, [INFO] [stderr] 230 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1856 | / mon_named_args!(obj_grail(_v: H3MVersion), [INFO] [stderr] 1857 | | mon_map!(Put::long, |radius| H3MObjectProperties::Grail { ref radius }) [INFO] [stderr] 1858 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: `v` already exists, having another argument having almost the same name makes code comprehension and documentation more difficult [INFO] [stderr] --> src/main.rs:82:36 [INFO] [stderr] | [INFO] [stderr] 82 | fn $f(o: &mut Vec, v: &$t, $($a: $at),* ) -> bool { [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 1863 | / mon_named_args!(obj_message(_v: H3MVersion), [INFO] [stderr] 1864 | | mon_do_parse!(text: mon_call!(Put::string) >> _zeroes: mon_tag!([0u8; 4]) >> (H3MObjectProperties::Message { ref text })) [INFO] [stderr] 1865 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duplicate_underscore_argument [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1863 | / mon_named_args!(obj_message(_v: H3MVersion), [INFO] [stderr] 1864 | | mon_do_parse!(text: mon_call!(Put::string) >> _zeroes: mon_tag!([0u8; 4]) >> (H3MObjectProperties::Message { ref text })) [INFO] [stderr] 1865 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1863 | / mon_named_args!(obj_message(_v: H3MVersion), [INFO] [stderr] 1864 | | mon_do_parse!(text: mon_call!(Put::string) >> _zeroes: mon_tag!([0u8; 4]) >> (H3MObjectProperties::Message { ref text })) [INFO] [stderr] 1865 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: `v` already exists, having another argument having almost the same name makes code comprehension and documentation more difficult [INFO] [stderr] --> src/main.rs:82:36 [INFO] [stderr] | [INFO] [stderr] 82 | fn $f(o: &mut Vec, v: &$t, $($a: $at),* ) -> bool { [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 1875 | / mon_named_args!(obj_scholar(_v: H3MVersion), [INFO] [stderr] 1876 | | mon_do_parse!( [INFO] [stderr] 1877 | | bonus_type: mon_call!(Put::byte) >> [INFO] [stderr] 1878 | | bonus_id: mon_call!(Put::byte) >> [INFO] [stderr] ... | [INFO] [stderr] 1881 | | ) [INFO] [stderr] 1882 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duplicate_underscore_argument [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1875 | / mon_named_args!(obj_scholar(_v: H3MVersion), [INFO] [stderr] 1876 | | mon_do_parse!( [INFO] [stderr] 1877 | | bonus_type: mon_call!(Put::byte) >> [INFO] [stderr] 1878 | | bonus_id: mon_call!(Put::byte) >> [INFO] [stderr] ... | [INFO] [stderr] 1881 | | ) [INFO] [stderr] 1882 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1875 | / mon_named_args!(obj_scholar(_v: H3MVersion), [INFO] [stderr] 1876 | | mon_do_parse!( [INFO] [stderr] 1877 | | bonus_type: mon_call!(Put::byte) >> [INFO] [stderr] 1878 | | bonus_id: mon_call!(Put::byte) >> [INFO] [stderr] ... | [INFO] [stderr] 1881 | | ) [INFO] [stderr] 1882 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: `v` already exists, having another argument having almost the same name makes code comprehension and documentation more difficult [INFO] [stderr] --> src/main.rs:82:36 [INFO] [stderr] | [INFO] [stderr] 82 | fn $f(o: &mut Vec, v: &$t, $($a: $at),* ) -> bool { [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 1887 | / mon_named_args!(obj_abandoned(_v: H3MVersion), [INFO] [stderr] 1888 | | mon_do_parse!(resources: mon_call!(Put::byte) >> _zeroes: mon_tag!([0u8; 3]) >> (H3MObjectProperties::AbandonedMine { ref resources })) [INFO] [stderr] 1889 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duplicate_underscore_argument [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1887 | / mon_named_args!(obj_abandoned(_v: H3MVersion), [INFO] [stderr] 1888 | | mon_do_parse!(resources: mon_call!(Put::byte) >> _zeroes: mon_tag!([0u8; 3]) >> (H3MObjectProperties::AbandonedMine { ref resources })) [INFO] [stderr] 1889 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1887 | / mon_named_args!(obj_abandoned(_v: H3MVersion), [INFO] [stderr] 1888 | | mon_do_parse!(resources: mon_call!(Put::byte) >> _zeroes: mon_tag!([0u8; 3]) >> (H3MObjectProperties::AbandonedMine { ref resources })) [INFO] [stderr] 1889 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1901 | / mon_named_args!(obj_garrison(version: H3MVersion), [INFO] [stderr] 1902 | | mon_do_parse!( [INFO] [stderr] 1903 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1904 | | _zeroes1: mon_tag!([0u8; 3]) >> [INFO] [stderr] ... | [INFO] [stderr] 1909 | | ) [INFO] [stderr] 1910 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1901 | / mon_named_args!(obj_garrison(version: H3MVersion), [INFO] [stderr] 1902 | | mon_do_parse!( [INFO] [stderr] 1903 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1904 | | _zeroes1: mon_tag!([0u8; 3]) >> [INFO] [stderr] ... | [INFO] [stderr] 1909 | | ) [INFO] [stderr] 1910 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1920 | / mon_named_args!(obj_seer(version: H3MVersion), [INFO] [stderr] 1921 | | mon_do_parse!( [INFO] [stderr] 1922 | | quest: mon_ifeq!(version, H3MVersion::RoE, mon_call!(Put::quest1), mon_call!(Put::quest2)) >> [INFO] [stderr] 1923 | | reward: mon_call!(Put::reward, version) >> [INFO] [stderr] ... | [INFO] [stderr] 1926 | | ) [INFO] [stderr] 1927 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1920 | / mon_named_args!(obj_seer(version: H3MVersion), [INFO] [stderr] 1921 | | mon_do_parse!( [INFO] [stderr] 1922 | | quest: mon_ifeq!(version, H3MVersion::RoE, mon_call!(Put::quest1), mon_call!(Put::quest2)) >> [INFO] [stderr] 1923 | | reward: mon_call!(Put::reward, version) >> [INFO] [stderr] ... | [INFO] [stderr] 1926 | | ) [INFO] [stderr] 1927 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1935 | / mon_named_args!(obj_quest_guard(version: H3MVersion), [INFO] [stderr] 1936 | | mon_do_parse!( [INFO] [stderr] 1937 | | quest: mon_ifeq!(version, H3MVersion::RoE, mon_call!(Put::quest1), mon_call!(Put::quest2)) >> [INFO] [stderr] 1938 | | (H3MObjectProperties::QuestGuard { ref quest }) [INFO] [stderr] 1939 | | ) [INFO] [stderr] 1940 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1935 | / mon_named_args!(obj_quest_guard(version: H3MVersion), [INFO] [stderr] 1936 | | mon_do_parse!( [INFO] [stderr] 1937 | | quest: mon_ifeq!(version, H3MVersion::RoE, mon_call!(Put::quest1), mon_call!(Put::quest2)) >> [INFO] [stderr] 1938 | | (H3MObjectProperties::QuestGuard { ref quest }) [INFO] [stderr] 1939 | | ) [INFO] [stderr] 1940 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1946 | / mon_named_args!(obj_pandora(version: H3MVersion), mon_map!( [INFO] [stderr] 1947 | | mon_call!(Put::msg_guard_reward, version), [INFO] [stderr] 1948 | | |contents| H3MObjectProperties::Pandora { ref contents } [INFO] [stderr] 1949 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:227:9 [INFO] [stderr] | [INFO] [stderr] 227 | / match *$v { [INFO] [stderr] 228 | | $pat => $f!($o, $mi, $($args)* ), [INFO] [stderr] 229 | | _ => false, [INFO] [stderr] 230 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1946 | / mon_named_args!(obj_pandora(version: H3MVersion), mon_map!( [INFO] [stderr] 1947 | | mon_call!(Put::msg_guard_reward, version), [INFO] [stderr] 1948 | | |contents| H3MObjectProperties::Pandora { ref contents } [INFO] [stderr] 1949 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1963 | / mon_named_args!(obj_event(version: H3MVersion), [INFO] [stderr] 1964 | | mon_do_parse!( [INFO] [stderr] 1965 | | contents: mon_call!(Put::msg_guard_reward, version) >> [INFO] [stderr] 1966 | | players_mask: mon_call!(Put::byte) >> [INFO] [stderr] ... | [INFO] [stderr] 1973 | | ) [INFO] [stderr] 1974 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1963 | / mon_named_args!(obj_event(version: H3MVersion), [INFO] [stderr] 1964 | | mon_do_parse!( [INFO] [stderr] 1965 | | contents: mon_call!(Put::msg_guard_reward, version) >> [INFO] [stderr] 1966 | | players_mask: mon_call!(Put::byte) >> [INFO] [stderr] ... | [INFO] [stderr] 1973 | | ) [INFO] [stderr] 1974 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: `v` already exists, having another argument having almost the same name makes code comprehension and documentation more difficult [INFO] [stderr] --> src/main.rs:82:36 [INFO] [stderr] | [INFO] [stderr] 82 | fn $f(o: &mut Vec, v: &$t, $($a: $at),* ) -> bool { [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 1977 | mon_named_args!(obj_noprops(_v: H3MVersion), mon_value!(H3MObjectProperties::NoProperties)); [INFO] [stderr] | ----------------------------------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duplicate_underscore_argument [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1977 | mon_named_args!(obj_noprops(_v: H3MVersion), mon_value!(H3MObjectProperties::NoProperties)); [INFO] [stderr] | ----------------------------------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:380:9 [INFO] [stderr] | [INFO] [stderr] 380 | / match *$v { [INFO] [stderr] 381 | | $val => true, [INFO] [stderr] 382 | | _ => false, [INFO] [stderr] 383 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1977 | mon_named_args!(obj_noprops(_v: H3MVersion), mon_value!(H3MObjectProperties::NoProperties)); [INFO] [stderr] | ----------------------------------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 2067 | / mon_named_args!(object(version: H3MVersion, templates: &[H3MObjectTemplate]), mon_do_parse!( [INFO] [stderr] 2068 | | loc: mon_call!(Put::location) >> [INFO] [stderr] 2069 | | template_idx: mon_call!(Put::long) >> [INFO] [stderr] 2070 | | _zeroes: mon_tag!([0u8; 5]) >> [INFO] [stderr] ... | [INFO] [stderr] 2074 | | }) [INFO] [stderr] 2075 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 2067 | / mon_named_args!(object(version: H3MVersion, templates: &[H3MObjectTemplate]), mon_do_parse!( [INFO] [stderr] 2068 | | loc: mon_call!(Put::location) >> [INFO] [stderr] 2069 | | template_idx: mon_call!(Put::long) >> [INFO] [stderr] 2070 | | _zeroes: mon_tag!([0u8; 5]) >> [INFO] [stderr] ... | [INFO] [stderr] 2074 | | }) [INFO] [stderr] 2075 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 2106 | / mon_named_args!(event(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 2107 | | name: mon_call!(Put::string) >> [INFO] [stderr] 2108 | | text: mon_call!(Put::string) >> [INFO] [stderr] 2109 | | resources: mon_call!(Put::resources) >> [INFO] [stderr] ... | [INFO] [stderr] 2118 | | }) [INFO] [stderr] 2119 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 2106 | / mon_named_args!(event(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 2107 | | name: mon_call!(Put::string) >> [INFO] [stderr] 2108 | | text: mon_call!(Put::string) >> [INFO] [stderr] 2109 | | resources: mon_call!(Put::resources) >> [INFO] [stderr] ... | [INFO] [stderr] 2118 | | }) [INFO] [stderr] 2119 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 2184 | / mon_named!(h3m, mon_do_parse!( [INFO] [stderr] 2185 | | header: mon_call!(Put::header) >> [INFO] [stderr] 2186 | | players: mon_count!(mon_call!(Put::player, header.version), 8) >> [INFO] [stderr] 2187 | | victory: mon_call!(Put::special_victory, header.version) >> [INFO] [stderr] ... | [INFO] [stderr] 2220 | | }) [INFO] [stderr] 2221 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 2184 | / mon_named!(h3m, mon_do_parse!( [INFO] [stderr] 2185 | | header: mon_call!(Put::header) >> [INFO] [stderr] 2186 | | players: mon_count!(mon_call!(Put::player, header.version), 8) >> [INFO] [stderr] 2187 | | victory: mon_call!(Put::special_victory, header.version) >> [INFO] [stderr] ... | [INFO] [stderr] 2220 | | }) [INFO] [stderr] 2221 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/enums.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 51 | / h3m_enum_derive! { [Debug, Clone, Copy] [INFO] [stderr] 52 | | [INFO] [stderr] 53 | | (2, AltarOfSacrifice) [INFO] [stderr] 54 | | [INFO] [stderr] ... | [INFO] [stderr] 236 | | (231, RockLands) [INFO] [stderr] 237 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/enums.rs:38:27 [INFO] [stderr] | [INFO] [stderr] 38 | let ret = Put::$p(o, &v.write()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 51 | / h3m_enum_derive! { [Debug, Clone, Copy] [INFO] [stderr] 52 | | [INFO] [stderr] 53 | | (2, AltarOfSacrifice) [INFO] [stderr] 54 | | [INFO] [stderr] ... | [INFO] [stderr] 236 | | (231, RockLands) [INFO] [stderr] 237 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/enums.rs:240:6 [INFO] [stderr] | [INFO] [stderr] 240 | (0x0000000E, RoE) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_000E` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/enums.rs:241:6 [INFO] [stderr] | [INFO] [stderr] 241 | (0x00000015, AB) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0015` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/enums.rs:242:6 [INFO] [stderr] | [INFO] [stderr] 242 | (0x0000001C, SoD) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_001C` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/enums.rs:240:6 [INFO] [stderr] | [INFO] [stderr] 240 | (0x0000000E, RoE) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_000E` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/enums.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 239 | / h3m_enum_derive! { [Debug, Clone, Copy] [INFO] [stderr] 240 | | (0x0000000E, RoE) [INFO] [stderr] 241 | | (0x00000015, AB) [INFO] [stderr] 242 | | (0x0000001C, SoD) [INFO] [stderr] 243 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/enums.rs:38:27 [INFO] [stderr] | [INFO] [stderr] 38 | let ret = Put::$p(o, &v.write()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 239 | / h3m_enum_derive! { [Debug, Clone, Copy] [INFO] [stderr] 240 | | (0x0000000E, RoE) [INFO] [stderr] 241 | | (0x00000015, AB) [INFO] [stderr] 242 | | (0x0000001C, SoD) [INFO] [stderr] 243 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/enums.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 245 | / h3m_enum! { [INFO] [stderr] 246 | | (36, S) [INFO] [stderr] 247 | | (72, M) [INFO] [stderr] 248 | | (108, L) [INFO] [stderr] 249 | | (144, XL) [INFO] [stderr] 250 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/enums.rs:38:27 [INFO] [stderr] | [INFO] [stderr] 38 | let ret = Put::$p(o, &v.write()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 245 | / h3m_enum! { [INFO] [stderr] 246 | | (36, S) [INFO] [stderr] 247 | | (72, M) [INFO] [stderr] 248 | | (108, L) [INFO] [stderr] 249 | | (144, XL) [INFO] [stderr] 250 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/enums.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 252 | / h3m_enum! { [INFO] [stderr] 253 | | (0, Easy) [INFO] [stderr] 254 | | (1, Normal) [INFO] [stderr] 255 | | (2, Hard) [INFO] [stderr] 256 | | (3, Expert) [INFO] [stderr] 257 | | (4, Impossible) [INFO] [stderr] 258 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/enums.rs:38:27 [INFO] [stderr] | [INFO] [stderr] 38 | let ret = Put::$p(o, &v.write()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 252 | / h3m_enum! { [INFO] [stderr] 253 | | (0, Easy) [INFO] [stderr] 254 | | (1, Normal) [INFO] [stderr] 255 | | (2, Hard) [INFO] [stderr] 256 | | (3, Expert) [INFO] [stderr] 257 | | (4, Impossible) [INFO] [stderr] 258 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/enums.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 260 | / h3m_enum! { [INFO] [stderr] 261 | | (0, Unspecified) [INFO] [stderr] 262 | | (1, Basic) [INFO] [stderr] 263 | | (2, Advanced) [INFO] [stderr] 264 | | (3, Expert) [INFO] [stderr] 265 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/enums.rs:38:27 [INFO] [stderr] | [INFO] [stderr] 38 | let ret = Put::$p(o, &v.write()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 260 | / h3m_enum! { [INFO] [stderr] 261 | | (0, Unspecified) [INFO] [stderr] 262 | | (1, Basic) [INFO] [stderr] 263 | | (2, Advanced) [INFO] [stderr] 264 | | (3, Expert) [INFO] [stderr] 265 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/enums.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 267 | / h3m_enum! { [INFO] [stderr] 268 | | (0x00, Male) [INFO] [stderr] 269 | | (0x01, Female) [INFO] [stderr] 270 | | (0xFF, Default) // TODO: option? [INFO] [stderr] 271 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/enums.rs:38:27 [INFO] [stderr] | [INFO] [stderr] 38 | let ret = Put::$p(o, &v.write()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 267 | / h3m_enum! { [INFO] [stderr] 268 | | (0x00, Male) [INFO] [stderr] 269 | | (0x01, Female) [INFO] [stderr] 270 | | (0xFF, Default) // TODO: option? [INFO] [stderr] 271 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/enums.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 273 | / h3m_enum! { [INFO] [stderr] 274 | | (0, Red) [INFO] [stderr] 275 | | (1, Blue) [INFO] [stderr] 276 | | (2, Tan) [INFO] [stderr] ... | [INFO] [stderr] 282 | | (0xFF, Unspecified) // TODO: option? [INFO] [stderr] 283 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/enums.rs:38:27 [INFO] [stderr] | [INFO] [stderr] 38 | let ret = Put::$p(o, &v.write()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 273 | / h3m_enum! { [INFO] [stderr] 274 | | (0, Red) [INFO] [stderr] 275 | | (1, Blue) [INFO] [stderr] 276 | | (2, Tan) [INFO] [stderr] ... | [INFO] [stderr] 282 | | (0xFF, Unspecified) // TODO: option? [INFO] [stderr] 283 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/enums.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 285 | / h3m_enum! { [INFO] [stderr] 286 | | (0, Attack) [INFO] [stderr] 287 | | (1, Defense) [INFO] [stderr] 288 | | (2, SpellPower) [INFO] [stderr] 289 | | (3, Knowledge) [INFO] [stderr] 290 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/enums.rs:38:27 [INFO] [stderr] | [INFO] [stderr] 38 | let ret = Put::$p(o, &v.write()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 285 | / h3m_enum! { [INFO] [stderr] 286 | | (0, Attack) [INFO] [stderr] 287 | | (1, Defense) [INFO] [stderr] 288 | | (2, SpellPower) [INFO] [stderr] 289 | | (3, Knowledge) [INFO] [stderr] 290 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/enums.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 292 | / h3m_enum! { [INFO] [stderr] 293 | | (0, Pathfinding) [INFO] [stderr] 294 | | (1, Archery) [INFO] [stderr] 295 | | (2, Logistics) [INFO] [stderr] ... | [INFO] [stderr] 320 | | (27, FirstAid) [INFO] [stderr] 321 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/enums.rs:38:27 [INFO] [stderr] | [INFO] [stderr] 38 | let ret = Put::$p(o, &v.write()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 292 | / h3m_enum! { [INFO] [stderr] 293 | | (0, Pathfinding) [INFO] [stderr] 294 | | (1, Archery) [INFO] [stderr] 295 | | (2, Logistics) [INFO] [stderr] ... | [INFO] [stderr] 320 | | (27, FirstAid) [INFO] [stderr] 321 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/enums.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 323 | / h3m_enum! { [INFO] [stderr] 324 | | (253, Minus3) [INFO] [stderr] 325 | | (254, Minus2) [INFO] [stderr] 326 | | (255, Minus1) [INFO] [stderr] ... | [INFO] [stderr] 330 | | (3, Plus3) [INFO] [stderr] 331 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/enums.rs:38:27 [INFO] [stderr] | [INFO] [stderr] 38 | let ret = Put::$p(o, &v.write()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 323 | / h3m_enum! { [INFO] [stderr] 324 | | (253, Minus3) [INFO] [stderr] 325 | | (254, Minus2) [INFO] [stderr] 326 | | (255, Minus1) [INFO] [stderr] ... | [INFO] [stderr] 330 | | (3, Plus3) [INFO] [stderr] 331 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/enums.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 333 | / h3m_enum! { [INFO] [stderr] 334 | | (0, SummonBoat) [INFO] [stderr] 335 | | (1, ScuttleBoat) [INFO] [stderr] 336 | | (2, Vision) [INFO] [stderr] ... | [INFO] [stderr] 403 | | (69, AirElemental) [INFO] [stderr] 404 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/enums.rs:38:27 [INFO] [stderr] | [INFO] [stderr] 38 | let ret = Put::$p(o, &v.write()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 333 | / h3m_enum! { [INFO] [stderr] 334 | | (0, SummonBoat) [INFO] [stderr] 335 | | (1, ScuttleBoat) [INFO] [stderr] 336 | | (2, Vision) [INFO] [stderr] ... | [INFO] [stderr] 403 | | (69, AirElemental) [INFO] [stderr] 404 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/enums.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 406 | / h3m_enum! { [INFO] [stderr] 407 | | (0, Compliant) [INFO] [stderr] 408 | | (1, Friendly) [INFO] [stderr] 409 | | (2, Aggressive) [INFO] [stderr] 410 | | (3, Hostile) [INFO] [stderr] 411 | | (4, Savage) [INFO] [stderr] 412 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/enums.rs:38:27 [INFO] [stderr] | [INFO] [stderr] 38 | let ret = Put::$p(o, &v.write()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 406 | / h3m_enum! { [INFO] [stderr] 407 | | (0, Compliant) [INFO] [stderr] 408 | | (1, Friendly) [INFO] [stderr] 409 | | (2, Aggressive) [INFO] [stderr] 410 | | (3, Hostile) [INFO] [stderr] 411 | | (4, Savage) [INFO] [stderr] 412 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/enums.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 414 | / h3m_enum! { [INFO] [stderr] 415 | | (0x00, TrDirt) [INFO] [stderr] 416 | | (0x01, TrSand) [INFO] [stderr] 417 | | (0x02, TrGrass) [INFO] [stderr] ... | [INFO] [stderr] 424 | | (0x09, TrRock) [INFO] [stderr] 425 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/enums.rs:38:27 [INFO] [stderr] | [INFO] [stderr] 38 | let ret = Put::$p(o, &v.write()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 414 | / h3m_enum! { [INFO] [stderr] 415 | | (0x00, TrDirt) [INFO] [stderr] 416 | | (0x01, TrSand) [INFO] [stderr] 417 | | (0x02, TrGrass) [INFO] [stderr] ... | [INFO] [stderr] 424 | | (0x09, TrRock) [INFO] [stderr] 425 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/enums.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 427 | / h3m_enum! { [INFO] [stderr] 428 | | (0x00, RvNone) [INFO] [stderr] 429 | | (0x01, RvClear) [INFO] [stderr] 430 | | (0x02, RvIcy) [INFO] [stderr] 431 | | (0x03, RvMuddy) [INFO] [stderr] 432 | | (0x04, RvLava) [INFO] [stderr] 433 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/enums.rs:38:27 [INFO] [stderr] | [INFO] [stderr] 38 | let ret = Put::$p(o, &v.write()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 427 | / h3m_enum! { [INFO] [stderr] 428 | | (0x00, RvNone) [INFO] [stderr] 429 | | (0x01, RvClear) [INFO] [stderr] 430 | | (0x02, RvIcy) [INFO] [stderr] 431 | | (0x03, RvMuddy) [INFO] [stderr] 432 | | (0x04, RvLava) [INFO] [stderr] 433 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/enums.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 435 | / h3m_enum! { [INFO] [stderr] 436 | | (0x00, Turn1) [INFO] [stderr] 437 | | (0x01, Turn2) [INFO] [stderr] 438 | | (0x02, Turn3) [INFO] [stderr] ... | [INFO] [stderr] 448 | | (0x0C, Horz2) [INFO] [stderr] 449 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/enums.rs:38:27 [INFO] [stderr] | [INFO] [stderr] 38 | let ret = Put::$p(o, &v.write()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 435 | / h3m_enum! { [INFO] [stderr] 436 | | (0x00, Turn1) [INFO] [stderr] 437 | | (0x01, Turn2) [INFO] [stderr] 438 | | (0x02, Turn3) [INFO] [stderr] ... | [INFO] [stderr] 448 | | (0x0C, Horz2) [INFO] [stderr] 449 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/enums.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 451 | / h3m_enum! { [INFO] [stderr] 452 | | (0x00, RdNone) [INFO] [stderr] 453 | | (0x01, RdDirt) [INFO] [stderr] 454 | | (0x02, RdGravel) [INFO] [stderr] 455 | | (0x03, RdCobblestone) [INFO] [stderr] 456 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/enums.rs:38:27 [INFO] [stderr] | [INFO] [stderr] 38 | let ret = Put::$p(o, &v.write()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 451 | / h3m_enum! { [INFO] [stderr] 452 | | (0x00, RdNone) [INFO] [stderr] 453 | | (0x01, RdDirt) [INFO] [stderr] 454 | | (0x02, RdGravel) [INFO] [stderr] 455 | | (0x03, RdCobblestone) [INFO] [stderr] 456 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/enums.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 458 | / h3m_enum! { [INFO] [stderr] 459 | | (0x00, Turn1) [INFO] [stderr] 460 | | (0x01, Turn2) [INFO] [stderr] 461 | | (0x02, Diag1) [INFO] [stderr] ... | [INFO] [stderr] 475 | | (0x10, Cross) [INFO] [stderr] 476 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/enums.rs:38:27 [INFO] [stderr] | [INFO] [stderr] 38 | let ret = Put::$p(o, &v.write()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 458 | / h3m_enum! { [INFO] [stderr] 459 | | (0x00, Turn1) [INFO] [stderr] 460 | | (0x01, Turn2) [INFO] [stderr] 461 | | (0x02, Diag1) [INFO] [stderr] ... | [INFO] [stderr] 475 | | (0x10, Cross) [INFO] [stderr] 476 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/enums.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 478 | / h3m_enum! { [INFO] [stderr] 479 | | (0, Wood) [INFO] [stderr] 480 | | (1, Mercury) [INFO] [stderr] 481 | | (2, Ore) [INFO] [stderr] ... | [INFO] [stderr] 485 | | (6, Gold) [INFO] [stderr] 486 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/enums.rs:38:27 [INFO] [stderr] | [INFO] [stderr] 38 | let ret = Put::$p(o, &v.write()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 478 | / h3m_enum! { [INFO] [stderr] 479 | | (0, Wood) [INFO] [stderr] 480 | | (1, Mercury) [INFO] [stderr] 481 | | (2, Ore) [INFO] [stderr] ... | [INFO] [stderr] 485 | | (6, Gold) [INFO] [stderr] 486 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/enums.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 488 | / h3m_enum! { [INFO] [stderr] 489 | | (0, Town) [INFO] [stderr] 490 | | (1, City) [INFO] [stderr] 491 | | (2, Capitol) [INFO] [stderr] 492 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/enums.rs:38:27 [INFO] [stderr] | [INFO] [stderr] 38 | let ret = Put::$p(o, &v.write()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 488 | / h3m_enum! { [INFO] [stderr] 489 | | (0, Town) [INFO] [stderr] 490 | | (1, City) [INFO] [stderr] 491 | | (2, Capitol) [INFO] [stderr] 492 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/enums.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 494 | / h3m_enum! { [INFO] [stderr] 495 | | (0, Fort) [INFO] [stderr] 496 | | (1, Citadel) [INFO] [stderr] 497 | | (2, Castle) [INFO] [stderr] 498 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/enums.rs:38:27 [INFO] [stderr] | [INFO] [stderr] 38 | let ret = Put::$p(o, &v.write()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 494 | / h3m_enum! { [INFO] [stderr] 495 | | (0, Fort) [INFO] [stderr] 496 | | (1, Citadel) [INFO] [stderr] 497 | | (2, Castle) [INFO] [stderr] 498 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/enums.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 500 | / h3m_enum! { [INFO] [stderr] 501 | | (0, Random) [INFO] [stderr] 502 | | (1, Warrior) [INFO] [stderr] 503 | | (2, Builder) [INFO] [stderr] 504 | | (3, Explorer) [INFO] [stderr] 505 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/enums.rs:38:27 [INFO] [stderr] | [INFO] [stderr] 38 | let ret = Put::$p(o, &v.write()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 500 | / h3m_enum! { [INFO] [stderr] 501 | | (0, Random) [INFO] [stderr] 502 | | (1, Warrior) [INFO] [stderr] 503 | | (2, Builder) [INFO] [stderr] 504 | | (3, Explorer) [INFO] [stderr] 505 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/enums.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 507 | / h3m_enum! { [INFO] [stderr] 508 | | (0x00, Castle) [INFO] [stderr] 509 | | (0x01, Rampart) [INFO] [stderr] 510 | | (0x02, Tower) [INFO] [stderr] ... | [INFO] [stderr] 517 | | (0xFF, Random) [INFO] [stderr] 518 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/enums.rs:38:27 [INFO] [stderr] | [INFO] [stderr] 38 | let ret = Put::$p(o, &v.write()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 507 | / h3m_enum! { [INFO] [stderr] 508 | | (0x00, Castle) [INFO] [stderr] 509 | | (0x01, Rampart) [INFO] [stderr] 510 | | (0x02, Tower) [INFO] [stderr] ... | [INFO] [stderr] 517 | | (0xFF, Random) [INFO] [stderr] 518 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 417 | / mon_named!(flag, mon_switch!(Put::byte, [INFO] [stderr] 418 | | 0u8 => mon_value!(false) | [INFO] [stderr] 419 | | 1u8 => mon_value!(true) [INFO] [stderr] 420 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:183:9 [INFO] [stderr] | [INFO] [stderr] 183 | / { [INFO] [stderr] 184 | | let tempo = &mut Vec::new(); [INFO] [stderr] 185 | | mon_switch!(__impl $o, $v, tempo, $tag!($($args)*), | $($list)* ) [INFO] [stderr] 186 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 417 | / mon_named!(flag, mon_switch!(Put::byte, [INFO] [stderr] 418 | | 0u8 => mon_value!(false) | [INFO] [stderr] 419 | | 1u8 => mon_value!(true) [INFO] [stderr] 420 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 500 | / mon_named!(header, mon_do_parse!( [INFO] [stderr] 501 | | version: mon_call!(Put::version) >> [INFO] [stderr] 502 | | has_players: mon_call!(Put::flag) >> [INFO] [stderr] 503 | | size: mon_call!(Put::size) >> [INFO] [stderr] ... | [INFO] [stderr] 518 | | }) [INFO] [stderr] 519 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 500 | / mon_named!(header, mon_do_parse!( [INFO] [stderr] 501 | | version: mon_call!(Put::version) >> [INFO] [stderr] 502 | | has_players: mon_call!(Put::flag) >> [INFO] [stderr] 503 | | size: mon_call!(Put::size) >> [INFO] [stderr] ... | [INFO] [stderr] 518 | | }) [INFO] [stderr] 519 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 531 | / mon_named!(location, mon_do_parse!( [INFO] [stderr] 532 | | x: mon_call!(Put::byte) >> y: mon_call!(Put::byte) >> u: mon_call!(Put::flag) >> [INFO] [stderr] 533 | | (H3MLocation(ref x, ref y, ref u)) [INFO] [stderr] 534 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 531 | / mon_named!(location, mon_do_parse!( [INFO] [stderr] 532 | | x: mon_call!(Put::byte) >> y: mon_call!(Put::byte) >> u: mon_call!(Put::flag) >> [INFO] [stderr] 533 | | (H3MLocation(ref x, ref y, ref u)) [INFO] [stderr] 534 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 550 | / mon_named!(spells_mask, [INFO] [stderr] 551 | | mon_map!(mon_tuple!(Put::long, Put::long, Put::byte), |t| H3MSpellsMask(ref t)) [INFO] [stderr] 552 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:227:9 [INFO] [stderr] | [INFO] [stderr] 227 | / match *$v { [INFO] [stderr] 228 | | $pat => $f!($o, $mi, $($args)* ), [INFO] [stderr] 229 | | _ => false, [INFO] [stderr] 230 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 550 | / mon_named!(spells_mask, [INFO] [stderr] 551 | | mon_map!(mon_tuple!(Put::long, Put::long, Put::byte), |t| H3MSpellsMask(ref t)) [INFO] [stderr] 552 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 583 | / mon_named_args!(main_town(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 584 | | generate_hero: mon_ifeq!(version, H3MVersion::RoE, mon_value!(true), mon_call!(Put::flag)) >> [INFO] [stderr] 585 | | kind: mon_ifeq!(version, H3MVersion::RoE, mon_value!(H3MTownKind::Random), mon_call!(Put::town_kind)) >> [INFO] [stderr] 586 | | location: mon_call!(Put::location) >> [INFO] [stderr] 587 | | (H3MMainTown { ref generate_hero, ref kind, ref location }) [INFO] [stderr] 588 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 583 | / mon_named_args!(main_town(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 584 | | generate_hero: mon_ifeq!(version, H3MVersion::RoE, mon_value!(true), mon_call!(Put::flag)) >> [INFO] [stderr] 585 | | kind: mon_ifeq!(version, H3MVersion::RoE, mon_value!(H3MTownKind::Random), mon_call!(Put::town_kind)) >> [INFO] [stderr] 586 | | location: mon_call!(Put::location) >> [INFO] [stderr] 587 | | (H3MMainTown { ref generate_hero, ref kind, ref location }) [INFO] [stderr] 588 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 596 | mon_named!(resources, mon_map!(mon_count_fixed!(u32, Put::long, 7), |xs| H3MResources(xs))); [INFO] [stderr] | ---------------------------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:227:9 [INFO] [stderr] | [INFO] [stderr] 227 | / match *$v { [INFO] [stderr] 228 | | $pat => $f!($o, $mi, $($args)* ), [INFO] [stderr] 229 | | _ => false, [INFO] [stderr] 230 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 596 | mon_named!(resources, mon_map!(mon_count_fixed!(u32, Put::long, 7), |xs| H3MResources(xs))); [INFO] [stderr] | ---------------------------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 618 | mon_named!(artifact1, mon_map!(Put::byte, |i| H3MArtifact(ref i, 0))); [INFO] [stderr] | ----------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:227:9 [INFO] [stderr] | [INFO] [stderr] 227 | / match *$v { [INFO] [stderr] 228 | | $pat => $f!($o, $mi, $($args)* ), [INFO] [stderr] 229 | | _ => false, [INFO] [stderr] 230 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 618 | mon_named!(artifact1, mon_map!(Put::byte, |i| H3MArtifact(ref i, 0))); [INFO] [stderr] | ----------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 619 | mon_named!(artifact2, mon_do_parse!(i: mon_call!(Put::byte) >> j: mon_call!(Put::byte) >> (H3MArtifact(ref i, ref j)))); [INFO] [stderr] | ------------------------------------------------------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 619 | mon_named!(artifact2, mon_do_parse!(i: mon_call!(Put::byte) >> j: mon_call!(Put::byte) >> (H3MArtifact(ref i, ref j)))); [INFO] [stderr] | ------------------------------------------------------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 621 | / mon_named_args!(artifact(version: H3MVersion), [INFO] [stderr] 622 | | mon_ifeq!(version, H3MVersion::RoE, mon_call!(Put::artifact1), mon_call!(Put::artifact2)) [INFO] [stderr] 623 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:132:9 [INFO] [stderr] | [INFO] [stderr] 132 | / match $c { [INFO] [stderr] 133 | | $t => $thn!($o, $v, $($targs)*), [INFO] [stderr] 134 | | _ => $els!($o, $v, $($eargs)*), [INFO] [stderr] 135 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 621 | / mon_named_args!(artifact(version: H3MVersion), [INFO] [stderr] 622 | | mon_ifeq!(version, H3MVersion::RoE, mon_call!(Put::artifact1), mon_call!(Put::artifact2)) [INFO] [stderr] 623 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 637 | mon_named!(creature1, mon_map!(Put::byte, |i| H3MCreature(ref i, 0))); [INFO] [stderr] | ----------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:227:9 [INFO] [stderr] | [INFO] [stderr] 227 | / match *$v { [INFO] [stderr] 228 | | $pat => $f!($o, $mi, $($args)* ), [INFO] [stderr] 229 | | _ => false, [INFO] [stderr] 230 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 637 | mon_named!(creature1, mon_map!(Put::byte, |i| H3MCreature(ref i, 0))); [INFO] [stderr] | ----------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 638 | mon_named!(creature2, mon_do_parse!(i: mon_call!(Put::byte) >> j: mon_call!(Put::byte) >> (H3MCreature(ref i, ref j)))); [INFO] [stderr] | ------------------------------------------------------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 638 | mon_named!(creature2, mon_do_parse!(i: mon_call!(Put::byte) >> j: mon_call!(Put::byte) >> (H3MCreature(ref i, ref j)))); [INFO] [stderr] | ------------------------------------------------------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 640 | / mon_named_args!(creature(version: H3MVersion), [INFO] [stderr] 641 | | mon_ifeq!(version, H3MVersion::RoE, mon_call!(Put::creature1), mon_call!(Put::creature2)) [INFO] [stderr] 642 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:132:9 [INFO] [stderr] | [INFO] [stderr] 132 | / match $c { [INFO] [stderr] 133 | | $t => $thn!($o, $v, $($targs)*), [INFO] [stderr] 134 | | _ => $els!($o, $v, $($eargs)*), [INFO] [stderr] 135 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 640 | / mon_named_args!(creature(version: H3MVersion), [INFO] [stderr] 641 | | mon_ifeq!(version, H3MVersion::RoE, mon_call!(Put::creature1), mon_call!(Put::creature2)) [INFO] [stderr] 642 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 702 | / mon_named_args!(special_victory(version: H3MVersion)>, [INFO] [stderr] 703 | | mon_alt!( [INFO] [stderr] 704 | | mon_tag!([0xFF]) => { |_| None } | [INFO] [stderr] 705 | | mon_do_parse!( [INFO] [stderr] ... | [INFO] [stderr] 732 | | ) [INFO] [stderr] 733 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:197:9 [INFO] [stderr] | [INFO] [stderr] 197 | / match *$v { [INFO] [stderr] 198 | | $pat0 => { let _t = &$tag; mon_tag!($o, _t, $tag) }, [INFO] [stderr] 199 | | $pat1 => { let val = $x; $case!($o, val, $($args)*) }, [INFO] [stderr] 200 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 702 | / mon_named_args!(special_victory(version: H3MVersion)>, [INFO] [stderr] 703 | | mon_alt!( [INFO] [stderr] 704 | | mon_tag!([0xFF]) => { |_| None } | [INFO] [stderr] 705 | | mon_do_parse!( [INFO] [stderr] ... | [INFO] [stderr] 732 | | ) [INFO] [stderr] 733 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 752 | / mon_named!(loss, mon_switch!(Put::byte, [INFO] [stderr] 753 | | 0xFFu8 => mon_value!(H3MLossCondition::Default) | [INFO] [stderr] 754 | | 0x00u8 => mon_map!(Put::location, |l| H3MLossCondition::LoseTown(ref l)) | [INFO] [stderr] 755 | | 0x01u8 => mon_map!(Put::location, |l| H3MLossCondition::LoseHero(ref l)) | [INFO] [stderr] 756 | | 0x02u8 => mon_map!(Put::short, |d| H3MLossCondition::TimeExpires(ref d)) [INFO] [stderr] 757 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:183:9 [INFO] [stderr] | [INFO] [stderr] 183 | / { [INFO] [stderr] 184 | | let tempo = &mut Vec::new(); [INFO] [stderr] 185 | | mon_switch!(__impl $o, $v, tempo, $tag!($($args)*), | $($list)* ) [INFO] [stderr] 186 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 752 | / mon_named!(loss, mon_switch!(Put::byte, [INFO] [stderr] 753 | | 0xFFu8 => mon_value!(H3MLossCondition::Default) | [INFO] [stderr] 754 | | 0x00u8 => mon_map!(Put::location, |l| H3MLossCondition::LoseTown(ref l)) | [INFO] [stderr] 755 | | 0x01u8 => mon_map!(Put::location, |l| H3MLossCondition::LoseHero(ref l)) | [INFO] [stderr] 756 | | 0x02u8 => mon_map!(Put::short, |d| H3MLossCondition::TimeExpires(ref d)) [INFO] [stderr] 757 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 774 | / mon_named!(hero, mon_do_parse!( [INFO] [stderr] 775 | | face: mon_call!(Put::byte) >> [INFO] [stderr] 776 | | name: mon_call!(Put::string) >> [INFO] [stderr] 777 | | (H3MHero { ref face, ref name }) [INFO] [stderr] 778 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 774 | / mon_named!(hero, mon_do_parse!( [INFO] [stderr] 775 | | face: mon_call!(Put::byte) >> [INFO] [stderr] 776 | | name: mon_call!(Put::string) >> [INFO] [stderr] 777 | | (H3MHero { ref face, ref name }) [INFO] [stderr] 778 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 797 | / mon_named!(player_playability, mon_do_parse!( [INFO] [stderr] 798 | | human: mon_call!(Put::flag) >> [INFO] [stderr] 799 | | computer: mon_call!(Put::flag) >> [INFO] [stderr] 800 | | behavior: mon_call!(Put::player_behavior) >> [INFO] [stderr] 801 | | (H3MPlayerPlayability { ref human, ref computer, ref behavior }) [INFO] [stderr] 802 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 797 | / mon_named!(player_playability, mon_do_parse!( [INFO] [stderr] 798 | | human: mon_call!(Put::flag) >> [INFO] [stderr] 799 | | computer: mon_call!(Put::flag) >> [INFO] [stderr] 800 | | behavior: mon_call!(Put::player_behavior) >> [INFO] [stderr] 801 | | (H3MPlayerPlayability { ref human, ref computer, ref behavior }) [INFO] [stderr] 802 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 834 | / mon_named_args!(player_allowed_alignments(version: H3MVersion, playable: bool), [INFO] [stderr] 835 | | mon_ifeq!(playable, true, [INFO] [stderr] 836 | | mon_do_parse!( [INFO] [stderr] 837 | | unknown: mon_sod!(version, mon_value!(false), mon_call!(Put::flag)) >> [INFO] [stderr] ... | [INFO] [stderr] 851 | | ) [INFO] [stderr] 852 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:132:9 [INFO] [stderr] | [INFO] [stderr] 132 | / match $c { [INFO] [stderr] 133 | | $t => $thn!($o, $v, $($targs)*), [INFO] [stderr] 134 | | _ => $els!($o, $v, $($eargs)*), [INFO] [stderr] 135 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 834 | / mon_named_args!(player_allowed_alignments(version: H3MVersion, playable: bool), [INFO] [stderr] 835 | | mon_ifeq!(playable, true, [INFO] [stderr] 836 | | mon_do_parse!( [INFO] [stderr] 837 | | unknown: mon_sod!(version, mon_value!(false), mon_call!(Put::flag)) >> [INFO] [stderr] ... | [INFO] [stderr] 851 | | ) [INFO] [stderr] 852 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 890 | / mon_named_args!(player(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 891 | | playability: mon_call!(Put::player_playability) >> [INFO] [stderr] 892 | | allowed_alignments: mon_call!(Put::player_allowed_alignments, version, playability.human || playability.computer) >> [INFO] [stderr] 893 | | main_town: mon_option!(mon_call!(Put::main_town, version)) >> [INFO] [stderr] ... | [INFO] [stderr] 908 | | }) [INFO] [stderr] 909 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 890 | / mon_named_args!(player(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 891 | | playability: mon_call!(Put::player_playability) >> [INFO] [stderr] 892 | | allowed_alignments: mon_call!(Put::player_allowed_alignments, version, playability.human || playability.computer) >> [INFO] [stderr] 893 | | main_town: mon_option!(mon_call!(Put::main_town, version)) >> [INFO] [stderr] ... | [INFO] [stderr] 908 | | }) [INFO] [stderr] 909 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 930 | / mon_named!(hero_availability, mon_do_parse!( [INFO] [stderr] 931 | | id: mon_call!(Put::byte) >> [INFO] [stderr] 932 | | face: mon_call!(Put::byte) >> [INFO] [stderr] 933 | | name: mon_call!(Put::string) >> [INFO] [stderr] 934 | | players_mask: mon_call!(Put::byte) >> [INFO] [stderr] 935 | | (H3MHeroAvailability { ref id, ref face, ref name, ref players_mask }) [INFO] [stderr] 936 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 930 | / mon_named!(hero_availability, mon_do_parse!( [INFO] [stderr] 931 | | id: mon_call!(Put::byte) >> [INFO] [stderr] 932 | | face: mon_call!(Put::byte) >> [INFO] [stderr] 933 | | name: mon_call!(Put::string) >> [INFO] [stderr] 934 | | players_mask: mon_call!(Put::byte) >> [INFO] [stderr] 935 | | (H3MHeroAvailability { ref id, ref face, ref name, ref players_mask }) [INFO] [stderr] 936 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:949:54 [INFO] [stderr] | [INFO] [stderr] 949 | mask_ext: ifeq!(version, H3MVersion::RoE, value!(0x0001FFFF), call!(Eat::long)) >> [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0001_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 957 | / mon_named_args!(available_heroes(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 958 | | mask: mon_count_fixed!(u32, Put::long, 4) >> [INFO] [stderr] 959 | | mask_ext: mon_ifeq!(version, H3MVersion::RoE, mon_value!(0x0001FFFF), mon_call!(Put::long)) >> [INFO] [stderr] 960 | | _zeroes: mon_ifeq!(version, H3MVersion::RoE, mon_value!(()), mon_value!((), [0u8; 4], mon_tag!([0u8; 4]))) >> [INFO] [stderr] ... | [INFO] [stderr] 963 | | (H3MAvailableHeroes { ref mask, ref mask_ext, ref settings }) [INFO] [stderr] 964 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 957 | / mon_named_args!(available_heroes(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 958 | | mask: mon_count_fixed!(u32, Put::long, 4) >> [INFO] [stderr] 959 | | mask_ext: mon_ifeq!(version, H3MVersion::RoE, mon_value!(0x0001FFFF), mon_call!(Put::long)) >> [INFO] [stderr] 960 | | _zeroes: mon_ifeq!(version, H3MVersion::RoE, mon_value!(()), mon_value!((), [0u8; 4], mon_tag!([0u8; 4]))) >> [INFO] [stderr] ... | [INFO] [stderr] 963 | | (H3MAvailableHeroes { ref mask, ref mask_ext, ref settings }) [INFO] [stderr] 964 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:959:62 [INFO] [stderr] | [INFO] [stderr] 959 | mask_ext: mon_ifeq!(version, H3MVersion::RoE, mon_value!(0x0001FFFF), mon_call!(Put::long)) >> [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0001_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1022 | / mon_named_args!(hero_equipment(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 1023 | | head: mon_call!(Put::artifact, version) >> [INFO] [stderr] 1024 | | shoulders: mon_call!(Put::artifact, version) >> [INFO] [stderr] 1025 | | neck: mon_call!(Put::artifact, version) >> [INFO] [stderr] ... | [INFO] [stderr] 1049 | | }) [INFO] [stderr] 1050 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1022 | / mon_named_args!(hero_equipment(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 1023 | | head: mon_call!(Put::artifact, version) >> [INFO] [stderr] 1024 | | shoulders: mon_call!(Put::artifact, version) >> [INFO] [stderr] 1025 | | neck: mon_call!(Put::artifact, version) >> [INFO] [stderr] ... | [INFO] [stderr] 1049 | | }) [INFO] [stderr] 1050 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1079 | / mon_named!(hero_customization, mon_do_parse!( [INFO] [stderr] 1080 | | exp: mon_option!(Put::long) >> [INFO] [stderr] 1081 | | skills: mon_option!(mon_length_count!(Put::long, mon_tuple!(Put::skill, Put::skill_level))) >> [INFO] [stderr] 1082 | | equipment: mon_option!(mon_call!(Put::hero_equipment, H3MVersion::SoD)) >> [INFO] [stderr] ... | [INFO] [stderr] 1089 | | }) [INFO] [stderr] 1090 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1079 | / mon_named!(hero_customization, mon_do_parse!( [INFO] [stderr] 1080 | | exp: mon_option!(Put::long) >> [INFO] [stderr] 1081 | | skills: mon_option!(mon_length_count!(Put::long, mon_tuple!(Put::skill, Put::skill_level))) >> [INFO] [stderr] 1082 | | equipment: mon_option!(mon_call!(Put::hero_equipment, H3MVersion::SoD)) >> [INFO] [stderr] ... | [INFO] [stderr] 1089 | | }) [INFO] [stderr] 1090 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1142 | / mon_named!(tile, mon_do_parse!( [INFO] [stderr] 1143 | | terrain: mon_call!(Put::terrain_type) >> [INFO] [stderr] 1144 | | texture: mon_call!(Put::byte) >> [INFO] [stderr] 1145 | | river_type: mon_call!(Put::river_type) >> [INFO] [stderr] ... | [INFO] [stderr] 1155 | | }) [INFO] [stderr] 1156 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1142 | / mon_named!(tile, mon_do_parse!( [INFO] [stderr] 1143 | | terrain: mon_call!(Put::terrain_type) >> [INFO] [stderr] 1144 | | texture: mon_call!(Put::byte) >> [INFO] [stderr] 1145 | | river_type: mon_call!(Put::river_type) >> [INFO] [stderr] ... | [INFO] [stderr] 1155 | | }) [INFO] [stderr] 1156 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1200 | / mon_named!(object_template, mon_do_parse!( [INFO] [stderr] 1201 | | filename: mon_call!(Put::string) >> [INFO] [stderr] 1202 | | shape_mask: mon_count_fixed!(u8, Put::byte, 6) >> [INFO] [stderr] 1203 | | visit_mask: mon_count_fixed!(u8, Put::byte, 6) >> [INFO] [stderr] ... | [INFO] [stderr] 1213 | | }) [INFO] [stderr] 1214 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1200 | / mon_named!(object_template, mon_do_parse!( [INFO] [stderr] 1201 | | filename: mon_call!(Put::string) >> [INFO] [stderr] 1202 | | shape_mask: mon_count_fixed!(u8, Put::byte, 6) >> [INFO] [stderr] 1203 | | visit_mask: mon_count_fixed!(u8, Put::byte, 6) >> [INFO] [stderr] ... | [INFO] [stderr] 1213 | | }) [INFO] [stderr] 1214 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1231 | / mon_named!(buildings, [INFO] [stderr] 1232 | | mon_switch!(Put::flag, [INFO] [stderr] 1233 | | true => mon_map!(mon_count_fixed!(u8, Put::byte, 12), |m| H3MBuildings::Custom(ref m)) | [INFO] [stderr] 1234 | | false => mon_map!(Put::flag, |f| H3MBuildings::Fort(ref f)) [INFO] [stderr] 1235 | | ) [INFO] [stderr] 1236 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:183:9 [INFO] [stderr] | [INFO] [stderr] 183 | / { [INFO] [stderr] 184 | | let tempo = &mut Vec::new(); [INFO] [stderr] 185 | | mon_switch!(__impl $o, $v, tempo, $tag!($($args)*), | $($list)* ) [INFO] [stderr] 186 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1231 | / mon_named!(buildings, [INFO] [stderr] 1232 | | mon_switch!(Put::flag, [INFO] [stderr] 1233 | | true => mon_map!(mon_count_fixed!(u8, Put::byte, 12), |m| H3MBuildings::Custom(ref m)) | [INFO] [stderr] 1234 | | false => mon_map!(Put::flag, |f| H3MBuildings::Fort(ref f)) [INFO] [stderr] 1235 | | ) [INFO] [stderr] 1236 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1256 | / mon_named_args!(town_event(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 1257 | | event: mon_call!(Put::event, version) >> [INFO] [stderr] 1258 | | buildings: mon_count_fixed!(u8, Put::byte, 6) >> [INFO] [stderr] 1259 | | creatures: mon_count_fixed!(u16, Put::short, 7) >> [INFO] [stderr] 1260 | | unknown: mon_call!(Put::long) >> [INFO] [stderr] 1261 | | (H3MTownEvent { ref event, ref buildings, ref creatures, ref unknown }) [INFO] [stderr] 1262 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1256 | / mon_named_args!(town_event(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 1257 | | event: mon_call!(Put::event, version) >> [INFO] [stderr] 1258 | | buildings: mon_count_fixed!(u8, Put::byte, 6) >> [INFO] [stderr] 1259 | | creatures: mon_count_fixed!(u16, Put::short, 7) >> [INFO] [stderr] 1260 | | unknown: mon_call!(Put::long) >> [INFO] [stderr] 1261 | | (H3MTownEvent { ref event, ref buildings, ref creatures, ref unknown }) [INFO] [stderr] 1262 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1309 | / mon_named_args!(msg_guards(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 1310 | | message: mon_call!(Put::string) >> [INFO] [stderr] 1311 | | guards: mon_option!(mon_call!(Put::creatures, version)) >> [INFO] [stderr] 1312 | | _zeroes: mon_tag!([0u8; 4]) >> [INFO] [stderr] 1313 | | (H3MMessageAndGuards { ref message, ref guards }) [INFO] [stderr] 1314 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1309 | / mon_named_args!(msg_guards(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 1310 | | message: mon_call!(Put::string) >> [INFO] [stderr] 1311 | | guards: mon_option!(mon_call!(Put::creatures, version)) >> [INFO] [stderr] 1312 | | _zeroes: mon_tag!([0u8; 4]) >> [INFO] [stderr] 1313 | | (H3MMessageAndGuards { ref message, ref guards }) [INFO] [stderr] 1314 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1324 | / mon_named_args!(creatures(version: H3MVersion), [INFO] [stderr] 1325 | | mon_map!(mon_count_fixed!((H3MCreature, u16), mon_tuple!(mon_call!(Put::creature, version), mon_call!(Put::short)), 7), |cs| H3MCreatures(cs)) [INFO] [stderr] 1326 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:227:9 [INFO] [stderr] | [INFO] [stderr] 227 | / match *$v { [INFO] [stderr] 228 | | $pat => $f!($o, $mi, $($args)* ), [INFO] [stderr] 229 | | _ => false, [INFO] [stderr] 230 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1324 | / mon_named_args!(creatures(version: H3MVersion), [INFO] [stderr] 1325 | | mon_map!(mon_count_fixed!((H3MCreature, u16), mon_tuple!(mon_call!(Put::creature, version), mon_call!(Put::short)), 7), |cs| H3MCreatures(cs)) [INFO] [stderr] 1326 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1360 | / mon_named_args!(reward(version: H3MVersion), [INFO] [stderr] 1361 | | mon_switch!(Put::byte, [INFO] [stderr] 1362 | | 0u8 => mon_value!(H3MReward::Nothing) | [INFO] [stderr] 1363 | | 1u8 => mon_map!(Put::long, |x| H3MReward::Exp(ref x)) | [INFO] [stderr] ... | [INFO] [stderr] 1373 | | ) [INFO] [stderr] 1374 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:183:9 [INFO] [stderr] | [INFO] [stderr] 183 | / { [INFO] [stderr] 184 | | let tempo = &mut Vec::new(); [INFO] [stderr] 185 | | mon_switch!(__impl $o, $v, tempo, $tag!($($args)*), | $($list)* ) [INFO] [stderr] 186 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1360 | / mon_named_args!(reward(version: H3MVersion), [INFO] [stderr] 1361 | | mon_switch!(Put::byte, [INFO] [stderr] 1362 | | 0u8 => mon_value!(H3MReward::Nothing) | [INFO] [stderr] 1363 | | 1u8 => mon_map!(Put::long, |x| H3MReward::Exp(ref x)) | [INFO] [stderr] ... | [INFO] [stderr] 1373 | | ) [INFO] [stderr] 1374 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1407 | / mon_named!(quest_objective, [INFO] [stderr] 1408 | | mon_switch!(Put::byte, [INFO] [stderr] 1409 | | 0u8 => mon_value!(H3MQuestObjective::Nothing) | [INFO] [stderr] 1410 | | 1u8 => mon_map!(Put::long, |x| H3MQuestObjective::Level(ref x)) | [INFO] [stderr] ... | [INFO] [stderr] 1419 | | ) [INFO] [stderr] 1420 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:183:9 [INFO] [stderr] | [INFO] [stderr] 183 | / { [INFO] [stderr] 184 | | let tempo = &mut Vec::new(); [INFO] [stderr] 185 | | mon_switch!(__impl $o, $v, tempo, $tag!($($args)*), | $($list)* ) [INFO] [stderr] 186 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1407 | / mon_named!(quest_objective, [INFO] [stderr] 1408 | | mon_switch!(Put::byte, [INFO] [stderr] 1409 | | 0u8 => mon_value!(H3MQuestObjective::Nothing) | [INFO] [stderr] 1410 | | 1u8 => mon_map!(Put::long, |x| H3MQuestObjective::Level(ref x)) | [INFO] [stderr] ... | [INFO] [stderr] 1419 | | ) [INFO] [stderr] 1420 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:1438:23 [INFO] [stderr] | [INFO] [stderr] 1438 | deadline: 0xFFFFFFFF, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFFFF_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:1449:23 [INFO] [stderr] | [INFO] [stderr] 1449 | deadline: 0xFFFFFFFF, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFFFF_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1473 | / mon_named!(quest2, [INFO] [stderr] 1474 | | mon_do_parse!( [INFO] [stderr] 1475 | | objective: mon_call!(Put::quest_objective) >> [INFO] [stderr] 1476 | | deadline: mon_call!(Put::long) >> [INFO] [stderr] ... | [INFO] [stderr] 1483 | | ) [INFO] [stderr] 1484 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1473 | / mon_named!(quest2, [INFO] [stderr] 1474 | | mon_do_parse!( [INFO] [stderr] 1475 | | objective: mon_call!(Put::quest_objective) >> [INFO] [stderr] 1476 | | deadline: mon_call!(Put::long) >> [INFO] [stderr] ... | [INFO] [stderr] 1483 | | ) [INFO] [stderr] 1484 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1523 | / mon_named_args!(msg_guard_reward(version: H3MVersion), [INFO] [stderr] 1524 | | mon_do_parse!( [INFO] [stderr] 1525 | | guard: mon_option!(mon_call!(Put::msg_guards, version)) >> [INFO] [stderr] 1526 | | exp: mon_call!(Put::long) >> [INFO] [stderr] ... | [INFO] [stderr] 1541 | | ) [INFO] [stderr] 1542 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1523 | / mon_named_args!(msg_guard_reward(version: H3MVersion), [INFO] [stderr] 1524 | | mon_do_parse!( [INFO] [stderr] 1525 | | guard: mon_option!(mon_call!(Put::msg_guards, version)) >> [INFO] [stderr] 1526 | | exp: mon_call!(Put::long) >> [INFO] [stderr] ... | [INFO] [stderr] 1541 | | ) [INFO] [stderr] 1542 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:1608:48 [INFO] [stderr] | [INFO] [stderr] 1608 | id: ifeq!(version, H3MVersion::RoE, value!(0xFFFFFFFF), call!(Eat::long)) >> [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFFFF_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1635 | / mon_named_args!(obj_hero(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 1636 | | id: mon_ifeq!(version, H3MVersion::RoE, mon_value!(0xFFFFFFFF), mon_call!(Put::long)) >> [INFO] [stderr] 1637 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1638 | | hero_type: mon_call!(Put::byte) >> [INFO] [stderr] ... | [INFO] [stderr] 1660 | | }) [INFO] [stderr] 1661 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1635 | / mon_named_args!(obj_hero(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 1636 | | id: mon_ifeq!(version, H3MVersion::RoE, mon_value!(0xFFFFFFFF), mon_call!(Put::long)) >> [INFO] [stderr] 1637 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1638 | | hero_type: mon_call!(Put::byte) >> [INFO] [stderr] ... | [INFO] [stderr] 1660 | | }) [INFO] [stderr] 1661 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:1636:56 [INFO] [stderr] | [INFO] [stderr] 1636 | id: mon_ifeq!(version, H3MVersion::RoE, mon_value!(0xFFFFFFFF), mon_call!(Put::long)) >> [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFFFF_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:1664:48 [INFO] [stderr] | [INFO] [stderr] 1664 | id: ifeq!(version, H3MVersion::RoE, value!(0xFFFFFFFF), call!(Eat::long)) >> [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFFFF_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1679 | / mon_named_args!(obj_monster(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 1680 | | id: mon_ifeq!(version, H3MVersion::RoE, mon_value!(0xFFFFFFFF), mon_call!(Put::long)) >> [INFO] [stderr] 1681 | | quantity: mon_alt!( [INFO] [stderr] 1682 | | mon_tag!([0u8; 2]) => { |_| H3MQuantity::Random } | [INFO] [stderr] ... | [INFO] [stderr] 1692 | | }) [INFO] [stderr] 1693 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1679 | / mon_named_args!(obj_monster(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 1680 | | id: mon_ifeq!(version, H3MVersion::RoE, mon_value!(0xFFFFFFFF), mon_call!(Put::long)) >> [INFO] [stderr] 1681 | | quantity: mon_alt!( [INFO] [stderr] 1682 | | mon_tag!([0u8; 2]) => { |_| H3MQuantity::Random } | [INFO] [stderr] ... | [INFO] [stderr] 1692 | | }) [INFO] [stderr] 1693 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:1680:56 [INFO] [stderr] | [INFO] [stderr] 1680 | id: mon_ifeq!(version, H3MVersion::RoE, mon_value!(0xFFFFFFFF), mon_call!(Put::long)) >> [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFFFF_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:1696:48 [INFO] [stderr] | [INFO] [stderr] 1696 | id: ifeq!(version, H3MVersion::RoE, value!(0xFFFFFFFF), call!(Eat::long)) >> [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFFFF_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1713 | / mon_named_args!(obj_town(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 1714 | | id: mon_ifeq!(version, H3MVersion::RoE, mon_value!(0xFFFFFFFF), mon_call!(Put::long)) >> [INFO] [stderr] 1715 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1716 | | name: mon_option!(Put::string) >> [INFO] [stderr] ... | [INFO] [stderr] 1728 | | }) [INFO] [stderr] 1729 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1713 | / mon_named_args!(obj_town(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 1714 | | id: mon_ifeq!(version, H3MVersion::RoE, mon_value!(0xFFFFFFFF), mon_call!(Put::long)) >> [INFO] [stderr] 1715 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1716 | | name: mon_option!(Put::string) >> [INFO] [stderr] ... | [INFO] [stderr] 1728 | | }) [INFO] [stderr] 1729 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:1714:56 [INFO] [stderr] | [INFO] [stderr] 1714 | id: mon_ifeq!(version, H3MVersion::RoE, mon_value!(0xFFFFFFFF), mon_call!(Put::long)) >> [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xFFFF_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: `v` already exists, having another argument having almost the same name makes code comprehension and documentation more difficult [INFO] [stderr] --> src/main.rs:82:36 [INFO] [stderr] | [INFO] [stderr] 82 | fn $f(o: &mut Vec, v: &$t, $($a: $at),* ) -> bool { [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 1739 | / mon_named_args!(obj_placeholder(_v: H3MVersion), mon_do_parse!( [INFO] [stderr] 1740 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1741 | | id: mon_call!(Put::byte) >> [INFO] [stderr] 1742 | | power_rating: mon_ifeq!(id, &0xFF, mon_map!(Put::byte, |x| Some(ref x)), mon_value!(None)) >> [INFO] [stderr] ... | [INFO] [stderr] 1745 | | }) [INFO] [stderr] 1746 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::duplicate_underscore_argument)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duplicate_underscore_argument [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1739 | / mon_named_args!(obj_placeholder(_v: H3MVersion), mon_do_parse!( [INFO] [stderr] 1740 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1741 | | id: mon_call!(Put::byte) >> [INFO] [stderr] 1742 | | power_rating: mon_ifeq!(id, &0xFF, mon_map!(Put::byte, |x| Some(ref x)), mon_value!(None)) >> [INFO] [stderr] ... | [INFO] [stderr] 1745 | | }) [INFO] [stderr] 1746 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1739 | / mon_named_args!(obj_placeholder(_v: H3MVersion), mon_do_parse!( [INFO] [stderr] 1740 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1741 | | id: mon_call!(Put::byte) >> [INFO] [stderr] 1742 | | power_rating: mon_ifeq!(id, &0xFF, mon_map!(Put::byte, |x| Some(ref x)), mon_value!(None)) >> [INFO] [stderr] ... | [INFO] [stderr] 1745 | | }) [INFO] [stderr] 1746 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: `v` already exists, having another argument having almost the same name makes code comprehension and documentation more difficult [INFO] [stderr] --> src/main.rs:82:36 [INFO] [stderr] | [INFO] [stderr] 82 | fn $f(o: &mut Vec, v: &$t, $($a: $at),* ) -> bool { [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 1753 | / mon_named_args!(obj_owned(_v: H3MVersion), mon_do_parse!( [INFO] [stderr] 1754 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1755 | | _zeroes: mon_tag!([0u8; 3]) >> [INFO] [stderr] 1756 | | (H3MObjectProperties::OwnedObject { ref owner }) [INFO] [stderr] 1757 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duplicate_underscore_argument [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1753 | / mon_named_args!(obj_owned(_v: H3MVersion), mon_do_parse!( [INFO] [stderr] 1754 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1755 | | _zeroes: mon_tag!([0u8; 3]) >> [INFO] [stderr] 1756 | | (H3MObjectProperties::OwnedObject { ref owner }) [INFO] [stderr] 1757 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1753 | / mon_named_args!(obj_owned(_v: H3MVersion), mon_do_parse!( [INFO] [stderr] 1754 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1755 | | _zeroes: mon_tag!([0u8; 3]) >> [INFO] [stderr] 1756 | | (H3MObjectProperties::OwnedObject { ref owner }) [INFO] [stderr] 1757 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: `v` already exists, having another argument having almost the same name makes code comprehension and documentation more difficult [INFO] [stderr] --> src/main.rs:82:36 [INFO] [stderr] | [INFO] [stderr] 82 | fn $f(o: &mut Vec, v: &$t, $($a: $at),* ) -> bool { [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 1766 | / mon_named_args!(obj_dwelling(_v: H3MVersion), mon_do_parse!( [INFO] [stderr] 1767 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1768 | | _zeroes: mon_tag!([0u8; 3]) >> [INFO] [stderr] 1769 | | faction: mon_call!(Put::dwelling_faction) >> [INFO] [stderr] 1770 | | level_range: mon_tuple!(Put::byte, Put::byte) >> [INFO] [stderr] 1771 | | (H3MObjectProperties::RandomDwelling { ref owner, ref faction, ref level_range }) [INFO] [stderr] 1772 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duplicate_underscore_argument [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1766 | / mon_named_args!(obj_dwelling(_v: H3MVersion), mon_do_parse!( [INFO] [stderr] 1767 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1768 | | _zeroes: mon_tag!([0u8; 3]) >> [INFO] [stderr] 1769 | | faction: mon_call!(Put::dwelling_faction) >> [INFO] [stderr] 1770 | | level_range: mon_tuple!(Put::byte, Put::byte) >> [INFO] [stderr] 1771 | | (H3MObjectProperties::RandomDwelling { ref owner, ref faction, ref level_range }) [INFO] [stderr] 1772 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1766 | / mon_named_args!(obj_dwelling(_v: H3MVersion), mon_do_parse!( [INFO] [stderr] 1767 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1768 | | _zeroes: mon_tag!([0u8; 3]) >> [INFO] [stderr] 1769 | | faction: mon_call!(Put::dwelling_faction) >> [INFO] [stderr] 1770 | | level_range: mon_tuple!(Put::byte, Put::byte) >> [INFO] [stderr] 1771 | | (H3MObjectProperties::RandomDwelling { ref owner, ref faction, ref level_range }) [INFO] [stderr] 1772 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: `v` already exists, having another argument having almost the same name makes code comprehension and documentation more difficult [INFO] [stderr] --> src/main.rs:82:36 [INFO] [stderr] | [INFO] [stderr] 82 | fn $f(o: &mut Vec, v: &$t, $($a: $at),* ) -> bool { [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 1780 | / mon_named_args!(obj_dwelling_level(_v: H3MVersion), mon_do_parse!( [INFO] [stderr] 1781 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1782 | | _zeroes: mon_tag!([0u8; 3]) >> [INFO] [stderr] 1783 | | faction: mon_call!(Put::dwelling_faction) >> [INFO] [stderr] 1784 | | (H3MObjectProperties::RandomDwellingLevel { ref owner, ref faction }) [INFO] [stderr] 1785 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duplicate_underscore_argument [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1780 | / mon_named_args!(obj_dwelling_level(_v: H3MVersion), mon_do_parse!( [INFO] [stderr] 1781 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1782 | | _zeroes: mon_tag!([0u8; 3]) >> [INFO] [stderr] 1783 | | faction: mon_call!(Put::dwelling_faction) >> [INFO] [stderr] 1784 | | (H3MObjectProperties::RandomDwellingLevel { ref owner, ref faction }) [INFO] [stderr] 1785 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1780 | / mon_named_args!(obj_dwelling_level(_v: H3MVersion), mon_do_parse!( [INFO] [stderr] 1781 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1782 | | _zeroes: mon_tag!([0u8; 3]) >> [INFO] [stderr] 1783 | | faction: mon_call!(Put::dwelling_faction) >> [INFO] [stderr] 1784 | | (H3MObjectProperties::RandomDwellingLevel { ref owner, ref faction }) [INFO] [stderr] 1785 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: `v` already exists, having another argument having almost the same name makes code comprehension and documentation more difficult [INFO] [stderr] --> src/main.rs:82:36 [INFO] [stderr] | [INFO] [stderr] 82 | fn $f(o: &mut Vec, v: &$t, $($a: $at),* ) -> bool { [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 1793 | / mon_named_args!(obj_dwelling_faction(_v: H3MVersion), mon_do_parse!( [INFO] [stderr] 1794 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1795 | | _zeroes: mon_tag!([0u8; 3]) >> [INFO] [stderr] 1796 | | level_range: mon_tuple!(Put::byte, Put::byte) >> [INFO] [stderr] 1797 | | (H3MObjectProperties::RandomDwellingFaction { ref owner, ref level_range }) [INFO] [stderr] 1798 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duplicate_underscore_argument [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1793 | / mon_named_args!(obj_dwelling_faction(_v: H3MVersion), mon_do_parse!( [INFO] [stderr] 1794 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1795 | | _zeroes: mon_tag!([0u8; 3]) >> [INFO] [stderr] 1796 | | level_range: mon_tuple!(Put::byte, Put::byte) >> [INFO] [stderr] 1797 | | (H3MObjectProperties::RandomDwellingFaction { ref owner, ref level_range }) [INFO] [stderr] 1798 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1793 | / mon_named_args!(obj_dwelling_faction(_v: H3MVersion), mon_do_parse!( [INFO] [stderr] 1794 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1795 | | _zeroes: mon_tag!([0u8; 3]) >> [INFO] [stderr] 1796 | | level_range: mon_tuple!(Put::byte, Put::byte) >> [INFO] [stderr] 1797 | | (H3MObjectProperties::RandomDwellingFaction { ref owner, ref level_range }) [INFO] [stderr] 1798 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1806 | / mon_named_args!(obj_resource(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 1807 | | guard: mon_option!(mon_call!(Put::msg_guards, version)) >> [INFO] [stderr] 1808 | | amount: mon_call!(Put::long) >> [INFO] [stderr] 1809 | | _zeroes: mon_tag!([0u8; 4]) >> [INFO] [stderr] 1810 | | (H3MObjectProperties::Resource { ref guard, ref amount }) [INFO] [stderr] 1811 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1806 | / mon_named_args!(obj_resource(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 1807 | | guard: mon_option!(mon_call!(Put::msg_guards, version)) >> [INFO] [stderr] 1808 | | amount: mon_call!(Put::long) >> [INFO] [stderr] 1809 | | _zeroes: mon_tag!([0u8; 4]) >> [INFO] [stderr] 1810 | | (H3MObjectProperties::Resource { ref guard, ref amount }) [INFO] [stderr] 1811 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1816 | / mon_named_args!(obj_artifact(version: H3MVersion), [INFO] [stderr] 1817 | | mon_map!(mon_option!(mon_call!(Put::msg_guards, version)), |guard| H3MObjectProperties::Artifact { ref guard }) [INFO] [stderr] 1818 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:227:9 [INFO] [stderr] | [INFO] [stderr] 227 | / match *$v { [INFO] [stderr] 228 | | $pat => $f!($o, $mi, $($args)* ), [INFO] [stderr] 229 | | _ => false, [INFO] [stderr] 230 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1816 | / mon_named_args!(obj_artifact(version: H3MVersion), [INFO] [stderr] 1817 | | mon_map!(mon_option!(mon_call!(Put::msg_guards, version)), |guard| H3MObjectProperties::Artifact { ref guard }) [INFO] [stderr] 1818 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1828 | / mon_named_args!(obj_scroll(version: H3MVersion), [INFO] [stderr] 1829 | | mon_do_parse!( [INFO] [stderr] 1830 | | guard: mon_option!(mon_call!(Put::msg_guards, version)) >> [INFO] [stderr] 1831 | | spell: mon_call!(Put::spell) >> [INFO] [stderr] ... | [INFO] [stderr] 1834 | | ) [INFO] [stderr] 1835 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1828 | / mon_named_args!(obj_scroll(version: H3MVersion), [INFO] [stderr] 1829 | | mon_do_parse!( [INFO] [stderr] 1830 | | guard: mon_option!(mon_call!(Put::msg_guards, version)) >> [INFO] [stderr] 1831 | | spell: mon_call!(Put::spell) >> [INFO] [stderr] ... | [INFO] [stderr] 1834 | | ) [INFO] [stderr] 1835 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:1838:44 [INFO] [stderr] | [INFO] [stderr] 1838 | ifeq!(version, H3MVersion::RoE, value!(0x0FFFEFBF), call!(Eat::long)), [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0FFF_EFBF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1841 | / mon_named_args!(obj_witch(version: H3MVersion), mon_map!( [INFO] [stderr] 1842 | | mon_ifeq!(version, H3MVersion::RoE, mon_value!(0x0FFFEFBF), mon_call!(Put::long)), [INFO] [stderr] 1843 | | |skills| H3MObjectProperties::Witch { ref skills } [INFO] [stderr] 1844 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:227:9 [INFO] [stderr] | [INFO] [stderr] 227 | / match *$v { [INFO] [stderr] 228 | | $pat => $f!($o, $mi, $($args)* ), [INFO] [stderr] 229 | | _ => false, [INFO] [stderr] 230 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1841 | / mon_named_args!(obj_witch(version: H3MVersion), mon_map!( [INFO] [stderr] 1842 | | mon_ifeq!(version, H3MVersion::RoE, mon_value!(0x0FFFEFBF), mon_call!(Put::long)), [INFO] [stderr] 1843 | | |skills| H3MObjectProperties::Witch { ref skills } [INFO] [stderr] 1844 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:1842:52 [INFO] [stderr] | [INFO] [stderr] 1842 | mon_ifeq!(version, H3MVersion::RoE, mon_value!(0x0FFFEFBF), mon_call!(Put::long)), [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0FFF_EFBF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: `v` already exists, having another argument having almost the same name makes code comprehension and documentation more difficult [INFO] [stderr] --> src/main.rs:82:36 [INFO] [stderr] | [INFO] [stderr] 82 | fn $f(o: &mut Vec, v: &$t, $($a: $at),* ) -> bool { [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 1849 | / mon_named_args!(obj_shrine(_v: H3MVersion), [INFO] [stderr] 1850 | | mon_do_parse!(spell: mon_call!(Put::byte) >> _zeroes: mon_tag!([0u8; 3]) >> (H3MObjectProperties::Shrine { ref spell })) [INFO] [stderr] 1851 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duplicate_underscore_argument [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1849 | / mon_named_args!(obj_shrine(_v: H3MVersion), [INFO] [stderr] 1850 | | mon_do_parse!(spell: mon_call!(Put::byte) >> _zeroes: mon_tag!([0u8; 3]) >> (H3MObjectProperties::Shrine { ref spell })) [INFO] [stderr] 1851 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1849 | / mon_named_args!(obj_shrine(_v: H3MVersion), [INFO] [stderr] 1850 | | mon_do_parse!(spell: mon_call!(Put::byte) >> _zeroes: mon_tag!([0u8; 3]) >> (H3MObjectProperties::Shrine { ref spell })) [INFO] [stderr] 1851 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: `v` already exists, having another argument having almost the same name makes code comprehension and documentation more difficult [INFO] [stderr] --> src/main.rs:82:36 [INFO] [stderr] | [INFO] [stderr] 82 | fn $f(o: &mut Vec, v: &$t, $($a: $at),* ) -> bool { [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 1856 | / mon_named_args!(obj_grail(_v: H3MVersion), [INFO] [stderr] 1857 | | mon_map!(Put::long, |radius| H3MObjectProperties::Grail { ref radius }) [INFO] [stderr] 1858 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duplicate_underscore_argument [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1856 | / mon_named_args!(obj_grail(_v: H3MVersion), [INFO] [stderr] 1857 | | mon_map!(Put::long, |radius| H3MObjectProperties::Grail { ref radius }) [INFO] [stderr] 1858 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:227:9 [INFO] [stderr] | [INFO] [stderr] 227 | / match *$v { [INFO] [stderr] 228 | | $pat => $f!($o, $mi, $($args)* ), [INFO] [stderr] 229 | | _ => false, [INFO] [stderr] 230 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1856 | / mon_named_args!(obj_grail(_v: H3MVersion), [INFO] [stderr] 1857 | | mon_map!(Put::long, |radius| H3MObjectProperties::Grail { ref radius }) [INFO] [stderr] 1858 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: `v` already exists, having another argument having almost the same name makes code comprehension and documentation more difficult [INFO] [stderr] --> src/main.rs:82:36 [INFO] [stderr] | [INFO] [stderr] 82 | fn $f(o: &mut Vec, v: &$t, $($a: $at),* ) -> bool { [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 1863 | / mon_named_args!(obj_message(_v: H3MVersion), [INFO] [stderr] 1864 | | mon_do_parse!(text: mon_call!(Put::string) >> _zeroes: mon_tag!([0u8; 4]) >> (H3MObjectProperties::Message { ref text })) [INFO] [stderr] 1865 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duplicate_underscore_argument [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1863 | / mon_named_args!(obj_message(_v: H3MVersion), [INFO] [stderr] 1864 | | mon_do_parse!(text: mon_call!(Put::string) >> _zeroes: mon_tag!([0u8; 4]) >> (H3MObjectProperties::Message { ref text })) [INFO] [stderr] 1865 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1863 | / mon_named_args!(obj_message(_v: H3MVersion), [INFO] [stderr] 1864 | | mon_do_parse!(text: mon_call!(Put::string) >> _zeroes: mon_tag!([0u8; 4]) >> (H3MObjectProperties::Message { ref text })) [INFO] [stderr] 1865 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: `v` already exists, having another argument having almost the same name makes code comprehension and documentation more difficult [INFO] [stderr] --> src/main.rs:82:36 [INFO] [stderr] | [INFO] [stderr] 82 | fn $f(o: &mut Vec, v: &$t, $($a: $at),* ) -> bool { [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 1875 | / mon_named_args!(obj_scholar(_v: H3MVersion), [INFO] [stderr] 1876 | | mon_do_parse!( [INFO] [stderr] 1877 | | bonus_type: mon_call!(Put::byte) >> [INFO] [stderr] 1878 | | bonus_id: mon_call!(Put::byte) >> [INFO] [stderr] ... | [INFO] [stderr] 1881 | | ) [INFO] [stderr] 1882 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duplicate_underscore_argument [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1875 | / mon_named_args!(obj_scholar(_v: H3MVersion), [INFO] [stderr] 1876 | | mon_do_parse!( [INFO] [stderr] 1877 | | bonus_type: mon_call!(Put::byte) >> [INFO] [stderr] 1878 | | bonus_id: mon_call!(Put::byte) >> [INFO] [stderr] ... | [INFO] [stderr] 1881 | | ) [INFO] [stderr] 1882 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1875 | / mon_named_args!(obj_scholar(_v: H3MVersion), [INFO] [stderr] 1876 | | mon_do_parse!( [INFO] [stderr] 1877 | | bonus_type: mon_call!(Put::byte) >> [INFO] [stderr] 1878 | | bonus_id: mon_call!(Put::byte) >> [INFO] [stderr] ... | [INFO] [stderr] 1881 | | ) [INFO] [stderr] 1882 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: `v` already exists, having another argument having almost the same name makes code comprehension and documentation more difficult [INFO] [stderr] --> src/main.rs:82:36 [INFO] [stderr] | [INFO] [stderr] 82 | fn $f(o: &mut Vec, v: &$t, $($a: $at),* ) -> bool { [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 1887 | / mon_named_args!(obj_abandoned(_v: H3MVersion), [INFO] [stderr] 1888 | | mon_do_parse!(resources: mon_call!(Put::byte) >> _zeroes: mon_tag!([0u8; 3]) >> (H3MObjectProperties::AbandonedMine { ref resources })) [INFO] [stderr] 1889 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duplicate_underscore_argument [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1887 | / mon_named_args!(obj_abandoned(_v: H3MVersion), [INFO] [stderr] 1888 | | mon_do_parse!(resources: mon_call!(Put::byte) >> _zeroes: mon_tag!([0u8; 3]) >> (H3MObjectProperties::AbandonedMine { ref resources })) [INFO] [stderr] 1889 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1887 | / mon_named_args!(obj_abandoned(_v: H3MVersion), [INFO] [stderr] 1888 | | mon_do_parse!(resources: mon_call!(Put::byte) >> _zeroes: mon_tag!([0u8; 3]) >> (H3MObjectProperties::AbandonedMine { ref resources })) [INFO] [stderr] 1889 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1901 | / mon_named_args!(obj_garrison(version: H3MVersion), [INFO] [stderr] 1902 | | mon_do_parse!( [INFO] [stderr] 1903 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1904 | | _zeroes1: mon_tag!([0u8; 3]) >> [INFO] [stderr] ... | [INFO] [stderr] 1909 | | ) [INFO] [stderr] 1910 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1901 | / mon_named_args!(obj_garrison(version: H3MVersion), [INFO] [stderr] 1902 | | mon_do_parse!( [INFO] [stderr] 1903 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1904 | | _zeroes1: mon_tag!([0u8; 3]) >> [INFO] [stderr] ... | [INFO] [stderr] 1909 | | ) [INFO] [stderr] 1910 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1920 | / mon_named_args!(obj_seer(version: H3MVersion), [INFO] [stderr] 1921 | | mon_do_parse!( [INFO] [stderr] 1922 | | quest: mon_ifeq!(version, H3MVersion::RoE, mon_call!(Put::quest1), mon_call!(Put::quest2)) >> [INFO] [stderr] 1923 | | reward: mon_call!(Put::reward, version) >> [INFO] [stderr] ... | [INFO] [stderr] 1926 | | ) [INFO] [stderr] 1927 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1920 | / mon_named_args!(obj_seer(version: H3MVersion), [INFO] [stderr] 1921 | | mon_do_parse!( [INFO] [stderr] 1922 | | quest: mon_ifeq!(version, H3MVersion::RoE, mon_call!(Put::quest1), mon_call!(Put::quest2)) >> [INFO] [stderr] 1923 | | reward: mon_call!(Put::reward, version) >> [INFO] [stderr] ... | [INFO] [stderr] 1926 | | ) [INFO] [stderr] 1927 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1935 | / mon_named_args!(obj_quest_guard(version: H3MVersion), [INFO] [stderr] 1936 | | mon_do_parse!( [INFO] [stderr] 1937 | | quest: mon_ifeq!(version, H3MVersion::RoE, mon_call!(Put::quest1), mon_call!(Put::quest2)) >> [INFO] [stderr] 1938 | | (H3MObjectProperties::QuestGuard { ref quest }) [INFO] [stderr] 1939 | | ) [INFO] [stderr] 1940 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1935 | / mon_named_args!(obj_quest_guard(version: H3MVersion), [INFO] [stderr] 1936 | | mon_do_parse!( [INFO] [stderr] 1937 | | quest: mon_ifeq!(version, H3MVersion::RoE, mon_call!(Put::quest1), mon_call!(Put::quest2)) >> [INFO] [stderr] 1938 | | (H3MObjectProperties::QuestGuard { ref quest }) [INFO] [stderr] 1939 | | ) [INFO] [stderr] 1940 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1946 | / mon_named_args!(obj_pandora(version: H3MVersion), mon_map!( [INFO] [stderr] 1947 | | mon_call!(Put::msg_guard_reward, version), [INFO] [stderr] 1948 | | |contents| H3MObjectProperties::Pandora { ref contents } [INFO] [stderr] 1949 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:227:9 [INFO] [stderr] | [INFO] [stderr] 227 | / match *$v { [INFO] [stderr] 228 | | $pat => $f!($o, $mi, $($args)* ), [INFO] [stderr] 229 | | _ => false, [INFO] [stderr] 230 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1946 | / mon_named_args!(obj_pandora(version: H3MVersion), mon_map!( [INFO] [stderr] 1947 | | mon_call!(Put::msg_guard_reward, version), [INFO] [stderr] 1948 | | |contents| H3MObjectProperties::Pandora { ref contents } [INFO] [stderr] 1949 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1963 | / mon_named_args!(obj_event(version: H3MVersion), [INFO] [stderr] 1964 | | mon_do_parse!( [INFO] [stderr] 1965 | | contents: mon_call!(Put::msg_guard_reward, version) >> [INFO] [stderr] 1966 | | players_mask: mon_call!(Put::byte) >> [INFO] [stderr] ... | [INFO] [stderr] 1973 | | ) [INFO] [stderr] 1974 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1963 | / mon_named_args!(obj_event(version: H3MVersion), [INFO] [stderr] 1964 | | mon_do_parse!( [INFO] [stderr] 1965 | | contents: mon_call!(Put::msg_guard_reward, version) >> [INFO] [stderr] 1966 | | players_mask: mon_call!(Put::byte) >> [INFO] [stderr] ... | [INFO] [stderr] 1973 | | ) [INFO] [stderr] 1974 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: `v` already exists, having another argument having almost the same name makes code comprehension and documentation more difficult [INFO] [stderr] --> src/main.rs:82:36 [INFO] [stderr] | [INFO] [stderr] 82 | fn $f(o: &mut Vec, v: &$t, $($a: $at),* ) -> bool { [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 1977 | mon_named_args!(obj_noprops(_v: H3MVersion), mon_value!(H3MObjectProperties::NoProperties)); [INFO] [stderr] | ----------------------------------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duplicate_underscore_argument [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1977 | mon_named_args!(obj_noprops(_v: H3MVersion), mon_value!(H3MObjectProperties::NoProperties)); [INFO] [stderr] | ----------------------------------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:380:9 [INFO] [stderr] | [INFO] [stderr] 380 | / match *$v { [INFO] [stderr] 381 | | $val => true, [INFO] [stderr] 382 | | _ => false, [INFO] [stderr] 383 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1977 | mon_named_args!(obj_noprops(_v: H3MVersion), mon_value!(H3MObjectProperties::NoProperties)); [INFO] [stderr] | ----------------------------------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 2067 | / mon_named_args!(object(version: H3MVersion, templates: &[H3MObjectTemplate]), mon_do_parse!( [INFO] [stderr] 2068 | | loc: mon_call!(Put::location) >> [INFO] [stderr] 2069 | | template_idx: mon_call!(Put::long) >> [INFO] [stderr] 2070 | | _zeroes: mon_tag!([0u8; 5]) >> [INFO] [stderr] ... | [INFO] [stderr] 2074 | | }) [INFO] [stderr] 2075 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 2067 | / mon_named_args!(object(version: H3MVersion, templates: &[H3MObjectTemplate]), mon_do_parse!( [INFO] [stderr] 2068 | | loc: mon_call!(Put::location) >> [INFO] [stderr] 2069 | | template_idx: mon_call!(Put::long) >> [INFO] [stderr] 2070 | | _zeroes: mon_tag!([0u8; 5]) >> [INFO] [stderr] ... | [INFO] [stderr] 2074 | | }) [INFO] [stderr] 2075 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 2106 | / mon_named_args!(event(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 2107 | | name: mon_call!(Put::string) >> [INFO] [stderr] 2108 | | text: mon_call!(Put::string) >> [INFO] [stderr] 2109 | | resources: mon_call!(Put::resources) >> [INFO] [stderr] ... | [INFO] [stderr] 2118 | | }) [INFO] [stderr] 2119 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 2106 | / mon_named_args!(event(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 2107 | | name: mon_call!(Put::string) >> [INFO] [stderr] 2108 | | text: mon_call!(Put::string) >> [INFO] [stderr] 2109 | | resources: mon_call!(Put::resources) >> [INFO] [stderr] ... | [INFO] [stderr] 2118 | | }) [INFO] [stderr] 2119 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | ret [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 2184 | / mon_named!(h3m, mon_do_parse!( [INFO] [stderr] 2185 | | header: mon_call!(Put::header) >> [INFO] [stderr] 2186 | | players: mon_count!(mon_call!(Put::player, header.version), 8) >> [INFO] [stderr] 2187 | | victory: mon_call!(Put::special_victory, header.version) >> [INFO] [stderr] ... | [INFO] [stderr] 2220 | | }) [INFO] [stderr] 2221 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | / match *$v { [INFO] [stderr] 271 | | $pat => { [INFO] [stderr] 272 | | let mut stack = Vec::new(); [INFO] [stderr] 273 | | let res = mon_do_parse!(__rev stack, $( $x : $y!( $($z)* ) >> )* ^ ); [INFO] [stderr] ... | [INFO] [stderr] 282 | | _ => false, [INFO] [stderr] 283 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 2184 | / mon_named!(h3m, mon_do_parse!( [INFO] [stderr] 2185 | | header: mon_call!(Put::header) >> [INFO] [stderr] 2186 | | players: mon_count!(mon_call!(Put::player, header.version), 8) >> [INFO] [stderr] 2187 | | victory: mon_call!(Put::special_victory, header.version) >> [INFO] [stderr] ... | [INFO] [stderr] 2220 | | }) [INFO] [stderr] 2221 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 500 | / mon_named!(header, mon_do_parse!( [INFO] [stderr] 501 | | version: mon_call!(Put::version) >> [INFO] [stderr] 502 | | has_players: mon_call!(Put::flag) >> [INFO] [stderr] 503 | | size: mon_call!(Put::size) >> [INFO] [stderr] ... | [INFO] [stderr] 518 | | }) [INFO] [stderr] 519 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unreachable_patterns)] on by default [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 531 | / mon_named!(location, mon_do_parse!( [INFO] [stderr] 532 | | x: mon_call!(Put::byte) >> y: mon_call!(Put::byte) >> u: mon_call!(Put::flag) >> [INFO] [stderr] 533 | | (H3MLocation(ref x, ref y, ref u)) [INFO] [stderr] 534 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ unreachable pattern [INFO] [stderr] ... [INFO] [stderr] 396 | mon_do_parse!($o, $v, $($f: $p!( $($args)* ) >>)* (($(ref $f),*)) ) [INFO] [stderr] | ------------- matches any value [INFO] [stderr] ... [INFO] [stderr] 550 | / mon_named!(spells_mask, [INFO] [stderr] 551 | | mon_map!(mon_tuple!(Put::long, Put::long, Put::byte), |t| H3MSpellsMask(ref t)) [INFO] [stderr] 552 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:229:13 [INFO] [stderr] | [INFO] [stderr] 229 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 550 | / mon_named!(spells_mask, [INFO] [stderr] 551 | | mon_map!(mon_tuple!(Put::long, Put::long, Put::byte), |t| H3MSpellsMask(ref t)) [INFO] [stderr] 552 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 583 | / mon_named_args!(main_town(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 584 | | generate_hero: mon_ifeq!(version, H3MVersion::RoE, mon_value!(true), mon_call!(Put::flag)) >> [INFO] [stderr] 585 | | kind: mon_ifeq!(version, H3MVersion::RoE, mon_value!(H3MTownKind::Random), mon_call!(Put::town_kind)) >> [INFO] [stderr] 586 | | location: mon_call!(Put::location) >> [INFO] [stderr] 587 | | (H3MMainTown { ref generate_hero, ref kind, ref location }) [INFO] [stderr] 588 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:229:13 [INFO] [stderr] | [INFO] [stderr] 229 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 596 | mon_named!(resources, mon_map!(mon_count_fixed!(u32, Put::long, 7), |xs| H3MResources(xs))); [INFO] [stderr] | ---------------------------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 619 | mon_named!(artifact2, mon_do_parse!(i: mon_call!(Put::byte) >> j: mon_call!(Put::byte) >> (H3MArtifact(ref i, ref j)))); [INFO] [stderr] | ------------------------------------------------------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 638 | mon_named!(creature2, mon_do_parse!(i: mon_call!(Put::byte) >> j: mon_call!(Put::byte) >> (H3MCreature(ref i, ref j)))); [INFO] [stderr] | ------------------------------------------------------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 702 | / mon_named_args!(special_victory(version: H3MVersion)>, [INFO] [stderr] 703 | | mon_alt!( [INFO] [stderr] 704 | | mon_tag!([0xFF]) => { |_| None } | [INFO] [stderr] 705 | | mon_do_parse!( [INFO] [stderr] ... | [INFO] [stderr] 732 | | ) [INFO] [stderr] 733 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 774 | / mon_named!(hero, mon_do_parse!( [INFO] [stderr] 775 | | face: mon_call!(Put::byte) >> [INFO] [stderr] 776 | | name: mon_call!(Put::string) >> [INFO] [stderr] 777 | | (H3MHero { ref face, ref name }) [INFO] [stderr] 778 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 797 | / mon_named!(player_playability, mon_do_parse!( [INFO] [stderr] 798 | | human: mon_call!(Put::flag) >> [INFO] [stderr] 799 | | computer: mon_call!(Put::flag) >> [INFO] [stderr] 800 | | behavior: mon_call!(Put::player_behavior) >> [INFO] [stderr] 801 | | (H3MPlayerPlayability { ref human, ref computer, ref behavior }) [INFO] [stderr] 802 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 834 | / mon_named_args!(player_allowed_alignments(version: H3MVersion, playable: bool), [INFO] [stderr] 835 | | mon_ifeq!(playable, true, [INFO] [stderr] 836 | | mon_do_parse!( [INFO] [stderr] 837 | | unknown: mon_sod!(version, mon_value!(false), mon_call!(Put::flag)) >> [INFO] [stderr] ... | [INFO] [stderr] 851 | | ) [INFO] [stderr] 852 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 890 | / mon_named_args!(player(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 891 | | playability: mon_call!(Put::player_playability) >> [INFO] [stderr] 892 | | allowed_alignments: mon_call!(Put::player_allowed_alignments, version, playability.human || playability.computer) >> [INFO] [stderr] 893 | | main_town: mon_option!(mon_call!(Put::main_town, version)) >> [INFO] [stderr] ... | [INFO] [stderr] 908 | | }) [INFO] [stderr] 909 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 930 | / mon_named!(hero_availability, mon_do_parse!( [INFO] [stderr] 931 | | id: mon_call!(Put::byte) >> [INFO] [stderr] 932 | | face: mon_call!(Put::byte) >> [INFO] [stderr] 933 | | name: mon_call!(Put::string) >> [INFO] [stderr] 934 | | players_mask: mon_call!(Put::byte) >> [INFO] [stderr] 935 | | (H3MHeroAvailability { ref id, ref face, ref name, ref players_mask }) [INFO] [stderr] 936 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:382:16 [INFO] [stderr] | [INFO] [stderr] 382 | _ => false, [INFO] [stderr] | ^ unreachable pattern [INFO] [stderr] ... [INFO] [stderr] 957 | / mon_named_args!(available_heroes(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 958 | | mask: mon_count_fixed!(u32, Put::long, 4) >> [INFO] [stderr] 959 | | mask_ext: mon_ifeq!(version, H3MVersion::RoE, mon_value!(0x0001FFFF), mon_call!(Put::long)) >> [INFO] [stderr] 960 | | _zeroes: mon_ifeq!(version, H3MVersion::RoE, mon_value!(()), mon_value!((), [0u8; 4], mon_tag!([0u8; 4]))) >> [INFO] [stderr] | | -- matches any value [INFO] [stderr] ... | [INFO] [stderr] 963 | | (H3MAvailableHeroes { ref mask, ref mask_ext, ref settings }) [INFO] [stderr] 964 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:388:16 [INFO] [stderr] | [INFO] [stderr] 388 | _ => false, [INFO] [stderr] | ^ unreachable pattern [INFO] [stderr] ... [INFO] [stderr] 957 | / mon_named_args!(available_heroes(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 958 | | mask: mon_count_fixed!(u32, Put::long, 4) >> [INFO] [stderr] 959 | | mask_ext: mon_ifeq!(version, H3MVersion::RoE, mon_value!(0x0001FFFF), mon_call!(Put::long)) >> [INFO] [stderr] 960 | | _zeroes: mon_ifeq!(version, H3MVersion::RoE, mon_value!(()), mon_value!((), [0u8; 4], mon_tag!([0u8; 4]))) >> [INFO] [stderr] | | -- matches any value [INFO] [stderr] ... | [INFO] [stderr] 963 | | (H3MAvailableHeroes { ref mask, ref mask_ext, ref settings }) [INFO] [stderr] 964 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 957 | / mon_named_args!(available_heroes(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 958 | | mask: mon_count_fixed!(u32, Put::long, 4) >> [INFO] [stderr] 959 | | mask_ext: mon_ifeq!(version, H3MVersion::RoE, mon_value!(0x0001FFFF), mon_call!(Put::long)) >> [INFO] [stderr] 960 | | _zeroes: mon_ifeq!(version, H3MVersion::RoE, mon_value!(()), mon_value!((), [0u8; 4], mon_tag!([0u8; 4]))) >> [INFO] [stderr] ... | [INFO] [stderr] 963 | | (H3MAvailableHeroes { ref mask, ref mask_ext, ref settings }) [INFO] [stderr] 964 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 1022 | / mon_named_args!(hero_equipment(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 1023 | | head: mon_call!(Put::artifact, version) >> [INFO] [stderr] 1024 | | shoulders: mon_call!(Put::artifact, version) >> [INFO] [stderr] 1025 | | neck: mon_call!(Put::artifact, version) >> [INFO] [stderr] ... | [INFO] [stderr] 1049 | | }) [INFO] [stderr] 1050 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ unreachable pattern [INFO] [stderr] ... [INFO] [stderr] 396 | mon_do_parse!($o, $v, $($f: $p!( $($args)* ) >>)* (($(ref $f),*)) ) [INFO] [stderr] | ------------- matches any value [INFO] [stderr] ... [INFO] [stderr] 1079 | / mon_named!(hero_customization, mon_do_parse!( [INFO] [stderr] 1080 | | exp: mon_option!(Put::long) >> [INFO] [stderr] 1081 | | skills: mon_option!(mon_length_count!(Put::long, mon_tuple!(Put::skill, Put::skill_level))) >> [INFO] [stderr] 1082 | | equipment: mon_option!(mon_call!(Put::hero_equipment, H3MVersion::SoD)) >> [INFO] [stderr] ... | [INFO] [stderr] 1089 | | }) [INFO] [stderr] 1090 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ unreachable pattern [INFO] [stderr] ... [INFO] [stderr] 396 | mon_do_parse!($o, $v, $($f: $p!( $($args)* ) >>)* (($(ref $f),*)) ) [INFO] [stderr] | ------------- matches any value [INFO] [stderr] ... [INFO] [stderr] 1079 | / mon_named!(hero_customization, mon_do_parse!( [INFO] [stderr] 1080 | | exp: mon_option!(Put::long) >> [INFO] [stderr] 1081 | | skills: mon_option!(mon_length_count!(Put::long, mon_tuple!(Put::skill, Put::skill_level))) >> [INFO] [stderr] 1082 | | equipment: mon_option!(mon_call!(Put::hero_equipment, H3MVersion::SoD)) >> [INFO] [stderr] ... | [INFO] [stderr] 1089 | | }) [INFO] [stderr] 1090 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 1079 | / mon_named!(hero_customization, mon_do_parse!( [INFO] [stderr] 1080 | | exp: mon_option!(Put::long) >> [INFO] [stderr] 1081 | | skills: mon_option!(mon_length_count!(Put::long, mon_tuple!(Put::skill, Put::skill_level))) >> [INFO] [stderr] 1082 | | equipment: mon_option!(mon_call!(Put::hero_equipment, H3MVersion::SoD)) >> [INFO] [stderr] ... | [INFO] [stderr] 1089 | | }) [INFO] [stderr] 1090 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 1142 | / mon_named!(tile, mon_do_parse!( [INFO] [stderr] 1143 | | terrain: mon_call!(Put::terrain_type) >> [INFO] [stderr] 1144 | | texture: mon_call!(Put::byte) >> [INFO] [stderr] 1145 | | river_type: mon_call!(Put::river_type) >> [INFO] [stderr] ... | [INFO] [stderr] 1155 | | }) [INFO] [stderr] 1156 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 1200 | / mon_named!(object_template, mon_do_parse!( [INFO] [stderr] 1201 | | filename: mon_call!(Put::string) >> [INFO] [stderr] 1202 | | shape_mask: mon_count_fixed!(u8, Put::byte, 6) >> [INFO] [stderr] 1203 | | visit_mask: mon_count_fixed!(u8, Put::byte, 6) >> [INFO] [stderr] ... | [INFO] [stderr] 1213 | | }) [INFO] [stderr] 1214 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 1256 | / mon_named_args!(town_event(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 1257 | | event: mon_call!(Put::event, version) >> [INFO] [stderr] 1258 | | buildings: mon_count_fixed!(u8, Put::byte, 6) >> [INFO] [stderr] 1259 | | creatures: mon_count_fixed!(u16, Put::short, 7) >> [INFO] [stderr] 1260 | | unknown: mon_call!(Put::long) >> [INFO] [stderr] 1261 | | (H3MTownEvent { ref event, ref buildings, ref creatures, ref unknown }) [INFO] [stderr] 1262 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 1309 | / mon_named_args!(msg_guards(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 1310 | | message: mon_call!(Put::string) >> [INFO] [stderr] 1311 | | guards: mon_option!(mon_call!(Put::creatures, version)) >> [INFO] [stderr] 1312 | | _zeroes: mon_tag!([0u8; 4]) >> [INFO] [stderr] 1313 | | (H3MMessageAndGuards { ref message, ref guards }) [INFO] [stderr] 1314 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ unreachable pattern [INFO] [stderr] ... [INFO] [stderr] 396 | mon_do_parse!($o, $v, $($f: $p!( $($args)* ) >>)* (($(ref $f),*)) ) [INFO] [stderr] | ------------- matches any value [INFO] [stderr] ... [INFO] [stderr] 1324 | / mon_named_args!(creatures(version: H3MVersion), [INFO] [stderr] 1325 | | mon_map!(mon_count_fixed!((H3MCreature, u16), mon_tuple!(mon_call!(Put::creature, version), mon_call!(Put::short)), 7), |cs| H3MCreatures(cs)) [INFO] [stderr] 1326 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:229:13 [INFO] [stderr] | [INFO] [stderr] 229 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 1324 | / mon_named_args!(creatures(version: H3MVersion), [INFO] [stderr] 1325 | | mon_map!(mon_count_fixed!((H3MCreature, u16), mon_tuple!(mon_call!(Put::creature, version), mon_call!(Put::short)), 7), |cs| H3MCreatures(cs)) [INFO] [stderr] 1326 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ unreachable pattern [INFO] [stderr] ... [INFO] [stderr] 396 | mon_do_parse!($o, $v, $($f: $p!( $($args)* ) >>)* (($(ref $f),*)) ) [INFO] [stderr] | ------------- matches any value [INFO] [stderr] ... [INFO] [stderr] 1407 | / mon_named!(quest_objective, [INFO] [stderr] 1408 | | mon_switch!(Put::byte, [INFO] [stderr] 1409 | | 0u8 => mon_value!(H3MQuestObjective::Nothing) | [INFO] [stderr] 1410 | | 1u8 => mon_map!(Put::long, |x| H3MQuestObjective::Level(ref x)) | [INFO] [stderr] ... | [INFO] [stderr] 1419 | | ) [INFO] [stderr] 1420 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ unreachable pattern [INFO] [stderr] ... [INFO] [stderr] 396 | mon_do_parse!($o, $v, $($f: $p!( $($args)* ) >>)* (($(ref $f),*)) ) [INFO] [stderr] | ------------- matches any value [INFO] [stderr] ... [INFO] [stderr] 1407 | / mon_named!(quest_objective, [INFO] [stderr] 1408 | | mon_switch!(Put::byte, [INFO] [stderr] 1409 | | 0u8 => mon_value!(H3MQuestObjective::Nothing) | [INFO] [stderr] 1410 | | 1u8 => mon_map!(Put::long, |x| H3MQuestObjective::Level(ref x)) | [INFO] [stderr] ... | [INFO] [stderr] 1419 | | ) [INFO] [stderr] 1420 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 1473 | / mon_named!(quest2, [INFO] [stderr] 1474 | | mon_do_parse!( [INFO] [stderr] 1475 | | objective: mon_call!(Put::quest_objective) >> [INFO] [stderr] 1476 | | deadline: mon_call!(Put::long) >> [INFO] [stderr] ... | [INFO] [stderr] 1483 | | ) [INFO] [stderr] 1484 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ unreachable pattern [INFO] [stderr] ... [INFO] [stderr] 396 | mon_do_parse!($o, $v, $($f: $p!( $($args)* ) >>)* (($(ref $f),*)) ) [INFO] [stderr] | ------------- matches any value [INFO] [stderr] ... [INFO] [stderr] 1523 | / mon_named_args!(msg_guard_reward(version: H3MVersion), [INFO] [stderr] 1524 | | mon_do_parse!( [INFO] [stderr] 1525 | | guard: mon_option!(mon_call!(Put::msg_guards, version)) >> [INFO] [stderr] 1526 | | exp: mon_call!(Put::long) >> [INFO] [stderr] ... | [INFO] [stderr] 1541 | | ) [INFO] [stderr] 1542 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ unreachable pattern [INFO] [stderr] ... [INFO] [stderr] 396 | mon_do_parse!($o, $v, $($f: $p!( $($args)* ) >>)* (($(ref $f),*)) ) [INFO] [stderr] | ------------- matches any value [INFO] [stderr] ... [INFO] [stderr] 1523 | / mon_named_args!(msg_guard_reward(version: H3MVersion), [INFO] [stderr] 1524 | | mon_do_parse!( [INFO] [stderr] 1525 | | guard: mon_option!(mon_call!(Put::msg_guards, version)) >> [INFO] [stderr] 1526 | | exp: mon_call!(Put::long) >> [INFO] [stderr] ... | [INFO] [stderr] 1541 | | ) [INFO] [stderr] 1542 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ unreachable pattern [INFO] [stderr] ... [INFO] [stderr] 396 | mon_do_parse!($o, $v, $($f: $p!( $($args)* ) >>)* (($(ref $f),*)) ) [INFO] [stderr] | ------------- matches any value [INFO] [stderr] ... [INFO] [stderr] 1523 | / mon_named_args!(msg_guard_reward(version: H3MVersion), [INFO] [stderr] 1524 | | mon_do_parse!( [INFO] [stderr] 1525 | | guard: mon_option!(mon_call!(Put::msg_guards, version)) >> [INFO] [stderr] 1526 | | exp: mon_call!(Put::long) >> [INFO] [stderr] ... | [INFO] [stderr] 1541 | | ) [INFO] [stderr] 1542 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 1523 | / mon_named_args!(msg_guard_reward(version: H3MVersion), [INFO] [stderr] 1524 | | mon_do_parse!( [INFO] [stderr] 1525 | | guard: mon_option!(mon_call!(Put::msg_guards, version)) >> [INFO] [stderr] 1526 | | exp: mon_call!(Put::long) >> [INFO] [stderr] ... | [INFO] [stderr] 1541 | | ) [INFO] [stderr] 1542 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ unreachable pattern [INFO] [stderr] ... [INFO] [stderr] 396 | mon_do_parse!($o, $v, $($f: $p!( $($args)* ) >>)* (($(ref $f),*)) ) [INFO] [stderr] | ------------- matches any value [INFO] [stderr] ... [INFO] [stderr] 1635 | / mon_named_args!(obj_hero(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 1636 | | id: mon_ifeq!(version, H3MVersion::RoE, mon_value!(0xFFFFFFFF), mon_call!(Put::long)) >> [INFO] [stderr] 1637 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1638 | | hero_type: mon_call!(Put::byte) >> [INFO] [stderr] ... | [INFO] [stderr] 1660 | | }) [INFO] [stderr] 1661 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ unreachable pattern [INFO] [stderr] ... [INFO] [stderr] 396 | mon_do_parse!($o, $v, $($f: $p!( $($args)* ) >>)* (($(ref $f),*)) ) [INFO] [stderr] | ------------- matches any value [INFO] [stderr] ... [INFO] [stderr] 1635 | / mon_named_args!(obj_hero(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 1636 | | id: mon_ifeq!(version, H3MVersion::RoE, mon_value!(0xFFFFFFFF), mon_call!(Put::long)) >> [INFO] [stderr] 1637 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1638 | | hero_type: mon_call!(Put::byte) >> [INFO] [stderr] ... | [INFO] [stderr] 1660 | | }) [INFO] [stderr] 1661 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ unreachable pattern [INFO] [stderr] ... [INFO] [stderr] 396 | mon_do_parse!($o, $v, $($f: $p!( $($args)* ) >>)* (($(ref $f),*)) ) [INFO] [stderr] | ------------- matches any value [INFO] [stderr] ... [INFO] [stderr] 1679 | / mon_named_args!(obj_monster(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 1680 | | id: mon_ifeq!(version, H3MVersion::RoE, mon_value!(0xFFFFFFFF), mon_call!(Put::long)) >> [INFO] [stderr] 1681 | | quantity: mon_alt!( [INFO] [stderr] 1682 | | mon_tag!([0u8; 2]) => { |_| H3MQuantity::Random } | [INFO] [stderr] ... | [INFO] [stderr] 1692 | | }) [INFO] [stderr] 1693 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ unreachable pattern [INFO] [stderr] ... [INFO] [stderr] 396 | mon_do_parse!($o, $v, $($f: $p!( $($args)* ) >>)* (($(ref $f),*)) ) [INFO] [stderr] | ------------- matches any value [INFO] [stderr] ... [INFO] [stderr] 1766 | / mon_named_args!(obj_dwelling(_v: H3MVersion), mon_do_parse!( [INFO] [stderr] 1767 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1768 | | _zeroes: mon_tag!([0u8; 3]) >> [INFO] [stderr] 1769 | | faction: mon_call!(Put::dwelling_faction) >> [INFO] [stderr] 1770 | | level_range: mon_tuple!(Put::byte, Put::byte) >> [INFO] [stderr] 1771 | | (H3MObjectProperties::RandomDwelling { ref owner, ref faction, ref level_range }) [INFO] [stderr] 1772 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ unreachable pattern [INFO] [stderr] ... [INFO] [stderr] 396 | mon_do_parse!($o, $v, $($f: $p!( $($args)* ) >>)* (($(ref $f),*)) ) [INFO] [stderr] | ------------- matches any value [INFO] [stderr] ... [INFO] [stderr] 1793 | / mon_named_args!(obj_dwelling_faction(_v: H3MVersion), mon_do_parse!( [INFO] [stderr] 1794 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1795 | | _zeroes: mon_tag!([0u8; 3]) >> [INFO] [stderr] 1796 | | level_range: mon_tuple!(Put::byte, Put::byte) >> [INFO] [stderr] 1797 | | (H3MObjectProperties::RandomDwellingFaction { ref owner, ref level_range }) [INFO] [stderr] 1798 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 2067 | / mon_named_args!(object(version: H3MVersion, templates: &[H3MObjectTemplate]), mon_do_parse!( [INFO] [stderr] 2068 | | loc: mon_call!(Put::location) >> [INFO] [stderr] 2069 | | template_idx: mon_call!(Put::long) >> [INFO] [stderr] 2070 | | _zeroes: mon_tag!([0u8; 5]) >> [INFO] [stderr] ... | [INFO] [stderr] 2074 | | }) [INFO] [stderr] 2075 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 2106 | / mon_named_args!(event(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 2107 | | name: mon_call!(Put::string) >> [INFO] [stderr] 2108 | | text: mon_call!(Put::string) >> [INFO] [stderr] 2109 | | resources: mon_call!(Put::resources) >> [INFO] [stderr] ... | [INFO] [stderr] 2118 | | }) [INFO] [stderr] 2119 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:388:16 [INFO] [stderr] | [INFO] [stderr] 388 | _ => false, [INFO] [stderr] | ^ unreachable pattern [INFO] [stderr] ... [INFO] [stderr] 2184 | / mon_named!(h3m, mon_do_parse!( [INFO] [stderr] 2185 | | header: mon_call!(Put::header) >> [INFO] [stderr] 2186 | | players: mon_count!(mon_call!(Put::player, header.version), 8) >> [INFO] [stderr] 2187 | | victory: mon_call!(Put::special_victory, header.version) >> [INFO] [stderr] ... | [INFO] [stderr] 2213 | | _trailing_zeroes: mon_value!((), [0u8; 124], mon_count!(mon_tag!([0u8]), 124)) >> [INFO] [stderr] | | -- matches any value [INFO] [stderr] ... | [INFO] [stderr] 2220 | | }) [INFO] [stderr] 2221 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ unreachable pattern [INFO] [stderr] ... [INFO] [stderr] 396 | mon_do_parse!($o, $v, $($f: $p!( $($args)* ) >>)* (($(ref $f),*)) ) [INFO] [stderr] | ------------- matches any value [INFO] [stderr] ... [INFO] [stderr] 2184 | / mon_named!(h3m, mon_do_parse!( [INFO] [stderr] 2185 | | header: mon_call!(Put::header) >> [INFO] [stderr] 2186 | | players: mon_count!(mon_call!(Put::player, header.version), 8) >> [INFO] [stderr] 2187 | | victory: mon_call!(Put::special_victory, header.version) >> [INFO] [stderr] ... | [INFO] [stderr] 2220 | | }) [INFO] [stderr] 2221 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ unreachable pattern [INFO] [stderr] ... [INFO] [stderr] 2184 | / mon_named!(h3m, mon_do_parse!( [INFO] [stderr] 2185 | | header: mon_call!(Put::header) >> [INFO] [stderr] 2186 | | players: mon_count!(mon_call!(Put::player, header.version), 8) >> [INFO] [stderr] 2187 | | victory: mon_call!(Put::special_victory, header.version) >> [INFO] [stderr] ... | [INFO] [stderr] 2194 | | ((ref nteams, ref ids)) [INFO] [stderr] | | --------------------- matches any value [INFO] [stderr] ... | [INFO] [stderr] 2220 | | }) [INFO] [stderr] 2221 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 2184 | / mon_named!(h3m, mon_do_parse!( [INFO] [stderr] 2185 | | header: mon_call!(Put::header) >> [INFO] [stderr] 2186 | | players: mon_count!(mon_call!(Put::player, header.version), 8) >> [INFO] [stderr] 2187 | | victory: mon_call!(Put::special_victory, header.version) >> [INFO] [stderr] ... | [INFO] [stderr] 2220 | | }) [INFO] [stderr] 2221 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 500 | / mon_named!(header, mon_do_parse!( [INFO] [stderr] 501 | | version: mon_call!(Put::version) >> [INFO] [stderr] 502 | | has_players: mon_call!(Put::flag) >> [INFO] [stderr] 503 | | size: mon_call!(Put::size) >> [INFO] [stderr] ... | [INFO] [stderr] 518 | | }) [INFO] [stderr] 519 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unreachable_patterns)] on by default [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 531 | / mon_named!(location, mon_do_parse!( [INFO] [stderr] 532 | | x: mon_call!(Put::byte) >> y: mon_call!(Put::byte) >> u: mon_call!(Put::flag) >> [INFO] [stderr] 533 | | (H3MLocation(ref x, ref y, ref u)) [INFO] [stderr] 534 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ unreachable pattern [INFO] [stderr] ... [INFO] [stderr] 396 | mon_do_parse!($o, $v, $($f: $p!( $($args)* ) >>)* (($(ref $f),*)) ) [INFO] [stderr] | ------------- matches any value [INFO] [stderr] ... [INFO] [stderr] 550 | / mon_named!(spells_mask, [INFO] [stderr] 551 | | mon_map!(mon_tuple!(Put::long, Put::long, Put::byte), |t| H3MSpellsMask(ref t)) [INFO] [stderr] 552 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:229:13 [INFO] [stderr] | [INFO] [stderr] 229 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 550 | / mon_named!(spells_mask, [INFO] [stderr] 551 | | mon_map!(mon_tuple!(Put::long, Put::long, Put::byte), |t| H3MSpellsMask(ref t)) [INFO] [stderr] 552 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 583 | / mon_named_args!(main_town(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 584 | | generate_hero: mon_ifeq!(version, H3MVersion::RoE, mon_value!(true), mon_call!(Put::flag)) >> [INFO] [stderr] 585 | | kind: mon_ifeq!(version, H3MVersion::RoE, mon_value!(H3MTownKind::Random), mon_call!(Put::town_kind)) >> [INFO] [stderr] 586 | | location: mon_call!(Put::location) >> [INFO] [stderr] 587 | | (H3MMainTown { ref generate_hero, ref kind, ref location }) [INFO] [stderr] 588 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:229:13 [INFO] [stderr] | [INFO] [stderr] 229 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 596 | mon_named!(resources, mon_map!(mon_count_fixed!(u32, Put::long, 7), |xs| H3MResources(xs))); [INFO] [stderr] | ---------------------------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 619 | mon_named!(artifact2, mon_do_parse!(i: mon_call!(Put::byte) >> j: mon_call!(Put::byte) >> (H3MArtifact(ref i, ref j)))); [INFO] [stderr] | ------------------------------------------------------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 638 | mon_named!(creature2, mon_do_parse!(i: mon_call!(Put::byte) >> j: mon_call!(Put::byte) >> (H3MCreature(ref i, ref j)))); [INFO] [stderr] | ------------------------------------------------------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 702 | / mon_named_args!(special_victory(version: H3MVersion)>, [INFO] [stderr] 703 | | mon_alt!( [INFO] [stderr] 704 | | mon_tag!([0xFF]) => { |_| None } | [INFO] [stderr] 705 | | mon_do_parse!( [INFO] [stderr] ... | [INFO] [stderr] 732 | | ) [INFO] [stderr] 733 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 774 | / mon_named!(hero, mon_do_parse!( [INFO] [stderr] 775 | | face: mon_call!(Put::byte) >> [INFO] [stderr] 776 | | name: mon_call!(Put::string) >> [INFO] [stderr] 777 | | (H3MHero { ref face, ref name }) [INFO] [stderr] 778 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 797 | / mon_named!(player_playability, mon_do_parse!( [INFO] [stderr] 798 | | human: mon_call!(Put::flag) >> [INFO] [stderr] 799 | | computer: mon_call!(Put::flag) >> [INFO] [stderr] 800 | | behavior: mon_call!(Put::player_behavior) >> [INFO] [stderr] 801 | | (H3MPlayerPlayability { ref human, ref computer, ref behavior }) [INFO] [stderr] 802 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 834 | / mon_named_args!(player_allowed_alignments(version: H3MVersion, playable: bool), [INFO] [stderr] 835 | | mon_ifeq!(playable, true, [INFO] [stderr] 836 | | mon_do_parse!( [INFO] [stderr] 837 | | unknown: mon_sod!(version, mon_value!(false), mon_call!(Put::flag)) >> [INFO] [stderr] ... | [INFO] [stderr] 851 | | ) [INFO] [stderr] 852 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 890 | / mon_named_args!(player(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 891 | | playability: mon_call!(Put::player_playability) >> [INFO] [stderr] 892 | | allowed_alignments: mon_call!(Put::player_allowed_alignments, version, playability.human || playability.computer) >> [INFO] [stderr] 893 | | main_town: mon_option!(mon_call!(Put::main_town, version)) >> [INFO] [stderr] ... | [INFO] [stderr] 908 | | }) [INFO] [stderr] 909 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 930 | / mon_named!(hero_availability, mon_do_parse!( [INFO] [stderr] 931 | | id: mon_call!(Put::byte) >> [INFO] [stderr] 932 | | face: mon_call!(Put::byte) >> [INFO] [stderr] 933 | | name: mon_call!(Put::string) >> [INFO] [stderr] 934 | | players_mask: mon_call!(Put::byte) >> [INFO] [stderr] 935 | | (H3MHeroAvailability { ref id, ref face, ref name, ref players_mask }) [INFO] [stderr] 936 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:382:16 [INFO] [stderr] | [INFO] [stderr] 382 | _ => false, [INFO] [stderr] | ^ unreachable pattern [INFO] [stderr] ... [INFO] [stderr] 957 | / mon_named_args!(available_heroes(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 958 | | mask: mon_count_fixed!(u32, Put::long, 4) >> [INFO] [stderr] 959 | | mask_ext: mon_ifeq!(version, H3MVersion::RoE, mon_value!(0x0001FFFF), mon_call!(Put::long)) >> [INFO] [stderr] 960 | | _zeroes: mon_ifeq!(version, H3MVersion::RoE, mon_value!(()), mon_value!((), [0u8; 4], mon_tag!([0u8; 4]))) >> [INFO] [stderr] | | -- matches any value [INFO] [stderr] ... | [INFO] [stderr] 963 | | (H3MAvailableHeroes { ref mask, ref mask_ext, ref settings }) [INFO] [stderr] 964 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:388:16 [INFO] [stderr] | [INFO] [stderr] 388 | _ => false, [INFO] [stderr] | ^ unreachable pattern [INFO] [stderr] ... [INFO] [stderr] 957 | / mon_named_args!(available_heroes(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 958 | | mask: mon_count_fixed!(u32, Put::long, 4) >> [INFO] [stderr] 959 | | mask_ext: mon_ifeq!(version, H3MVersion::RoE, mon_value!(0x0001FFFF), mon_call!(Put::long)) >> [INFO] [stderr] 960 | | _zeroes: mon_ifeq!(version, H3MVersion::RoE, mon_value!(()), mon_value!((), [0u8; 4], mon_tag!([0u8; 4]))) >> [INFO] [stderr] | | -- matches any value [INFO] [stderr] ... | [INFO] [stderr] 963 | | (H3MAvailableHeroes { ref mask, ref mask_ext, ref settings }) [INFO] [stderr] 964 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 957 | / mon_named_args!(available_heroes(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 958 | | mask: mon_count_fixed!(u32, Put::long, 4) >> [INFO] [stderr] 959 | | mask_ext: mon_ifeq!(version, H3MVersion::RoE, mon_value!(0x0001FFFF), mon_call!(Put::long)) >> [INFO] [stderr] 960 | | _zeroes: mon_ifeq!(version, H3MVersion::RoE, mon_value!(()), mon_value!((), [0u8; 4], mon_tag!([0u8; 4]))) >> [INFO] [stderr] ... | [INFO] [stderr] 963 | | (H3MAvailableHeroes { ref mask, ref mask_ext, ref settings }) [INFO] [stderr] 964 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 1022 | / mon_named_args!(hero_equipment(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 1023 | | head: mon_call!(Put::artifact, version) >> [INFO] [stderr] 1024 | | shoulders: mon_call!(Put::artifact, version) >> [INFO] [stderr] 1025 | | neck: mon_call!(Put::artifact, version) >> [INFO] [stderr] ... | [INFO] [stderr] 1049 | | }) [INFO] [stderr] 1050 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ unreachable pattern [INFO] [stderr] ... [INFO] [stderr] 396 | mon_do_parse!($o, $v, $($f: $p!( $($args)* ) >>)* (($(ref $f),*)) ) [INFO] [stderr] | ------------- matches any value [INFO] [stderr] ... [INFO] [stderr] 1079 | / mon_named!(hero_customization, mon_do_parse!( [INFO] [stderr] 1080 | | exp: mon_option!(Put::long) >> [INFO] [stderr] 1081 | | skills: mon_option!(mon_length_count!(Put::long, mon_tuple!(Put::skill, Put::skill_level))) >> [INFO] [stderr] 1082 | | equipment: mon_option!(mon_call!(Put::hero_equipment, H3MVersion::SoD)) >> [INFO] [stderr] ... | [INFO] [stderr] 1089 | | }) [INFO] [stderr] 1090 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ unreachable pattern [INFO] [stderr] ... [INFO] [stderr] 396 | mon_do_parse!($o, $v, $($f: $p!( $($args)* ) >>)* (($(ref $f),*)) ) [INFO] [stderr] | ------------- matches any value [INFO] [stderr] ... [INFO] [stderr] 1079 | / mon_named!(hero_customization, mon_do_parse!( [INFO] [stderr] 1080 | | exp: mon_option!(Put::long) >> [INFO] [stderr] 1081 | | skills: mon_option!(mon_length_count!(Put::long, mon_tuple!(Put::skill, Put::skill_level))) >> [INFO] [stderr] 1082 | | equipment: mon_option!(mon_call!(Put::hero_equipment, H3MVersion::SoD)) >> [INFO] [stderr] ... | [INFO] [stderr] 1089 | | }) [INFO] [stderr] 1090 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 1079 | / mon_named!(hero_customization, mon_do_parse!( [INFO] [stderr] 1080 | | exp: mon_option!(Put::long) >> [INFO] [stderr] 1081 | | skills: mon_option!(mon_length_count!(Put::long, mon_tuple!(Put::skill, Put::skill_level))) >> [INFO] [stderr] 1082 | | equipment: mon_option!(mon_call!(Put::hero_equipment, H3MVersion::SoD)) >> [INFO] [stderr] ... | [INFO] [stderr] 1089 | | }) [INFO] [stderr] 1090 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 1142 | / mon_named!(tile, mon_do_parse!( [INFO] [stderr] 1143 | | terrain: mon_call!(Put::terrain_type) >> [INFO] [stderr] 1144 | | texture: mon_call!(Put::byte) >> [INFO] [stderr] 1145 | | river_type: mon_call!(Put::river_type) >> [INFO] [stderr] ... | [INFO] [stderr] 1155 | | }) [INFO] [stderr] 1156 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 1200 | / mon_named!(object_template, mon_do_parse!( [INFO] [stderr] 1201 | | filename: mon_call!(Put::string) >> [INFO] [stderr] 1202 | | shape_mask: mon_count_fixed!(u8, Put::byte, 6) >> [INFO] [stderr] 1203 | | visit_mask: mon_count_fixed!(u8, Put::byte, 6) >> [INFO] [stderr] ... | [INFO] [stderr] 1213 | | }) [INFO] [stderr] 1214 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 1256 | / mon_named_args!(town_event(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 1257 | | event: mon_call!(Put::event, version) >> [INFO] [stderr] 1258 | | buildings: mon_count_fixed!(u8, Put::byte, 6) >> [INFO] [stderr] 1259 | | creatures: mon_count_fixed!(u16, Put::short, 7) >> [INFO] [stderr] 1260 | | unknown: mon_call!(Put::long) >> [INFO] [stderr] 1261 | | (H3MTownEvent { ref event, ref buildings, ref creatures, ref unknown }) [INFO] [stderr] 1262 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 1309 | / mon_named_args!(msg_guards(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 1310 | | message: mon_call!(Put::string) >> [INFO] [stderr] 1311 | | guards: mon_option!(mon_call!(Put::creatures, version)) >> [INFO] [stderr] 1312 | | _zeroes: mon_tag!([0u8; 4]) >> [INFO] [stderr] 1313 | | (H3MMessageAndGuards { ref message, ref guards }) [INFO] [stderr] 1314 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ unreachable pattern [INFO] [stderr] ... [INFO] [stderr] 396 | mon_do_parse!($o, $v, $($f: $p!( $($args)* ) >>)* (($(ref $f),*)) ) [INFO] [stderr] | ------------- matches any value [INFO] [stderr] ... [INFO] [stderr] 1324 | / mon_named_args!(creatures(version: H3MVersion), [INFO] [stderr] 1325 | | mon_map!(mon_count_fixed!((H3MCreature, u16), mon_tuple!(mon_call!(Put::creature, version), mon_call!(Put::short)), 7), |cs| H3MCreatures(cs)) [INFO] [stderr] 1326 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:229:13 [INFO] [stderr] | [INFO] [stderr] 229 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 1324 | / mon_named_args!(creatures(version: H3MVersion), [INFO] [stderr] 1325 | | mon_map!(mon_count_fixed!((H3MCreature, u16), mon_tuple!(mon_call!(Put::creature, version), mon_call!(Put::short)), 7), |cs| H3MCreatures(cs)) [INFO] [stderr] 1326 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ unreachable pattern [INFO] [stderr] ... [INFO] [stderr] 396 | mon_do_parse!($o, $v, $($f: $p!( $($args)* ) >>)* (($(ref $f),*)) ) [INFO] [stderr] | ------------- matches any value [INFO] [stderr] ... [INFO] [stderr] 1407 | / mon_named!(quest_objective, [INFO] [stderr] 1408 | | mon_switch!(Put::byte, [INFO] [stderr] 1409 | | 0u8 => mon_value!(H3MQuestObjective::Nothing) | [INFO] [stderr] 1410 | | 1u8 => mon_map!(Put::long, |x| H3MQuestObjective::Level(ref x)) | [INFO] [stderr] ... | [INFO] [stderr] 1419 | | ) [INFO] [stderr] 1420 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ unreachable pattern [INFO] [stderr] ... [INFO] [stderr] 396 | mon_do_parse!($o, $v, $($f: $p!( $($args)* ) >>)* (($(ref $f),*)) ) [INFO] [stderr] | ------------- matches any value [INFO] [stderr] ... [INFO] [stderr] 1407 | / mon_named!(quest_objective, [INFO] [stderr] 1408 | | mon_switch!(Put::byte, [INFO] [stderr] 1409 | | 0u8 => mon_value!(H3MQuestObjective::Nothing) | [INFO] [stderr] 1410 | | 1u8 => mon_map!(Put::long, |x| H3MQuestObjective::Level(ref x)) | [INFO] [stderr] ... | [INFO] [stderr] 1419 | | ) [INFO] [stderr] 1420 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 1473 | / mon_named!(quest2, [INFO] [stderr] 1474 | | mon_do_parse!( [INFO] [stderr] 1475 | | objective: mon_call!(Put::quest_objective) >> [INFO] [stderr] 1476 | | deadline: mon_call!(Put::long) >> [INFO] [stderr] ... | [INFO] [stderr] 1483 | | ) [INFO] [stderr] 1484 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ unreachable pattern [INFO] [stderr] ... [INFO] [stderr] 396 | mon_do_parse!($o, $v, $($f: $p!( $($args)* ) >>)* (($(ref $f),*)) ) [INFO] [stderr] | ------------- matches any value [INFO] [stderr] ... [INFO] [stderr] 1523 | / mon_named_args!(msg_guard_reward(version: H3MVersion), [INFO] [stderr] 1524 | | mon_do_parse!( [INFO] [stderr] 1525 | | guard: mon_option!(mon_call!(Put::msg_guards, version)) >> [INFO] [stderr] 1526 | | exp: mon_call!(Put::long) >> [INFO] [stderr] ... | [INFO] [stderr] 1541 | | ) [INFO] [stderr] 1542 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ unreachable pattern [INFO] [stderr] ... [INFO] [stderr] 396 | mon_do_parse!($o, $v, $($f: $p!( $($args)* ) >>)* (($(ref $f),*)) ) [INFO] [stderr] | ------------- matches any value [INFO] [stderr] ... [INFO] [stderr] 1523 | / mon_named_args!(msg_guard_reward(version: H3MVersion), [INFO] [stderr] 1524 | | mon_do_parse!( [INFO] [stderr] 1525 | | guard: mon_option!(mon_call!(Put::msg_guards, version)) >> [INFO] [stderr] 1526 | | exp: mon_call!(Put::long) >> [INFO] [stderr] ... | [INFO] [stderr] 1541 | | ) [INFO] [stderr] 1542 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ unreachable pattern [INFO] [stderr] ... [INFO] [stderr] 396 | mon_do_parse!($o, $v, $($f: $p!( $($args)* ) >>)* (($(ref $f),*)) ) [INFO] [stderr] | ------------- matches any value [INFO] [stderr] ... [INFO] [stderr] 1523 | / mon_named_args!(msg_guard_reward(version: H3MVersion), [INFO] [stderr] 1524 | | mon_do_parse!( [INFO] [stderr] 1525 | | guard: mon_option!(mon_call!(Put::msg_guards, version)) >> [INFO] [stderr] 1526 | | exp: mon_call!(Put::long) >> [INFO] [stderr] ... | [INFO] [stderr] 1541 | | ) [INFO] [stderr] 1542 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 1523 | / mon_named_args!(msg_guard_reward(version: H3MVersion), [INFO] [stderr] 1524 | | mon_do_parse!( [INFO] [stderr] 1525 | | guard: mon_option!(mon_call!(Put::msg_guards, version)) >> [INFO] [stderr] 1526 | | exp: mon_call!(Put::long) >> [INFO] [stderr] ... | [INFO] [stderr] 1541 | | ) [INFO] [stderr] 1542 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ unreachable pattern [INFO] [stderr] ... [INFO] [stderr] 396 | mon_do_parse!($o, $v, $($f: $p!( $($args)* ) >>)* (($(ref $f),*)) ) [INFO] [stderr] | ------------- matches any value [INFO] [stderr] ... [INFO] [stderr] 1635 | / mon_named_args!(obj_hero(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 1636 | | id: mon_ifeq!(version, H3MVersion::RoE, mon_value!(0xFFFFFFFF), mon_call!(Put::long)) >> [INFO] [stderr] 1637 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1638 | | hero_type: mon_call!(Put::byte) >> [INFO] [stderr] ... | [INFO] [stderr] 1660 | | }) [INFO] [stderr] 1661 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ unreachable pattern [INFO] [stderr] ... [INFO] [stderr] 396 | mon_do_parse!($o, $v, $($f: $p!( $($args)* ) >>)* (($(ref $f),*)) ) [INFO] [stderr] | ------------- matches any value [INFO] [stderr] ... [INFO] [stderr] 1635 | / mon_named_args!(obj_hero(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 1636 | | id: mon_ifeq!(version, H3MVersion::RoE, mon_value!(0xFFFFFFFF), mon_call!(Put::long)) >> [INFO] [stderr] 1637 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1638 | | hero_type: mon_call!(Put::byte) >> [INFO] [stderr] ... | [INFO] [stderr] 1660 | | }) [INFO] [stderr] 1661 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ unreachable pattern [INFO] [stderr] ... [INFO] [stderr] 396 | mon_do_parse!($o, $v, $($f: $p!( $($args)* ) >>)* (($(ref $f),*)) ) [INFO] [stderr] | ------------- matches any value [INFO] [stderr] ... [INFO] [stderr] 1679 | / mon_named_args!(obj_monster(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 1680 | | id: mon_ifeq!(version, H3MVersion::RoE, mon_value!(0xFFFFFFFF), mon_call!(Put::long)) >> [INFO] [stderr] 1681 | | quantity: mon_alt!( [INFO] [stderr] 1682 | | mon_tag!([0u8; 2]) => { |_| H3MQuantity::Random } | [INFO] [stderr] ... | [INFO] [stderr] 1692 | | }) [INFO] [stderr] 1693 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unused variable: `o` [INFO] [stderr] --> src/main.rs:82:19 [INFO] [stderr] | [INFO] [stderr] 82 | fn $f(o: &mut Vec, v: &$t, $($a: $at),* ) -> bool { [INFO] [stderr] | ^ help: consider using `_o` instead [INFO] [stderr] ... [INFO] [stderr] 1977 | mon_named_args!(obj_noprops(_v: H3MVersion), mon_value!(H3MObjectProperties::NoProperties)); [INFO] [stderr] | ----------------------------------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ unreachable pattern [INFO] [stderr] ... [INFO] [stderr] 396 | mon_do_parse!($o, $v, $($f: $p!( $($args)* ) >>)* (($(ref $f),*)) ) [INFO] [stderr] | ------------- matches any value [INFO] [stderr] ... [INFO] [stderr] 1766 | / mon_named_args!(obj_dwelling(_v: H3MVersion), mon_do_parse!( [INFO] [stderr] 1767 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1768 | | _zeroes: mon_tag!([0u8; 3]) >> [INFO] [stderr] 1769 | | faction: mon_call!(Put::dwelling_faction) >> [INFO] [stderr] 1770 | | level_range: mon_tuple!(Put::byte, Put::byte) >> [INFO] [stderr] 1771 | | (H3MObjectProperties::RandomDwelling { ref owner, ref faction, ref level_range }) [INFO] [stderr] 1772 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ unreachable pattern [INFO] [stderr] ... [INFO] [stderr] 396 | mon_do_parse!($o, $v, $($f: $p!( $($args)* ) >>)* (($(ref $f),*)) ) [INFO] [stderr] | ------------- matches any value [INFO] [stderr] ... [INFO] [stderr] 1793 | / mon_named_args!(obj_dwelling_faction(_v: H3MVersion), mon_do_parse!( [INFO] [stderr] 1794 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1795 | | _zeroes: mon_tag!([0u8; 3]) >> [INFO] [stderr] 1796 | | level_range: mon_tuple!(Put::byte, Put::byte) >> [INFO] [stderr] 1797 | | (H3MObjectProperties::RandomDwellingFaction { ref owner, ref level_range }) [INFO] [stderr] 1798 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 2067 | / mon_named_args!(object(version: H3MVersion, templates: &[H3MObjectTemplate]), mon_do_parse!( [INFO] [stderr] 2068 | | loc: mon_call!(Put::location) >> [INFO] [stderr] 2069 | | template_idx: mon_call!(Put::long) >> [INFO] [stderr] 2070 | | _zeroes: mon_tag!([0u8; 5]) >> [INFO] [stderr] ... | [INFO] [stderr] 2074 | | }) [INFO] [stderr] 2075 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 2106 | / mon_named_args!(event(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 2107 | | name: mon_call!(Put::string) >> [INFO] [stderr] 2108 | | text: mon_call!(Put::string) >> [INFO] [stderr] 2109 | | resources: mon_call!(Put::resources) >> [INFO] [stderr] ... | [INFO] [stderr] 2118 | | }) [INFO] [stderr] 2119 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:388:16 [INFO] [stderr] | [INFO] [stderr] 388 | _ => false, [INFO] [stderr] | ^ unreachable pattern [INFO] [stderr] ... [INFO] [stderr] 2184 | / mon_named!(h3m, mon_do_parse!( [INFO] [stderr] 2185 | | header: mon_call!(Put::header) >> [INFO] [stderr] 2186 | | players: mon_count!(mon_call!(Put::player, header.version), 8) >> [INFO] [stderr] 2187 | | victory: mon_call!(Put::special_victory, header.version) >> [INFO] [stderr] ... | [INFO] [stderr] 2213 | | _trailing_zeroes: mon_value!((), [0u8; 124], mon_count!(mon_tag!([0u8]), 124)) >> [INFO] [stderr] | | -- matches any value [INFO] [stderr] ... | [INFO] [stderr] 2220 | | }) [INFO] [stderr] 2221 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unused variable: `v` [INFO] [stderr] --> src/main.rs:320:25 [INFO] [stderr] | [INFO] [stderr] 320 | let v = &$v[i]; [INFO] [stderr] | ^ help: consider using `_v` instead [INFO] [stderr] ... [INFO] [stderr] 2184 | / mon_named!(h3m, mon_do_parse!( [INFO] [stderr] 2185 | | header: mon_call!(Put::header) >> [INFO] [stderr] 2186 | | players: mon_count!(mon_call!(Put::player, header.version), 8) >> [INFO] [stderr] 2187 | | victory: mon_call!(Put::special_victory, header.version) >> [INFO] [stderr] ... | [INFO] [stderr] 2220 | | }) [INFO] [stderr] 2221 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ unreachable pattern [INFO] [stderr] ... [INFO] [stderr] 396 | mon_do_parse!($o, $v, $($f: $p!( $($args)* ) >>)* (($(ref $f),*)) ) [INFO] [stderr] | ------------- matches any value [INFO] [stderr] ... [INFO] [stderr] 2184 | / mon_named!(h3m, mon_do_parse!( [INFO] [stderr] 2185 | | header: mon_call!(Put::header) >> [INFO] [stderr] 2186 | | players: mon_count!(mon_call!(Put::player, header.version), 8) >> [INFO] [stderr] 2187 | | victory: mon_call!(Put::special_victory, header.version) >> [INFO] [stderr] ... | [INFO] [stderr] 2220 | | }) [INFO] [stderr] 2221 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ unreachable pattern [INFO] [stderr] ... [INFO] [stderr] 2184 | / mon_named!(h3m, mon_do_parse!( [INFO] [stderr] 2185 | | header: mon_call!(Put::header) >> [INFO] [stderr] 2186 | | players: mon_count!(mon_call!(Put::player, header.version), 8) >> [INFO] [stderr] 2187 | | victory: mon_call!(Put::special_victory, header.version) >> [INFO] [stderr] ... | [INFO] [stderr] 2194 | | ((ref nteams, ref ids)) [INFO] [stderr] | | --------------------- matches any value [INFO] [stderr] ... | [INFO] [stderr] 2220 | | }) [INFO] [stderr] 2221 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:282:13 [INFO] [stderr] | [INFO] [stderr] 282 | _ => false, [INFO] [stderr] | ^ [INFO] [stderr] ... [INFO] [stderr] 2184 | / mon_named!(h3m, mon_do_parse!( [INFO] [stderr] 2185 | | header: mon_call!(Put::header) >> [INFO] [stderr] 2186 | | players: mon_count!(mon_call!(Put::player, header.version), 8) >> [INFO] [stderr] 2187 | | victory: mon_call!(Put::special_victory, header.version) >> [INFO] [stderr] ... | [INFO] [stderr] 2220 | | }) [INFO] [stderr] 2221 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: unused variable: `o` [INFO] [stderr] --> src/main.rs:82:19 [INFO] [stderr] | [INFO] [stderr] 82 | fn $f(o: &mut Vec, v: &$t, $($a: $at),* ) -> bool { [INFO] [stderr] | ^ help: consider using `_o` instead [INFO] [stderr] ... [INFO] [stderr] 1977 | mon_named_args!(obj_noprops(_v: H3MVersion), mon_value!(H3MObjectProperties::NoProperties)); [INFO] [stderr] | ----------------------------------------------------------------------------------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `v` [INFO] [stderr] --> src/main.rs:320:25 [INFO] [stderr] | [INFO] [stderr] 320 | let v = &$v[i]; [INFO] [stderr] | ^ help: consider using `_v` instead [INFO] [stderr] ... [INFO] [stderr] 2184 | / mon_named!(h3m, mon_do_parse!( [INFO] [stderr] 2185 | | header: mon_call!(Put::header) >> [INFO] [stderr] 2186 | | players: mon_count!(mon_call!(Put::player, header.version), 8) >> [INFO] [stderr] 2187 | | victory: mon_call!(Put::special_victory, header.version) >> [INFO] [stderr] ... | [INFO] [stderr] 2220 | | }) [INFO] [stderr] 2221 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `u` [INFO] [stderr] --> src/main.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | o.push(((u >> 0) & 0xFF) as u8); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `u` [INFO] [stderr] --> src/main.rs:46:17 [INFO] [stderr] | [INFO] [stderr] 46 | o.push(((u >> 0) & 0xFF) as u8); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/main.rs:380:9 [INFO] [stderr] | [INFO] [stderr] 380 | / match *$v { [INFO] [stderr] 381 | | $val => true, [INFO] [stderr] 382 | | _ => false, [INFO] [stderr] 383 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 417 | / mon_named!(flag, mon_switch!(Put::byte, [INFO] [stderr] 418 | | 0u8 => mon_value!(false) | [INFO] [stderr] 419 | | 1u8 => mon_value!(true) [INFO] [stderr] 420 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 380 | if v, $($args)* ); [INFO] [stderr] 381 | ret [INFO] [stderr] 382 | } [INFO] [stderr] 383 | } [INFO] [stderr] 384 | ); [INFO] [stderr] 385 | ); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/main.rs:380:9 [INFO] [stderr] | [INFO] [stderr] 380 | / match *$v { [INFO] [stderr] 381 | | $val => true, [INFO] [stderr] 382 | | _ => false, [INFO] [stderr] 383 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 417 | / mon_named!(flag, mon_switch!(Put::byte, [INFO] [stderr] 418 | | 0u8 => mon_value!(false) | [INFO] [stderr] 419 | | 1u8 => mon_value!(true) [INFO] [stderr] 420 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 380 | if v, $($args)* ); [INFO] [stderr] 381 | ret [INFO] [stderr] 382 | } [INFO] [stderr] 383 | } [INFO] [stderr] 384 | ); [INFO] [stderr] 385 | ); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/main.rs:427:39 [INFO] [stderr] | [INFO] [stderr] 427 | (String::from_utf8(Vec::from(st)).unwrap_or(String::from(""))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| String::from(""))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/main.rs:432:35 [INFO] [stderr] | [INFO] [stderr] 432 | fn string(o: &mut Vec, v: &String) -> bool { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:132:9 [INFO] [stderr] | [INFO] [stderr] 132 | / match $c { [INFO] [stderr] 133 | | $t => $thn!($o, $v, $($targs)*), [INFO] [stderr] 134 | | _ => $els!($o, $v, $($eargs)*), [INFO] [stderr] 135 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 500 | / mon_named!(header, mon_do_parse!( [INFO] [stderr] 501 | | version: mon_call!(Put::version) >> [INFO] [stderr] 502 | | has_players: mon_call!(Put::flag) >> [INFO] [stderr] 503 | | size: mon_call!(Put::size) >> [INFO] [stderr] ... | [INFO] [stderr] 518 | | }) [INFO] [stderr] 519 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:547:54 [INFO] [stderr] | [INFO] [stderr] 547 | map!(tuple!(Eat::long, Eat::long, Eat::byte), |t| H3MSpellsMask(t)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MSpellsMask` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/main.rs:380:9 [INFO] [stderr] | [INFO] [stderr] 380 | / match *$v { [INFO] [stderr] 381 | | $val => true, [INFO] [stderr] 382 | | _ => false, [INFO] [stderr] 383 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 583 | / mon_named_args!(main_town(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 584 | | generate_hero: mon_ifeq!(version, H3MVersion::RoE, mon_value!(true), mon_call!(Put::flag)) >> [INFO] [stderr] 585 | | kind: mon_ifeq!(version, H3MVersion::RoE, mon_value!(H3MTownKind::Random), mon_call!(Put::town_kind)) >> [INFO] [stderr] 586 | | location: mon_call!(Put::location) >> [INFO] [stderr] 587 | | (H3MMainTown { ref generate_hero, ref kind, ref location }) [INFO] [stderr] 588 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 380 | if *$v { mon_named_args!(main_town(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 381 | generate_hero: mon_ifeq!(version, H3MVersion::RoE, mon_value!(true), mon_call!(Put::flag)) >> [INFO] [stderr] 382 | kind: mon_ifeq!(version, H3MVersion::RoE, mon_value!(H3MTownKind::Random), mon_call!(Put::town_kind)) >> [INFO] [stderr] 383 | location: mon_call!(Put::location) >> [INFO] [stderr] 384 | (H3MMainTown { ref generate_hero, ref kind, ref location }) [INFO] [stderr] 385 | )); } else { mon_named_args!(main_town(version: H3MVersion), mon_do_parse!( [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:594:73 [INFO] [stderr] | [INFO] [stderr] 594 | w_named!(resources, map!(count_fixed!(u32, Eat::long, 7), |xs| H3MResources(xs))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MResources` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:676:63 [INFO] [stderr] | [INFO] [stderr] 676 | 0x00u8 => map!(call!(Eat::artifact, version), |art| H3MVictoryCondition::AcquireArtifact(art)) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MVictoryCondition::AcquireArtifact` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:684:21 [INFO] [stderr] | [INFO] [stderr] 684 | |loc| H3MVictoryCondition::BuildGrail(loc)) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MVictoryCondition::BuildGrail` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:685:47 [INFO] [stderr] | [INFO] [stderr] 685 | 0x05u8 => map!(Eat::location, |loc| H3MVictoryCondition::DefeatHero(loc)) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MVictoryCondition::DefeatHero` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:686:47 [INFO] [stderr] | [INFO] [stderr] 686 | 0x06u8 => map!(Eat::location, |loc| H3MVictoryCondition::CaptureTown(loc)) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MVictoryCondition::CaptureTown` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:687:47 [INFO] [stderr] | [INFO] [stderr] 687 | 0x07u8 => map!(Eat::location, |loc| H3MVictoryCondition::DefeatMonster(loc)) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MVictoryCondition::DefeatMonster` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `u` [INFO] [stderr] --> src/main.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | o.push(((u >> 0) & 0xFF) as u8); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `u` [INFO] [stderr] --> src/main.rs:46:17 [INFO] [stderr] | [INFO] [stderr] 46 | o.push(((u >> 0) & 0xFF) as u8); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/main.rs:380:9 [INFO] [stderr] | [INFO] [stderr] 380 | / match *$v { [INFO] [stderr] 381 | | $val => true, [INFO] [stderr] 382 | | _ => false, [INFO] [stderr] 383 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 417 | / mon_named!(flag, mon_switch!(Put::byte, [INFO] [stderr] 418 | | 0u8 => mon_value!(false) | [INFO] [stderr] 419 | | 1u8 => mon_value!(true) [INFO] [stderr] 420 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 380 | if v, $($args)* ); [INFO] [stderr] 381 | ret [INFO] [stderr] 382 | } [INFO] [stderr] 383 | } [INFO] [stderr] 384 | ); [INFO] [stderr] 385 | ); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/main.rs:380:9 [INFO] [stderr] | [INFO] [stderr] 380 | / match *$v { [INFO] [stderr] 381 | | $val => true, [INFO] [stderr] 382 | | _ => false, [INFO] [stderr] 383 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 417 | / mon_named!(flag, mon_switch!(Put::byte, [INFO] [stderr] 418 | | 0u8 => mon_value!(false) | [INFO] [stderr] 419 | | 1u8 => mon_value!(true) [INFO] [stderr] 420 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 380 | if v, $($args)* ); [INFO] [stderr] 381 | ret [INFO] [stderr] 382 | } [INFO] [stderr] 383 | } [INFO] [stderr] 384 | ); [INFO] [stderr] 385 | ); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/main.rs:243:17 [INFO] [stderr] | [INFO] [stderr] 243 | let ref mut $var = $def; [INFO] [stderr] | ----^^^^^^^^^^^^-------- help: try: `let code = &mut 0xFF;` [INFO] [stderr] ... [INFO] [stderr] 702 | / mon_named_args!(special_victory(version: H3MVersion)>, [INFO] [stderr] 703 | | mon_alt!( [INFO] [stderr] 704 | | mon_tag!([0xFF]) => { |_| None } | [INFO] [stderr] 705 | | mon_do_parse!( [INFO] [stderr] ... | [INFO] [stderr] 732 | | ) [INFO] [stderr] 733 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/main.rs:427:39 [INFO] [stderr] | [INFO] [stderr] 427 | (String::from_utf8(Vec::from(st)).unwrap_or(String::from(""))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| String::from(""))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/main.rs:432:35 [INFO] [stderr] | [INFO] [stderr] 432 | fn string(o: &mut Vec, v: &String) -> bool { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:132:9 [INFO] [stderr] | [INFO] [stderr] 132 | / match $c { [INFO] [stderr] 133 | | $t => $thn!($o, $v, $($targs)*), [INFO] [stderr] 134 | | _ => $els!($o, $v, $($eargs)*), [INFO] [stderr] 135 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 500 | / mon_named!(header, mon_do_parse!( [INFO] [stderr] 501 | | version: mon_call!(Put::version) >> [INFO] [stderr] 502 | | has_players: mon_call!(Put::flag) >> [INFO] [stderr] 503 | | size: mon_call!(Put::size) >> [INFO] [stderr] ... | [INFO] [stderr] 518 | | }) [INFO] [stderr] 519 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:747:35 [INFO] [stderr] | [INFO] [stderr] 747 | 0x00u8 => map!(Eat::location, |l| H3MLossCondition::LoseTown(l)) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MLossCondition::LoseTown` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:748:35 [INFO] [stderr] | [INFO] [stderr] 748 | 0x01u8 => map!(Eat::location, |l| H3MLossCondition::LoseHero(l)) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MLossCondition::LoseHero` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:749:32 [INFO] [stderr] | [INFO] [stderr] 749 | 0x02u8 => map!(Eat::short, |d| H3MLossCondition::TimeExpires(d)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MLossCondition::TimeExpires` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:547:54 [INFO] [stderr] | [INFO] [stderr] 547 | map!(tuple!(Eat::long, Eat::long, Eat::byte), |t| H3MSpellsMask(t)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MSpellsMask` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/main.rs:380:9 [INFO] [stderr] | [INFO] [stderr] 380 | / match *$v { [INFO] [stderr] 381 | | $val => true, [INFO] [stderr] 382 | | _ => false, [INFO] [stderr] 383 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 583 | / mon_named_args!(main_town(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 584 | | generate_hero: mon_ifeq!(version, H3MVersion::RoE, mon_value!(true), mon_call!(Put::flag)) >> [INFO] [stderr] 585 | | kind: mon_ifeq!(version, H3MVersion::RoE, mon_value!(H3MTownKind::Random), mon_call!(Put::town_kind)) >> [INFO] [stderr] 586 | | location: mon_call!(Put::location) >> [INFO] [stderr] 587 | | (H3MMainTown { ref generate_hero, ref kind, ref location }) [INFO] [stderr] 588 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 380 | if *$v { mon_named_args!(main_town(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 381 | generate_hero: mon_ifeq!(version, H3MVersion::RoE, mon_value!(true), mon_call!(Put::flag)) >> [INFO] [stderr] 382 | kind: mon_ifeq!(version, H3MVersion::RoE, mon_value!(H3MTownKind::Random), mon_call!(Put::town_kind)) >> [INFO] [stderr] 383 | location: mon_call!(Put::location) >> [INFO] [stderr] 384 | (H3MMainTown { ref generate_hero, ref kind, ref location }) [INFO] [stderr] 385 | )); } else { mon_named_args!(main_town(version: H3MVersion), mon_do_parse!( [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:594:73 [INFO] [stderr] | [INFO] [stderr] 594 | w_named!(resources, map!(count_fixed!(u32, Eat::long, 7), |xs| H3MResources(xs))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MResources` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/main.rs:132:9 [INFO] [stderr] | [INFO] [stderr] 132 | / match $c { [INFO] [stderr] 133 | | $t => $thn!($o, $v, $($targs)*), [INFO] [stderr] 134 | | _ => $els!($o, $v, $($eargs)*), [INFO] [stderr] 135 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 834 | / mon_named_args!(player_allowed_alignments(version: H3MVersion, playable: bool), [INFO] [stderr] 835 | | mon_ifeq!(playable, true, [INFO] [stderr] 836 | | mon_do_parse!( [INFO] [stderr] 837 | | unknown: mon_sod!(version, mon_value!(false), mon_call!(Put::flag)) >> [INFO] [stderr] ... | [INFO] [stderr] 851 | | ) [INFO] [stderr] 852 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 132 | if playable { mon_named_args!(player_allowed_alignments(version: H3MVersion, playable: bool), [INFO] [stderr] 133 | mon_ifeq!(playable, true, [INFO] [stderr] 134 | mon_do_parse!( [INFO] [stderr] 135 | unknown: mon_sod!(version, mon_value!(false), mon_call!(Put::flag)) >> [INFO] [stderr] 136 | mask: mon_call!(Put::byte) >> [INFO] [stderr] 137 | mask_ext: mon_ifeq!(version, H3MVersion::RoE, mon_value!(1u8), mon_call!(Put::byte)) >> [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/main.rs:380:9 [INFO] [stderr] | [INFO] [stderr] 380 | / match *$v { [INFO] [stderr] 381 | | $val => true, [INFO] [stderr] 382 | | _ => false, [INFO] [stderr] 383 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 834 | / mon_named_args!(player_allowed_alignments(version: H3MVersion, playable: bool), [INFO] [stderr] 835 | | mon_ifeq!(playable, true, [INFO] [stderr] 836 | | mon_do_parse!( [INFO] [stderr] 837 | | unknown: mon_sod!(version, mon_value!(false), mon_call!(Put::flag)) >> [INFO] [stderr] ... | [INFO] [stderr] 851 | | ) [INFO] [stderr] 852 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 380 | if *$v { mon_named_args!(player_allowed_alignments(version: H3MVersion, playable: bool), [INFO] [stderr] 381 | mon_ifeq!(playable, true, [INFO] [stderr] 382 | mon_do_parse!( [INFO] [stderr] 383 | unknown: mon_sod!(version, mon_value!(false), mon_call!(Put::flag)) >> [INFO] [stderr] 384 | mask: mon_call!(Put::byte) >> [INFO] [stderr] 385 | mask_ext: mon_ifeq!(version, H3MVersion::RoE, mon_value!(1u8), mon_call!(Put::byte)) >> [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:96:46 [INFO] [stderr] | [INFO] [stderr] 96 | 1u8 => map!($submac!($($args)*), |x| Some(x)) | [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] ... [INFO] [stderr] 868 | / w_named_args!(player(version: H3MVersion), do_parse!( [INFO] [stderr] 869 | | playability: call!(Eat::player_playability) >> [INFO] [stderr] 870 | | allowed_alignments: call!(Eat::player_allowed_alignments, version, playability.human || playability.computer) >> [INFO] [stderr] 871 | | main_town: option!(call!(Eat::main_town, version)) >> [INFO] [stderr] ... | [INFO] [stderr] 886 | | }) [INFO] [stderr] 887 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:874:71 [INFO] [stderr] | [INFO] [stderr] 874 | main_hero: ifeq!(hero_type, 0xFFu8, value!(None), map!(Eat::hero, |x| Some(x))) >> [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:676:63 [INFO] [stderr] | [INFO] [stderr] 676 | 0x00u8 => map!(call!(Eat::artifact, version), |art| H3MVictoryCondition::AcquireArtifact(art)) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MVictoryCondition::AcquireArtifact` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:684:21 [INFO] [stderr] | [INFO] [stderr] 684 | |loc| H3MVictoryCondition::BuildGrail(loc)) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MVictoryCondition::BuildGrail` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:132:9 [INFO] [stderr] | [INFO] [stderr] 132 | / match $c { [INFO] [stderr] 133 | | $t => $thn!($o, $v, $($targs)*), [INFO] [stderr] 134 | | _ => $els!($o, $v, $($eargs)*), [INFO] [stderr] 135 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 890 | / mon_named_args!(player(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 891 | | playability: mon_call!(Put::player_playability) >> [INFO] [stderr] 892 | | allowed_alignments: mon_call!(Put::player_allowed_alignments, version, playability.human || playability.computer) >> [INFO] [stderr] 893 | | main_town: mon_option!(mon_call!(Put::main_town, version)) >> [INFO] [stderr] ... | [INFO] [stderr] 908 | | }) [INFO] [stderr] 909 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:685:47 [INFO] [stderr] | [INFO] [stderr] 685 | 0x05u8 => map!(Eat::location, |loc| H3MVictoryCondition::DefeatHero(loc)) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MVictoryCondition::DefeatHero` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:686:47 [INFO] [stderr] | [INFO] [stderr] 686 | 0x06u8 => map!(Eat::location, |loc| H3MVictoryCondition::CaptureTown(loc)) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MVictoryCondition::CaptureTown` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:687:47 [INFO] [stderr] | [INFO] [stderr] 687 | 0x07u8 => map!(Eat::location, |loc| H3MVictoryCondition::DefeatMonster(loc)) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MVictoryCondition::DefeatMonster` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/main.rs:243:17 [INFO] [stderr] | [INFO] [stderr] 243 | let ref mut $var = $def; [INFO] [stderr] | ----^^^^^^^^^^^^-------- help: try: `let code = &mut 0xFF;` [INFO] [stderr] ... [INFO] [stderr] 702 | / mon_named_args!(special_victory(version: H3MVersion)>, [INFO] [stderr] 703 | | mon_alt!( [INFO] [stderr] 704 | | mon_tag!([0xFF]) => { |_| None } | [INFO] [stderr] 705 | | mon_do_parse!( [INFO] [stderr] ... | [INFO] [stderr] 732 | | ) [INFO] [stderr] 733 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:747:35 [INFO] [stderr] | [INFO] [stderr] 747 | 0x00u8 => map!(Eat::location, |l| H3MLossCondition::LoseTown(l)) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MLossCondition::LoseTown` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:748:35 [INFO] [stderr] | [INFO] [stderr] 748 | 0x01u8 => map!(Eat::location, |l| H3MLossCondition::LoseHero(l)) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MLossCondition::LoseHero` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:749:32 [INFO] [stderr] | [INFO] [stderr] 749 | 0x02u8 => map!(Eat::short, |d| H3MLossCondition::TimeExpires(d)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MLossCondition::TimeExpires` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/main.rs:243:17 [INFO] [stderr] | [INFO] [stderr] 243 | let ref mut $var = $def; [INFO] [stderr] | ----^^^^^^^^^^^^-------- help: try: `let _zeroes = &mut ();` [INFO] [stderr] ... [INFO] [stderr] 957 | / mon_named_args!(available_heroes(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 958 | | mask: mon_count_fixed!(u32, Put::long, 4) >> [INFO] [stderr] 959 | | mask_ext: mon_ifeq!(version, H3MVersion::RoE, mon_value!(0x0001FFFF), mon_call!(Put::long)) >> [INFO] [stderr] 960 | | _zeroes: mon_ifeq!(version, H3MVersion::RoE, mon_value!(()), mon_value!((), [0u8; 4], mon_tag!([0u8; 4]))) >> [INFO] [stderr] ... | [INFO] [stderr] 963 | | (H3MAvailableHeroes { ref mask, ref mask_ext, ref settings }) [INFO] [stderr] 964 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/main.rs:132:9 [INFO] [stderr] | [INFO] [stderr] 132 | / match $c { [INFO] [stderr] 133 | | $t => $thn!($o, $v, $($targs)*), [INFO] [stderr] 134 | | _ => $els!($o, $v, $($eargs)*), [INFO] [stderr] 135 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 834 | / mon_named_args!(player_allowed_alignments(version: H3MVersion, playable: bool), [INFO] [stderr] 835 | | mon_ifeq!(playable, true, [INFO] [stderr] 836 | | mon_do_parse!( [INFO] [stderr] 837 | | unknown: mon_sod!(version, mon_value!(false), mon_call!(Put::flag)) >> [INFO] [stderr] ... | [INFO] [stderr] 851 | | ) [INFO] [stderr] 852 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 132 | if playable { mon_named_args!(player_allowed_alignments(version: H3MVersion, playable: bool), [INFO] [stderr] 133 | mon_ifeq!(playable, true, [INFO] [stderr] 134 | mon_do_parse!( [INFO] [stderr] 135 | unknown: mon_sod!(version, mon_value!(false), mon_call!(Put::flag)) >> [INFO] [stderr] 136 | mask: mon_call!(Put::byte) >> [INFO] [stderr] 137 | mask_ext: mon_ifeq!(version, H3MVersion::RoE, mon_value!(1u8), mon_call!(Put::byte)) >> [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/main.rs:380:9 [INFO] [stderr] | [INFO] [stderr] 380 | / match *$v { [INFO] [stderr] 381 | | $val => true, [INFO] [stderr] 382 | | _ => false, [INFO] [stderr] 383 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 834 | / mon_named_args!(player_allowed_alignments(version: H3MVersion, playable: bool), [INFO] [stderr] 835 | | mon_ifeq!(playable, true, [INFO] [stderr] 836 | | mon_do_parse!( [INFO] [stderr] 837 | | unknown: mon_sod!(version, mon_value!(false), mon_call!(Put::flag)) >> [INFO] [stderr] ... | [INFO] [stderr] 851 | | ) [INFO] [stderr] 852 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 380 | if *$v { mon_named_args!(player_allowed_alignments(version: H3MVersion, playable: bool), [INFO] [stderr] 381 | mon_ifeq!(playable, true, [INFO] [stderr] 382 | mon_do_parse!( [INFO] [stderr] 383 | unknown: mon_sod!(version, mon_value!(false), mon_call!(Put::flag)) >> [INFO] [stderr] 384 | mask: mon_call!(Put::byte) >> [INFO] [stderr] 385 | mask_ext: mon_ifeq!(version, H3MVersion::RoE, mon_value!(1u8), mon_call!(Put::byte)) >> [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:96:46 [INFO] [stderr] | [INFO] [stderr] 96 | 1u8 => map!($submac!($($args)*), |x| Some(x)) | [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] ... [INFO] [stderr] 868 | / w_named_args!(player(version: H3MVersion), do_parse!( [INFO] [stderr] 869 | | playability: call!(Eat::player_playability) >> [INFO] [stderr] 870 | | allowed_alignments: call!(Eat::player_allowed_alignments, version, playability.human || playability.computer) >> [INFO] [stderr] 871 | | main_town: option!(call!(Eat::main_town, version)) >> [INFO] [stderr] ... | [INFO] [stderr] 886 | | }) [INFO] [stderr] 887 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:874:71 [INFO] [stderr] | [INFO] [stderr] 874 | main_hero: ifeq!(hero_type, 0xFFu8, value!(None), map!(Eat::hero, |x| Some(x))) >> [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:96:46 [INFO] [stderr] | [INFO] [stderr] 96 | 1u8 => map!($submac!($($args)*), |x| Some(x)) | [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] ... [INFO] [stderr] 1066 | / w_named!(hero_customization, do_parse!( [INFO] [stderr] 1067 | | exp: option!(Eat::long) >> [INFO] [stderr] 1068 | | skills: option!(length_count!(Eat::long, tuple!(Eat::skill, Eat::skill_level))) >> [INFO] [stderr] 1069 | | equipment: option!(call!(Eat::hero_equipment, H3MVersion::SoD)) >> [INFO] [stderr] ... | [INFO] [stderr] 1076 | | }) [INFO] [stderr] 1077 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:96:46 [INFO] [stderr] | [INFO] [stderr] 96 | 1u8 => map!($submac!($($args)*), |x| Some(x)) | [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] ... [INFO] [stderr] 1066 | / w_named!(hero_customization, do_parse!( [INFO] [stderr] 1067 | | exp: option!(Eat::long) >> [INFO] [stderr] 1068 | | skills: option!(length_count!(Eat::long, tuple!(Eat::skill, Eat::skill_level))) >> [INFO] [stderr] 1069 | | equipment: option!(call!(Eat::hero_equipment, H3MVersion::SoD)) >> [INFO] [stderr] ... | [INFO] [stderr] 1076 | | }) [INFO] [stderr] 1077 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:132:9 [INFO] [stderr] | [INFO] [stderr] 132 | / match $c { [INFO] [stderr] 133 | | $t => $thn!($o, $v, $($targs)*), [INFO] [stderr] 134 | | _ => $els!($o, $v, $($eargs)*), [INFO] [stderr] 135 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 890 | / mon_named_args!(player(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 891 | | playability: mon_call!(Put::player_playability) >> [INFO] [stderr] 892 | | allowed_alignments: mon_call!(Put::player_allowed_alignments, version, playability.human || playability.computer) >> [INFO] [stderr] 893 | | main_town: mon_option!(mon_call!(Put::main_town, version)) >> [INFO] [stderr] ... | [INFO] [stderr] 908 | | }) [INFO] [stderr] 909 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:96:46 [INFO] [stderr] | [INFO] [stderr] 96 | 1u8 => map!($submac!($($args)*), |x| Some(x)) | [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] ... [INFO] [stderr] 1066 | / w_named!(hero_customization, do_parse!( [INFO] [stderr] 1067 | | exp: option!(Eat::long) >> [INFO] [stderr] 1068 | | skills: option!(length_count!(Eat::long, tuple!(Eat::skill, Eat::skill_level))) >> [INFO] [stderr] 1069 | | equipment: option!(call!(Eat::hero_equipment, H3MVersion::SoD)) >> [INFO] [stderr] ... | [INFO] [stderr] 1076 | | }) [INFO] [stderr] 1077 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:96:46 [INFO] [stderr] | [INFO] [stderr] 96 | 1u8 => map!($submac!($($args)*), |x| Some(x)) | [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] ... [INFO] [stderr] 1066 | / w_named!(hero_customization, do_parse!( [INFO] [stderr] 1067 | | exp: option!(Eat::long) >> [INFO] [stderr] 1068 | | skills: option!(length_count!(Eat::long, tuple!(Eat::skill, Eat::skill_level))) >> [INFO] [stderr] 1069 | | equipment: option!(call!(Eat::hero_equipment, H3MVersion::SoD)) >> [INFO] [stderr] ... | [INFO] [stderr] 1076 | | }) [INFO] [stderr] 1077 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:96:46 [INFO] [stderr] | [INFO] [stderr] 96 | 1u8 => map!($submac!($($args)*), |x| Some(x)) | [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] ... [INFO] [stderr] 1066 | / w_named!(hero_customization, do_parse!( [INFO] [stderr] 1067 | | exp: option!(Eat::long) >> [INFO] [stderr] 1068 | | skills: option!(length_count!(Eat::long, tuple!(Eat::skill, Eat::skill_level))) >> [INFO] [stderr] 1069 | | equipment: option!(call!(Eat::hero_equipment, H3MVersion::SoD)) >> [INFO] [stderr] ... | [INFO] [stderr] 1076 | | }) [INFO] [stderr] 1077 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:96:46 [INFO] [stderr] | [INFO] [stderr] 96 | 1u8 => map!($submac!($($args)*), |x| Some(x)) | [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] ... [INFO] [stderr] 1066 | / w_named!(hero_customization, do_parse!( [INFO] [stderr] 1067 | | exp: option!(Eat::long) >> [INFO] [stderr] 1068 | | skills: option!(length_count!(Eat::long, tuple!(Eat::skill, Eat::skill_level))) >> [INFO] [stderr] 1069 | | equipment: option!(call!(Eat::hero_equipment, H3MVersion::SoD)) >> [INFO] [stderr] ... | [INFO] [stderr] 1076 | | }) [INFO] [stderr] 1077 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/main.rs:243:17 [INFO] [stderr] | [INFO] [stderr] 243 | let ref mut $var = $def; [INFO] [stderr] | ----^^^^^^^^^^^^-------- help: try: `let _zeroes = &mut ();` [INFO] [stderr] ... [INFO] [stderr] 957 | / mon_named_args!(available_heroes(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 958 | | mask: mon_count_fixed!(u32, Put::long, 4) >> [INFO] [stderr] 959 | | mask_ext: mon_ifeq!(version, H3MVersion::RoE, mon_value!(0x0001FFFF), mon_call!(Put::long)) >> [INFO] [stderr] 960 | | _zeroes: mon_ifeq!(version, H3MVersion::RoE, mon_value!(()), mon_value!((), [0u8; 4], mon_tag!([0u8; 4]))) >> [INFO] [stderr] ... | [INFO] [stderr] 963 | | (H3MAvailableHeroes { ref mask, ref mask_ext, ref settings }) [INFO] [stderr] 964 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:1226:55 [INFO] [stderr] | [INFO] [stderr] 1226 | true => map!(count_fixed!(u8, Eat::byte, 12), |m| H3MBuildings::Custom(m)) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MBuildings::Custom` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:1227:34 [INFO] [stderr] | [INFO] [stderr] 1227 | false => map!(Eat::flag, |f| H3MBuildings::Fort(f)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MBuildings::Fort` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:1283:30 [INFO] [stderr] | [INFO] [stderr] 1283 | _ => map!(Eat::long, |t| H3MDwellingFaction::SameAsTown(t)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MDwellingFaction::SameAsTown` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:96:46 [INFO] [stderr] | [INFO] [stderr] 96 | 1u8 => map!($submac!($($args)*), |x| Some(x)) | [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] ... [INFO] [stderr] 1303 | / w_named_args!(msg_guards(version: H3MVersion), do_parse!( [INFO] [stderr] 1304 | | message: call!(Eat::string) >> [INFO] [stderr] 1305 | | guards: option!(call!(Eat::creatures, version)) >> [INFO] [stderr] 1306 | | _zeroes: tag!([0u8; 4]) >> [INFO] [stderr] 1307 | | (H3MMessageAndGuards { message, guards }) [INFO] [stderr] 1308 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:96:46 [INFO] [stderr] | [INFO] [stderr] 96 | 1u8 => map!($submac!($($args)*), |x| Some(x)) | [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] ... [INFO] [stderr] 1066 | / w_named!(hero_customization, do_parse!( [INFO] [stderr] 1067 | | exp: option!(Eat::long) >> [INFO] [stderr] 1068 | | skills: option!(length_count!(Eat::long, tuple!(Eat::skill, Eat::skill_level))) >> [INFO] [stderr] 1069 | | equipment: option!(call!(Eat::hero_equipment, H3MVersion::SoD)) >> [INFO] [stderr] ... | [INFO] [stderr] 1076 | | }) [INFO] [stderr] 1077 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:96:46 [INFO] [stderr] | [INFO] [stderr] 96 | 1u8 => map!($submac!($($args)*), |x| Some(x)) | [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] ... [INFO] [stderr] 1066 | / w_named!(hero_customization, do_parse!( [INFO] [stderr] 1067 | | exp: option!(Eat::long) >> [INFO] [stderr] 1068 | | skills: option!(length_count!(Eat::long, tuple!(Eat::skill, Eat::skill_level))) >> [INFO] [stderr] 1069 | | equipment: option!(call!(Eat::hero_equipment, H3MVersion::SoD)) >> [INFO] [stderr] ... | [INFO] [stderr] 1076 | | }) [INFO] [stderr] 1077 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:96:46 [INFO] [stderr] | [INFO] [stderr] 96 | 1u8 => map!($submac!($($args)*), |x| Some(x)) | [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] ... [INFO] [stderr] 1066 | / w_named!(hero_customization, do_parse!( [INFO] [stderr] 1067 | | exp: option!(Eat::long) >> [INFO] [stderr] 1068 | | skills: option!(length_count!(Eat::long, tuple!(Eat::skill, Eat::skill_level))) >> [INFO] [stderr] 1069 | | equipment: option!(call!(Eat::hero_equipment, H3MVersion::SoD)) >> [INFO] [stderr] ... | [INFO] [stderr] 1076 | | }) [INFO] [stderr] 1077 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:1322:105 [INFO] [stderr] | [INFO] [stderr] 1322 | map!(count_fixed!((H3MCreature, u16), tuple!(call!(Eat::creature, version), call!(Eat::short)), 7), |cs| H3MCreatures(cs)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MCreatures` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:96:46 [INFO] [stderr] | [INFO] [stderr] 96 | 1u8 => map!($submac!($($args)*), |x| Some(x)) | [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] ... [INFO] [stderr] 1066 | / w_named!(hero_customization, do_parse!( [INFO] [stderr] 1067 | | exp: option!(Eat::long) >> [INFO] [stderr] 1068 | | skills: option!(length_count!(Eat::long, tuple!(Eat::skill, Eat::skill_level))) >> [INFO] [stderr] 1069 | | equipment: option!(call!(Eat::hero_equipment, H3MVersion::SoD)) >> [INFO] [stderr] ... | [INFO] [stderr] 1076 | | }) [INFO] [stderr] 1077 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:96:46 [INFO] [stderr] | [INFO] [stderr] 96 | 1u8 => map!($submac!($($args)*), |x| Some(x)) | [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] ... [INFO] [stderr] 1066 | / w_named!(hero_customization, do_parse!( [INFO] [stderr] 1067 | | exp: option!(Eat::long) >> [INFO] [stderr] 1068 | | skills: option!(length_count!(Eat::long, tuple!(Eat::skill, Eat::skill_level))) >> [INFO] [stderr] 1069 | | equipment: option!(call!(Eat::hero_equipment, H3MVersion::SoD)) >> [INFO] [stderr] ... | [INFO] [stderr] 1076 | | }) [INFO] [stderr] 1077 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:1348:32 [INFO] [stderr] | [INFO] [stderr] 1348 | 1u8 => map!(Eat::long, |x| H3MReward::Exp(x)) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MReward::Exp` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:96:46 [INFO] [stderr] | [INFO] [stderr] 96 | 1u8 => map!($submac!($($args)*), |x| Some(x)) | [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] ... [INFO] [stderr] 1066 | / w_named!(hero_customization, do_parse!( [INFO] [stderr] 1067 | | exp: option!(Eat::long) >> [INFO] [stderr] 1068 | | skills: option!(length_count!(Eat::long, tuple!(Eat::skill, Eat::skill_level))) >> [INFO] [stderr] 1069 | | equipment: option!(call!(Eat::hero_equipment, H3MVersion::SoD)) >> [INFO] [stderr] ... | [INFO] [stderr] 1076 | | }) [INFO] [stderr] 1077 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:1349:32 [INFO] [stderr] | [INFO] [stderr] 1349 | 2u8 => map!(Eat::long, |x| H3MReward::SpellPoints(x)) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MReward::SpellPoints` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:1350:36 [INFO] [stderr] | [INFO] [stderr] 1350 | 3u8 => map!(Eat::modifier, |m| H3MReward::Morale(m)) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MReward::Morale` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:1351:36 [INFO] [stderr] | [INFO] [stderr] 1351 | 4u8 => map!(Eat::modifier, |m| H3MReward::Luck(m)) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MReward::Luck` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:1355:52 [INFO] [stderr] | [INFO] [stderr] 1355 | 8u8 => map!(call!(Eat::artifact, version), |a| H3MReward::Artifact(a)) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MReward::Artifact` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:1356:33 [INFO] [stderr] | [INFO] [stderr] 1356 | 9u8 => map!(Eat::spell, |s| H3MReward::Spell(s)) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MReward::Spell` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:1396:32 [INFO] [stderr] | [INFO] [stderr] 1396 | 1u8 => map!(Eat::long, |x| H3MQuestObjective::Level(x)) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MQuestObjective::Level` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:1397:73 [INFO] [stderr] | [INFO] [stderr] 1397 | 2u8 => map!(tuple!(Eat::byte, Eat::byte, Eat::byte, Eat::byte), |x| H3MQuestObjective::Stats(x)) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MQuestObjective::Stats` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:1398:32 [INFO] [stderr] | [INFO] [stderr] 1398 | 3u8 => map!(Eat::long, |x| H3MQuestObjective::DefeatHero(x)) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MQuestObjective::DefeatHero` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:1399:32 [INFO] [stderr] | [INFO] [stderr] 1399 | 4u8 => map!(Eat::long, |x| H3MQuestObjective::DefeatMonster(x)) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MQuestObjective::DefeatMonster` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:1400:63 [INFO] [stderr] | [INFO] [stderr] 1400 | 5u8 => map!(length_count!(Eat::byte, Eat::artifact2), |x| H3MQuestObjective::Artifacts(x)) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MQuestObjective::Artifacts` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:1401:83 [INFO] [stderr] | [INFO] [stderr] 1401 | 6u8 => map!(length_count!(Eat::byte, tuple!(Eat::creature2, Eat::short)), |x| H3MQuestObjective::Creatures(x)) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MQuestObjective::Creatures` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:1226:55 [INFO] [stderr] | [INFO] [stderr] 1226 | true => map!(count_fixed!(u8, Eat::byte, 12), |m| H3MBuildings::Custom(m)) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MBuildings::Custom` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:1227:34 [INFO] [stderr] | [INFO] [stderr] 1227 | false => map!(Eat::flag, |f| H3MBuildings::Fort(f)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MBuildings::Fort` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:1402:37 [INFO] [stderr] | [INFO] [stderr] 1402 | 7u8 => map!(Eat::resources, |x| H3MQuestObjective::Resources(x)) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MQuestObjective::Resources` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:1403:32 [INFO] [stderr] | [INFO] [stderr] 1403 | 8u8 => map!(Eat::byte, |x| H3MQuestObjective::Hero(x)) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MQuestObjective::Hero` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:1404:33 [INFO] [stderr] | [INFO] [stderr] 1404 | 9u8 => map!(Eat::color, |x| H3MQuestObjective::Color(x)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MQuestObjective::Color` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:1283:30 [INFO] [stderr] | [INFO] [stderr] 1283 | _ => map!(Eat::long, |t| H3MDwellingFaction::SameAsTown(t)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MDwellingFaction::SameAsTown` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:96:46 [INFO] [stderr] | [INFO] [stderr] 96 | 1u8 => map!($submac!($($args)*), |x| Some(x)) | [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] ... [INFO] [stderr] 1303 | / w_named_args!(msg_guards(version: H3MVersion), do_parse!( [INFO] [stderr] 1304 | | message: call!(Eat::string) >> [INFO] [stderr] 1305 | | guards: option!(call!(Eat::creatures, version)) >> [INFO] [stderr] 1306 | | _zeroes: tag!([0u8; 4]) >> [INFO] [stderr] 1307 | | (H3MMessageAndGuards { message, guards }) [INFO] [stderr] 1308 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:1447:9 [INFO] [stderr] | [INFO] [stderr] 1447 | / if let &H3MQuest { [INFO] [stderr] 1448 | | objective: H3MQuestObjective::Artifacts(ref arts), [INFO] [stderr] 1449 | | deadline: 0xFFFFFFFF, [INFO] [stderr] 1450 | | .. [INFO] [stderr] ... | [INFO] [stderr] 1455 | | } else { false } [INFO] [stderr] 1456 | | } else { false } [INFO] [stderr] | |________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 1447 | if let H3MQuest { [INFO] [stderr] 1448 | objective: H3MQuestObjective::Artifacts(ref arts), [INFO] [stderr] 1449 | deadline: 0xFFFFFFFF, [INFO] [stderr] 1450 | .. [INFO] [stderr] 1451 | } = *v { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:1322:105 [INFO] [stderr] | [INFO] [stderr] 1322 | map!(count_fixed!((H3MCreature, u16), tuple!(call!(Eat::creature, version), call!(Eat::short)), 7), |cs| H3MCreatures(cs)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MCreatures` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:96:46 [INFO] [stderr] | [INFO] [stderr] 96 | 1u8 => map!($submac!($($args)*), |x| Some(x)) | [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] ... [INFO] [stderr] 1503 | / w_named_args!(msg_guard_reward(version: H3MVersion), [INFO] [stderr] 1504 | | do_parse!( [INFO] [stderr] 1505 | | guard: option!(call!(Eat::msg_guards, version)) >> [INFO] [stderr] 1506 | | exp: call!(Eat::long) >> [INFO] [stderr] ... | [INFO] [stderr] 1521 | | ) [INFO] [stderr] 1522 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:1348:32 [INFO] [stderr] | [INFO] [stderr] 1348 | 1u8 => map!(Eat::long, |x| H3MReward::Exp(x)) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MReward::Exp` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:1349:32 [INFO] [stderr] | [INFO] [stderr] 1349 | 2u8 => map!(Eat::long, |x| H3MReward::SpellPoints(x)) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MReward::SpellPoints` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:1350:36 [INFO] [stderr] | [INFO] [stderr] 1350 | 3u8 => map!(Eat::modifier, |m| H3MReward::Morale(m)) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MReward::Morale` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:1351:36 [INFO] [stderr] | [INFO] [stderr] 1351 | 4u8 => map!(Eat::modifier, |m| H3MReward::Luck(m)) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MReward::Luck` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:1355:52 [INFO] [stderr] | [INFO] [stderr] 1355 | 8u8 => map!(call!(Eat::artifact, version), |a| H3MReward::Artifact(a)) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MReward::Artifact` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:1356:33 [INFO] [stderr] | [INFO] [stderr] 1356 | 9u8 => map!(Eat::spell, |s| H3MReward::Spell(s)) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MReward::Spell` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: large size difference between variants [INFO] [stderr] --> src/main.rs:1548:5 [INFO] [stderr] | [INFO] [stderr] 1548 | / Hero { [INFO] [stderr] 1549 | | id: u32, // AB/SoD [INFO] [stderr] 1550 | | owner: H3MColor, [INFO] [stderr] 1551 | | hero_type: u8, [INFO] [stderr] ... | [INFO] [stderr] 1563 | | stats: Option<(u8, u8, u8, u8)>, // SoD [INFO] [stderr] 1564 | | }, [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::large_enum_variant)] on by default [INFO] [stderr] help: consider boxing the large fields to reduce the total size of the enum [INFO] [stderr] --> src/main.rs:1548:5 [INFO] [stderr] | [INFO] [stderr] 1548 | / Hero { [INFO] [stderr] 1549 | | id: u32, // AB/SoD [INFO] [stderr] 1550 | | owner: H3MColor, [INFO] [stderr] 1551 | | hero_type: u8, [INFO] [stderr] ... | [INFO] [stderr] 1563 | | stats: Option<(u8, u8, u8, u8)>, // SoD [INFO] [stderr] 1564 | | }, [INFO] [stderr] | |_____^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:1396:32 [INFO] [stderr] | [INFO] [stderr] 1396 | 1u8 => map!(Eat::long, |x| H3MQuestObjective::Level(x)) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MQuestObjective::Level` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:1397:73 [INFO] [stderr] | [INFO] [stderr] 1397 | 2u8 => map!(tuple!(Eat::byte, Eat::byte, Eat::byte, Eat::byte), |x| H3MQuestObjective::Stats(x)) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MQuestObjective::Stats` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:1398:32 [INFO] [stderr] | [INFO] [stderr] 1398 | 3u8 => map!(Eat::long, |x| H3MQuestObjective::DefeatHero(x)) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MQuestObjective::DefeatHero` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:1399:32 [INFO] [stderr] | [INFO] [stderr] 1399 | 4u8 => map!(Eat::long, |x| H3MQuestObjective::DefeatMonster(x)) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MQuestObjective::DefeatMonster` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:1400:63 [INFO] [stderr] | [INFO] [stderr] 1400 | 5u8 => map!(length_count!(Eat::byte, Eat::artifact2), |x| H3MQuestObjective::Artifacts(x)) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MQuestObjective::Artifacts` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:1401:83 [INFO] [stderr] | [INFO] [stderr] 1401 | 6u8 => map!(length_count!(Eat::byte, tuple!(Eat::creature2, Eat::short)), |x| H3MQuestObjective::Creatures(x)) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MQuestObjective::Creatures` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:1402:37 [INFO] [stderr] | [INFO] [stderr] 1402 | 7u8 => map!(Eat::resources, |x| H3MQuestObjective::Resources(x)) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MQuestObjective::Resources` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:1403:32 [INFO] [stderr] | [INFO] [stderr] 1403 | 8u8 => map!(Eat::byte, |x| H3MQuestObjective::Hero(x)) | [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MQuestObjective::Hero` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:1404:33 [INFO] [stderr] | [INFO] [stderr] 1404 | 9u8 => map!(Eat::color, |x| H3MQuestObjective::Color(x)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `H3MQuestObjective::Color` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:1447:9 [INFO] [stderr] | [INFO] [stderr] 1447 | / if let &H3MQuest { [INFO] [stderr] 1448 | | objective: H3MQuestObjective::Artifacts(ref arts), [INFO] [stderr] 1449 | | deadline: 0xFFFFFFFF, [INFO] [stderr] 1450 | | .. [INFO] [stderr] ... | [INFO] [stderr] 1455 | | } else { false } [INFO] [stderr] 1456 | | } else { false } [INFO] [stderr] | |________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 1447 | if let H3MQuest { [INFO] [stderr] 1448 | objective: H3MQuestObjective::Artifacts(ref arts), [INFO] [stderr] 1449 | deadline: 0xFFFFFFFF, [INFO] [stderr] 1450 | .. [INFO] [stderr] 1451 | } = *v { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:96:46 [INFO] [stderr] | [INFO] [stderr] 96 | 1u8 => map!($submac!($($args)*), |x| Some(x)) | [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] ... [INFO] [stderr] 1607 | / w_named_args!(obj_hero(version: H3MVersion), do_parse!( [INFO] [stderr] 1608 | | id: ifeq!(version, H3MVersion::RoE, value!(0xFFFFFFFF), call!(Eat::long)) >> [INFO] [stderr] 1609 | | owner: call!(Eat::color) >> [INFO] [stderr] 1610 | | hero_type: call!(Eat::byte) >> [INFO] [stderr] ... | [INFO] [stderr] 1632 | | }) [INFO] [stderr] 1633 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:96:46 [INFO] [stderr] | [INFO] [stderr] 96 | 1u8 => map!($submac!($($args)*), |x| Some(x)) | [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] ... [INFO] [stderr] 1503 | / w_named_args!(msg_guard_reward(version: H3MVersion), [INFO] [stderr] 1504 | | do_parse!( [INFO] [stderr] 1505 | | guard: option!(call!(Eat::msg_guards, version)) >> [INFO] [stderr] 1506 | | exp: call!(Eat::long) >> [INFO] [stderr] ... | [INFO] [stderr] 1521 | | ) [INFO] [stderr] 1522 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:96:46 [INFO] [stderr] | [INFO] [stderr] 96 | 1u8 => map!($submac!($($args)*), |x| Some(x)) | [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] ... [INFO] [stderr] 1607 | / w_named_args!(obj_hero(version: H3MVersion), do_parse!( [INFO] [stderr] 1608 | | id: ifeq!(version, H3MVersion::RoE, value!(0xFFFFFFFF), call!(Eat::long)) >> [INFO] [stderr] 1609 | | owner: call!(Eat::color) >> [INFO] [stderr] 1610 | | hero_type: call!(Eat::byte) >> [INFO] [stderr] ... | [INFO] [stderr] 1632 | | }) [INFO] [stderr] 1633 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:1612:40 [INFO] [stderr] | [INFO] [stderr] 1612 | exp: sod!(version, map!(Eat::long, |x| Some(x)), option!(Eat::long)) >> [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:96:46 [INFO] [stderr] | [INFO] [stderr] 96 | 1u8 => map!($submac!($($args)*), |x| Some(x)) | [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] ... [INFO] [stderr] 1607 | / w_named_args!(obj_hero(version: H3MVersion), do_parse!( [INFO] [stderr] 1608 | | id: ifeq!(version, H3MVersion::RoE, value!(0xFFFFFFFF), call!(Eat::long)) >> [INFO] [stderr] 1609 | | owner: call!(Eat::color) >> [INFO] [stderr] 1610 | | hero_type: call!(Eat::byte) >> [INFO] [stderr] ... | [INFO] [stderr] 1632 | | }) [INFO] [stderr] 1633 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:96:46 [INFO] [stderr] | [INFO] [stderr] 96 | 1u8 => map!($submac!($($args)*), |x| Some(x)) | [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] ... [INFO] [stderr] 1607 | / w_named_args!(obj_hero(version: H3MVersion), do_parse!( [INFO] [stderr] 1608 | | id: ifeq!(version, H3MVersion::RoE, value!(0xFFFFFFFF), call!(Eat::long)) >> [INFO] [stderr] 1609 | | owner: call!(Eat::color) >> [INFO] [stderr] 1610 | | hero_type: call!(Eat::byte) >> [INFO] [stderr] ... | [INFO] [stderr] 1632 | | }) [INFO] [stderr] 1633 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:96:46 [INFO] [stderr] | [INFO] [stderr] 96 | 1u8 => map!($submac!($($args)*), |x| Some(x)) | [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] ... [INFO] [stderr] 1607 | / w_named_args!(obj_hero(version: H3MVersion), do_parse!( [INFO] [stderr] 1608 | | id: ifeq!(version, H3MVersion::RoE, value!(0xFFFFFFFF), call!(Eat::long)) >> [INFO] [stderr] 1609 | | owner: call!(Eat::color) >> [INFO] [stderr] 1610 | | hero_type: call!(Eat::byte) >> [INFO] [stderr] ... | [INFO] [stderr] 1632 | | }) [INFO] [stderr] 1633 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:96:46 [INFO] [stderr] | [INFO] [stderr] 96 | 1u8 => map!($submac!($($args)*), |x| Some(x)) | [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] ... [INFO] [stderr] 1607 | / w_named_args!(obj_hero(version: H3MVersion), do_parse!( [INFO] [stderr] 1608 | | id: ifeq!(version, H3MVersion::RoE, value!(0xFFFFFFFF), call!(Eat::long)) >> [INFO] [stderr] 1609 | | owner: call!(Eat::color) >> [INFO] [stderr] 1610 | | hero_type: call!(Eat::byte) >> [INFO] [stderr] ... | [INFO] [stderr] 1632 | | }) [INFO] [stderr] 1633 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:96:46 [INFO] [stderr] | [INFO] [stderr] 96 | 1u8 => map!($submac!($($args)*), |x| Some(x)) | [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] ... [INFO] [stderr] 1607 | / w_named_args!(obj_hero(version: H3MVersion), do_parse!( [INFO] [stderr] 1608 | | id: ifeq!(version, H3MVersion::RoE, value!(0xFFFFFFFF), call!(Eat::long)) >> [INFO] [stderr] 1609 | | owner: call!(Eat::color) >> [INFO] [stderr] 1610 | | hero_type: call!(Eat::byte) >> [INFO] [stderr] ... | [INFO] [stderr] 1632 | | }) [INFO] [stderr] 1633 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: large size difference between variants [INFO] [stderr] --> src/main.rs:1548:5 [INFO] [stderr] | [INFO] [stderr] 1548 | / Hero { [INFO] [stderr] 1549 | | id: u32, // AB/SoD [INFO] [stderr] 1550 | | owner: H3MColor, [INFO] [stderr] 1551 | | hero_type: u8, [INFO] [stderr] ... | [INFO] [stderr] 1563 | | stats: Option<(u8, u8, u8, u8)>, // SoD [INFO] [stderr] 1564 | | }, [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::large_enum_variant)] on by default [INFO] [stderr] help: consider boxing the large fields to reduce the total size of the enum [INFO] [stderr] --> src/main.rs:1548:5 [INFO] [stderr] | [INFO] [stderr] 1548 | / Hero { [INFO] [stderr] 1549 | | id: u32, // AB/SoD [INFO] [stderr] 1550 | | owner: H3MColor, [INFO] [stderr] 1551 | | hero_type: u8, [INFO] [stderr] ... | [INFO] [stderr] 1563 | | stats: Option<(u8, u8, u8, u8)>, // SoD [INFO] [stderr] 1564 | | }, [INFO] [stderr] | |_____^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:96:46 [INFO] [stderr] | [INFO] [stderr] 96 | 1u8 => map!($submac!($($args)*), |x| Some(x)) | [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] ... [INFO] [stderr] 1607 | / w_named_args!(obj_hero(version: H3MVersion), do_parse!( [INFO] [stderr] 1608 | | id: ifeq!(version, H3MVersion::RoE, value!(0xFFFFFFFF), call!(Eat::long)) >> [INFO] [stderr] 1609 | | owner: call!(Eat::color) >> [INFO] [stderr] 1610 | | hero_type: call!(Eat::byte) >> [INFO] [stderr] ... | [INFO] [stderr] 1632 | | }) [INFO] [stderr] 1633 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:96:46 [INFO] [stderr] | [INFO] [stderr] 96 | 1u8 => map!($submac!($($args)*), |x| Some(x)) | [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] ... [INFO] [stderr] 1607 | / w_named_args!(obj_hero(version: H3MVersion), do_parse!( [INFO] [stderr] 1608 | | id: ifeq!(version, H3MVersion::RoE, value!(0xFFFFFFFF), call!(Eat::long)) >> [INFO] [stderr] 1609 | | owner: call!(Eat::color) >> [INFO] [stderr] 1610 | | hero_type: call!(Eat::byte) >> [INFO] [stderr] ... | [INFO] [stderr] 1632 | | }) [INFO] [stderr] 1633 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:96:46 [INFO] [stderr] | [INFO] [stderr] 96 | 1u8 => map!($submac!($($args)*), |x| Some(x)) | [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] ... [INFO] [stderr] 1607 | / w_named_args!(obj_hero(version: H3MVersion), do_parse!( [INFO] [stderr] 1608 | | id: ifeq!(version, H3MVersion::RoE, value!(0xFFFFFFFF), call!(Eat::long)) >> [INFO] [stderr] 1609 | | owner: call!(Eat::color) >> [INFO] [stderr] 1610 | | hero_type: call!(Eat::byte) >> [INFO] [stderr] ... | [INFO] [stderr] 1632 | | }) [INFO] [stderr] 1633 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:96:46 [INFO] [stderr] | [INFO] [stderr] 96 | 1u8 => map!($submac!($($args)*), |x| Some(x)) | [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] ... [INFO] [stderr] 1607 | / w_named_args!(obj_hero(version: H3MVersion), do_parse!( [INFO] [stderr] 1608 | | id: ifeq!(version, H3MVersion::RoE, value!(0xFFFFFFFF), call!(Eat::long)) >> [INFO] [stderr] 1609 | | owner: call!(Eat::color) >> [INFO] [stderr] 1610 | | hero_type: call!(Eat::byte) >> [INFO] [stderr] ... | [INFO] [stderr] 1632 | | }) [INFO] [stderr] 1633 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:1612:40 [INFO] [stderr] | [INFO] [stderr] 1612 | exp: sod!(version, map!(Eat::long, |x| Some(x)), option!(Eat::long)) >> [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:96:46 [INFO] [stderr] | [INFO] [stderr] 96 | 1u8 => map!($submac!($($args)*), |x| Some(x)) | [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] ... [INFO] [stderr] 1607 | / w_named_args!(obj_hero(version: H3MVersion), do_parse!( [INFO] [stderr] 1608 | | id: ifeq!(version, H3MVersion::RoE, value!(0xFFFFFFFF), call!(Eat::long)) >> [INFO] [stderr] 1609 | | owner: call!(Eat::color) >> [INFO] [stderr] 1610 | | hero_type: call!(Eat::byte) >> [INFO] [stderr] ... | [INFO] [stderr] 1632 | | }) [INFO] [stderr] 1633 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:96:46 [INFO] [stderr] | [INFO] [stderr] 96 | 1u8 => map!($submac!($($args)*), |x| Some(x)) | [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] ... [INFO] [stderr] 1607 | / w_named_args!(obj_hero(version: H3MVersion), do_parse!( [INFO] [stderr] 1608 | | id: ifeq!(version, H3MVersion::RoE, value!(0xFFFFFFFF), call!(Eat::long)) >> [INFO] [stderr] 1609 | | owner: call!(Eat::color) >> [INFO] [stderr] 1610 | | hero_type: call!(Eat::byte) >> [INFO] [stderr] ... | [INFO] [stderr] 1632 | | }) [INFO] [stderr] 1633 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:96:46 [INFO] [stderr] | [INFO] [stderr] 96 | 1u8 => map!($submac!($($args)*), |x| Some(x)) | [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] ... [INFO] [stderr] 1607 | / w_named_args!(obj_hero(version: H3MVersion), do_parse!( [INFO] [stderr] 1608 | | id: ifeq!(version, H3MVersion::RoE, value!(0xFFFFFFFF), call!(Eat::long)) >> [INFO] [stderr] 1609 | | owner: call!(Eat::color) >> [INFO] [stderr] 1610 | | hero_type: call!(Eat::byte) >> [INFO] [stderr] ... | [INFO] [stderr] 1632 | | }) [INFO] [stderr] 1633 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:96:46 [INFO] [stderr] | [INFO] [stderr] 96 | 1u8 => map!($submac!($($args)*), |x| Some(x)) | [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] ... [INFO] [stderr] 1607 | / w_named_args!(obj_hero(version: H3MVersion), do_parse!( [INFO] [stderr] 1608 | | id: ifeq!(version, H3MVersion::RoE, value!(0xFFFFFFFF), call!(Eat::long)) >> [INFO] [stderr] 1609 | | owner: call!(Eat::color) >> [INFO] [stderr] 1610 | | hero_type: call!(Eat::byte) >> [INFO] [stderr] ... | [INFO] [stderr] 1632 | | }) [INFO] [stderr] 1633 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:96:46 [INFO] [stderr] | [INFO] [stderr] 96 | 1u8 => map!($submac!($($args)*), |x| Some(x)) | [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] ... [INFO] [stderr] 1663 | / w_named_args!(obj_monster(version: H3MVersion), do_parse!( [INFO] [stderr] 1664 | | id: ifeq!(version, H3MVersion::RoE, value!(0xFFFFFFFF), call!(Eat::long)) >> [INFO] [stderr] 1665 | | quantity: alt!( [INFO] [stderr] 1666 | | tag!([0u8; 2]) => { |_| H3MQuantity::Random } | [INFO] [stderr] ... | [INFO] [stderr] 1676 | | }) [INFO] [stderr] 1677 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:96:46 [INFO] [stderr] | [INFO] [stderr] 96 | 1u8 => map!($submac!($($args)*), |x| Some(x)) | [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] ... [INFO] [stderr] 1607 | / w_named_args!(obj_hero(version: H3MVersion), do_parse!( [INFO] [stderr] 1608 | | id: ifeq!(version, H3MVersion::RoE, value!(0xFFFFFFFF), call!(Eat::long)) >> [INFO] [stderr] 1609 | | owner: call!(Eat::color) >> [INFO] [stderr] 1610 | | hero_type: call!(Eat::byte) >> [INFO] [stderr] ... | [INFO] [stderr] 1632 | | }) [INFO] [stderr] 1633 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:96:46 [INFO] [stderr] | [INFO] [stderr] 96 | 1u8 => map!($submac!($($args)*), |x| Some(x)) | [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] ... [INFO] [stderr] 1607 | / w_named_args!(obj_hero(version: H3MVersion), do_parse!( [INFO] [stderr] 1608 | | id: ifeq!(version, H3MVersion::RoE, value!(0xFFFFFFFF), call!(Eat::long)) >> [INFO] [stderr] 1609 | | owner: call!(Eat::color) >> [INFO] [stderr] 1610 | | hero_type: call!(Eat::byte) >> [INFO] [stderr] ... | [INFO] [stderr] 1632 | | }) [INFO] [stderr] 1633 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:96:46 [INFO] [stderr] | [INFO] [stderr] 96 | 1u8 => map!($submac!($($args)*), |x| Some(x)) | [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] ... [INFO] [stderr] 1695 | / w_named_args!(obj_town(version: H3MVersion), do_parse!( [INFO] [stderr] 1696 | | id: ifeq!(version, H3MVersion::RoE, value!(0xFFFFFFFF), call!(Eat::long)) >> [INFO] [stderr] 1697 | | owner: call!(Eat::color) >> [INFO] [stderr] 1698 | | name: option!(Eat::string) >> [INFO] [stderr] ... | [INFO] [stderr] 1710 | | }) [INFO] [stderr] 1711 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:96:46 [INFO] [stderr] | [INFO] [stderr] 96 | 1u8 => map!($submac!($($args)*), |x| Some(x)) | [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] ... [INFO] [stderr] 1607 | / w_named_args!(obj_hero(version: H3MVersion), do_parse!( [INFO] [stderr] 1608 | | id: ifeq!(version, H3MVersion::RoE, value!(0xFFFFFFFF), call!(Eat::long)) >> [INFO] [stderr] 1609 | | owner: call!(Eat::color) >> [INFO] [stderr] 1610 | | hero_type: call!(Eat::byte) >> [INFO] [stderr] ... | [INFO] [stderr] 1632 | | }) [INFO] [stderr] 1633 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:96:46 [INFO] [stderr] | [INFO] [stderr] 96 | 1u8 => map!($submac!($($args)*), |x| Some(x)) | [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] ... [INFO] [stderr] 1695 | / w_named_args!(obj_town(version: H3MVersion), do_parse!( [INFO] [stderr] 1696 | | id: ifeq!(version, H3MVersion::RoE, value!(0xFFFFFFFF), call!(Eat::long)) >> [INFO] [stderr] 1697 | | owner: call!(Eat::color) >> [INFO] [stderr] 1698 | | name: option!(Eat::string) >> [INFO] [stderr] ... | [INFO] [stderr] 1710 | | }) [INFO] [stderr] 1711 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:1734:51 [INFO] [stderr] | [INFO] [stderr] 1734 | power_rating: ifeq!(id, 0xFF, map!(Eat::byte, |x| Some(x)), value!(None)) >> [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:132:9 [INFO] [stderr] | [INFO] [stderr] 132 | / match $c { [INFO] [stderr] 133 | | $t => $thn!($o, $v, $($targs)*), [INFO] [stderr] 134 | | _ => $els!($o, $v, $($eargs)*), [INFO] [stderr] 135 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1739 | / mon_named_args!(obj_placeholder(_v: H3MVersion), mon_do_parse!( [INFO] [stderr] 1740 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1741 | | id: mon_call!(Put::byte) >> [INFO] [stderr] 1742 | | power_rating: mon_ifeq!(id, &0xFF, mon_map!(Put::byte, |x| Some(ref x)), mon_value!(None)) >> [INFO] [stderr] ... | [INFO] [stderr] 1745 | | }) [INFO] [stderr] 1746 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:96:46 [INFO] [stderr] | [INFO] [stderr] 96 | 1u8 => map!($submac!($($args)*), |x| Some(x)) | [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] ... [INFO] [stderr] 1663 | / w_named_args!(obj_monster(version: H3MVersion), do_parse!( [INFO] [stderr] 1664 | | id: ifeq!(version, H3MVersion::RoE, value!(0xFFFFFFFF), call!(Eat::long)) >> [INFO] [stderr] 1665 | | quantity: alt!( [INFO] [stderr] 1666 | | tag!([0u8; 2]) => { |_| H3MQuantity::Random } | [INFO] [stderr] ... | [INFO] [stderr] 1676 | | }) [INFO] [stderr] 1677 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:96:46 [INFO] [stderr] | [INFO] [stderr] 96 | 1u8 => map!($submac!($($args)*), |x| Some(x)) | [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] ... [INFO] [stderr] 1695 | / w_named_args!(obj_town(version: H3MVersion), do_parse!( [INFO] [stderr] 1696 | | id: ifeq!(version, H3MVersion::RoE, value!(0xFFFFFFFF), call!(Eat::long)) >> [INFO] [stderr] 1697 | | owner: call!(Eat::color) >> [INFO] [stderr] 1698 | | name: option!(Eat::string) >> [INFO] [stderr] ... | [INFO] [stderr] 1710 | | }) [INFO] [stderr] 1711 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:96:46 [INFO] [stderr] | [INFO] [stderr] 96 | 1u8 => map!($submac!($($args)*), |x| Some(x)) | [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] ... [INFO] [stderr] 1695 | / w_named_args!(obj_town(version: H3MVersion), do_parse!( [INFO] [stderr] 1696 | | id: ifeq!(version, H3MVersion::RoE, value!(0xFFFFFFFF), call!(Eat::long)) >> [INFO] [stderr] 1697 | | owner: call!(Eat::color) >> [INFO] [stderr] 1698 | | name: option!(Eat::string) >> [INFO] [stderr] ... | [INFO] [stderr] 1710 | | }) [INFO] [stderr] 1711 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:96:46 [INFO] [stderr] | [INFO] [stderr] 96 | 1u8 => map!($submac!($($args)*), |x| Some(x)) | [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] ... [INFO] [stderr] 1800 | / w_named_args!(obj_resource(version: H3MVersion), do_parse!( [INFO] [stderr] 1801 | | guard: option!(call!(Eat::msg_guards, version)) >> [INFO] [stderr] 1802 | | amount: call!(Eat::long) >> [INFO] [stderr] 1803 | | _zeroes: tag!([0u8; 4]) >> [INFO] [stderr] 1804 | | (H3MObjectProperties::Resource { guard, amount }) [INFO] [stderr] 1805 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:1734:51 [INFO] [stderr] | [INFO] [stderr] 1734 | power_rating: ifeq!(id, 0xFF, map!(Eat::byte, |x| Some(x)), value!(None)) >> [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:96:46 [INFO] [stderr] | [INFO] [stderr] 96 | 1u8 => map!($submac!($($args)*), |x| Some(x)) | [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] ... [INFO] [stderr] 1813 | / w_named_args!(obj_artifact(version: H3MVersion), [INFO] [stderr] 1814 | | map!(option!(call!(Eat::msg_guards, version)), |guard| H3MObjectProperties::Artifact { guard }) [INFO] [stderr] 1815 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:132:9 [INFO] [stderr] | [INFO] [stderr] 132 | / match $c { [INFO] [stderr] 133 | | $t => $thn!($o, $v, $($targs)*), [INFO] [stderr] 134 | | _ => $els!($o, $v, $($eargs)*), [INFO] [stderr] 135 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 1739 | / mon_named_args!(obj_placeholder(_v: H3MVersion), mon_do_parse!( [INFO] [stderr] 1740 | | owner: mon_call!(Put::color) >> [INFO] [stderr] 1741 | | id: mon_call!(Put::byte) >> [INFO] [stderr] 1742 | | power_rating: mon_ifeq!(id, &0xFF, mon_map!(Put::byte, |x| Some(ref x)), mon_value!(None)) >> [INFO] [stderr] ... | [INFO] [stderr] 1745 | | }) [INFO] [stderr] 1746 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:96:46 [INFO] [stderr] | [INFO] [stderr] 96 | 1u8 => map!($submac!($($args)*), |x| Some(x)) | [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] ... [INFO] [stderr] 1820 | / w_named_args!(obj_scroll(version: H3MVersion), [INFO] [stderr] 1821 | | do_parse!( [INFO] [stderr] 1822 | | guard: option!(call!(Eat::msg_guards, version)) >> [INFO] [stderr] 1823 | | spell: call!(Eat::spell) >> [INFO] [stderr] ... | [INFO] [stderr] 1826 | | ) [INFO] [stderr] 1827 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:96:46 [INFO] [stderr] | [INFO] [stderr] 96 | 1u8 => map!($submac!($($args)*), |x| Some(x)) | [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] ... [INFO] [stderr] 1800 | / w_named_args!(obj_resource(version: H3MVersion), do_parse!( [INFO] [stderr] 1801 | | guard: option!(call!(Eat::msg_guards, version)) >> [INFO] [stderr] 1802 | | amount: call!(Eat::long) >> [INFO] [stderr] 1803 | | _zeroes: tag!([0u8; 4]) >> [INFO] [stderr] 1804 | | (H3MObjectProperties::Resource { guard, amount }) [INFO] [stderr] 1805 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:96:46 [INFO] [stderr] | [INFO] [stderr] 96 | 1u8 => map!($submac!($($args)*), |x| Some(x)) | [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] ... [INFO] [stderr] 1813 | / w_named_args!(obj_artifact(version: H3MVersion), [INFO] [stderr] 1814 | | map!(option!(call!(Eat::msg_guards, version)), |guard| H3MObjectProperties::Artifact { guard }) [INFO] [stderr] 1815 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:96:46 [INFO] [stderr] | [INFO] [stderr] 96 | 1u8 => map!($submac!($($args)*), |x| Some(x)) | [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] ... [INFO] [stderr] 1820 | / w_named_args!(obj_scroll(version: H3MVersion), [INFO] [stderr] 1821 | | do_parse!( [INFO] [stderr] 1822 | | guard: option!(call!(Eat::msg_guards, version)) >> [INFO] [stderr] 1823 | | spell: call!(Eat::spell) >> [INFO] [stderr] ... | [INFO] [stderr] 1826 | | ) [INFO] [stderr] 1827 | | ); [INFO] [stderr] | |__- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/main.rs:1982:21 [INFO] [stderr] | [INFO] [stderr] 1982 | fn props_parser(&self, subclass: u32) -> fn (&[u8], H3MVersion) -> nom::IResult<&[u8], H3MObjectProperties> { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/main.rs:2014:21 [INFO] [stderr] | [INFO] [stderr] 2014 | fn props_writer(&self, subclass: u32) -> fn (&mut Vec, &H3MObjectProperties, H3MVersion) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/main.rs:380:9 [INFO] [stderr] | [INFO] [stderr] 380 | / match *$v { [INFO] [stderr] 381 | | $val => true, [INFO] [stderr] 382 | | _ => false, [INFO] [stderr] 383 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 2106 | / mon_named_args!(event(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 2107 | | name: mon_call!(Put::string) >> [INFO] [stderr] 2108 | | text: mon_call!(Put::string) >> [INFO] [stderr] 2109 | | resources: mon_call!(Put::resources) >> [INFO] [stderr] ... | [INFO] [stderr] 2118 | | }) [INFO] [stderr] 2119 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 380 | if *$v { mon_named_args!(event(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 381 | name: mon_call!(Put::string) >> [INFO] [stderr] 382 | text: mon_call!(Put::string) >> [INFO] [stderr] 383 | resources: mon_call!(Put::resources) >> [INFO] [stderr] 384 | unknown1: mon_call!(Put::byte) >> [INFO] [stderr] 385 | unknown2: mon_sod!(version, mon_value!(true), mon_call!(Put::flag)) >> [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/main.rs:1982:21 [INFO] [stderr] | [INFO] [stderr] 1982 | fn props_parser(&self, subclass: u32) -> fn (&[u8], H3MVersion) -> nom::IResult<&[u8], H3MObjectProperties> { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/main.rs:2014:21 [INFO] [stderr] | [INFO] [stderr] 2014 | fn props_writer(&self, subclass: u32) -> fn (&mut Vec, &H3MObjectProperties, H3MVersion) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/main.rs:380:9 [INFO] [stderr] | [INFO] [stderr] 380 | / match *$v { [INFO] [stderr] 381 | | $val => true, [INFO] [stderr] 382 | | _ => false, [INFO] [stderr] 383 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 2106 | / mon_named_args!(event(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 2107 | | name: mon_call!(Put::string) >> [INFO] [stderr] 2108 | | text: mon_call!(Put::string) >> [INFO] [stderr] 2109 | | resources: mon_call!(Put::resources) >> [INFO] [stderr] ... | [INFO] [stderr] 2118 | | }) [INFO] [stderr] 2119 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 380 | if *$v { mon_named_args!(event(version: H3MVersion), mon_do_parse!( [INFO] [stderr] 381 | name: mon_call!(Put::string) >> [INFO] [stderr] 382 | text: mon_call!(Put::string) >> [INFO] [stderr] 383 | resources: mon_call!(Put::resources) >> [INFO] [stderr] 384 | unknown1: mon_call!(Put::byte) >> [INFO] [stderr] 385 | unknown2: mon_sod!(version, mon_value!(true), mon_call!(Put::flag)) >> [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:96:46 [INFO] [stderr] | [INFO] [stderr] 96 | 1u8 => map!($submac!($($args)*), |x| Some(x)) | [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] ... [INFO] [stderr] 2144 | / w_named!(h3m, do_parse!( [INFO] [stderr] 2145 | | header: call!(Eat::header) >> [INFO] [stderr] 2146 | | players: count!(call!(Eat::player, header.version), 8) >> [INFO] [stderr] 2147 | | victory: call!(Eat::special_victory, header.version) >> [INFO] [stderr] ... | [INFO] [stderr] 2180 | | }) [INFO] [stderr] 2181 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/main.rs:243:17 [INFO] [stderr] | [INFO] [stderr] 243 | let ref mut $var = $def; [INFO] [stderr] | ----^^^^^^^^^^^^-------- help: try: `let _trailing_zeroes = &mut ();` [INFO] [stderr] ... [INFO] [stderr] 2184 | / mon_named!(h3m, mon_do_parse!( [INFO] [stderr] 2185 | | header: mon_call!(Put::header) >> [INFO] [stderr] 2186 | | players: mon_count!(mon_call!(Put::player, header.version), 8) >> [INFO] [stderr] 2187 | | victory: mon_call!(Put::special_victory, header.version) >> [INFO] [stderr] ... | [INFO] [stderr] 2220 | | }) [INFO] [stderr] 2221 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/main.rs:132:9 [INFO] [stderr] | [INFO] [stderr] 132 | / match $c { [INFO] [stderr] 133 | | $t => $thn!($o, $v, $($targs)*), [INFO] [stderr] 134 | | _ => $els!($o, $v, $($eargs)*), [INFO] [stderr] 135 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 2184 | / mon_named!(h3m, mon_do_parse!( [INFO] [stderr] 2185 | | header: mon_call!(Put::header) >> [INFO] [stderr] 2186 | | players: mon_count!(mon_call!(Put::player, header.version), 8) >> [INFO] [stderr] 2187 | | victory: mon_call!(Put::special_victory, header.version) >> [INFO] [stderr] ... | [INFO] [stderr] 2220 | | }) [INFO] [stderr] 2221 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 132 | if header.has_underground { mon_named!(h3m, mon_do_parse!( [INFO] [stderr] 133 | header: mon_call!(Put::header) >> [INFO] [stderr] 134 | players: mon_count!(mon_call!(Put::player, header.version), 8) >> [INFO] [stderr] 135 | victory: mon_call!(Put::special_victory, header.version) >> [INFO] [stderr] 136 | loss: mon_call!(Put::loss) >> [INFO] [stderr] 137 | teams: mon_alt!( [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `base` [INFO] [stderr] --> src/main.rs:2268:39 [INFO] [stderr] | [INFO] [stderr] 2268 | line.push(pat[base + 0] as char); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `base` [INFO] [stderr] --> src/main.rs:2270:39 [INFO] [stderr] | [INFO] [stderr] 2270 | line.push(pat[base + 0] as char); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/main.rs:96:46 [INFO] [stderr] | [INFO] [stderr] 96 | 1u8 => map!($submac!($($args)*), |x| Some(x)) | [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] ... [INFO] [stderr] 2144 | / w_named!(h3m, do_parse!( [INFO] [stderr] 2145 | | header: call!(Eat::header) >> [INFO] [stderr] 2146 | | players: count!(call!(Eat::player, header.version), 8) >> [INFO] [stderr] 2147 | | victory: call!(Eat::special_victory, header.version) >> [INFO] [stderr] ... | [INFO] [stderr] 2180 | | }) [INFO] [stderr] 2181 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: the variable `count` is used as a loop counter. Consider using `for (count, item) in bytes.enumerate()` or similar iterators [INFO] [stderr] --> src/main.rs:2300:17 [INFO] [stderr] | [INFO] [stderr] 2300 | for byte in bytes { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::explicit_counter_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/main.rs:2324:41 [INFO] [stderr] | [INFO] [stderr] 2324 | let res = matches.value_of("INPUT").ok_or("no input".to_owned()).and_then( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| "no input".to_owned())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:2346:24 [INFO] [stderr] | [INFO] [stderr] 2346 | if rem.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!rem.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/main.rs:243:17 [INFO] [stderr] | [INFO] [stderr] 243 | let ref mut $var = $def; [INFO] [stderr] | ----^^^^^^^^^^^^-------- help: try: `let _trailing_zeroes = &mut ();` [INFO] [stderr] ... [INFO] [stderr] 2184 | / mon_named!(h3m, mon_do_parse!( [INFO] [stderr] 2185 | | header: mon_call!(Put::header) >> [INFO] [stderr] 2186 | | players: mon_count!(mon_call!(Put::player, header.version), 8) >> [INFO] [stderr] 2187 | | victory: mon_call!(Put::special_victory, header.version) >> [INFO] [stderr] ... | [INFO] [stderr] 2220 | | }) [INFO] [stderr] 2221 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/main.rs:132:9 [INFO] [stderr] | [INFO] [stderr] 132 | / match $c { [INFO] [stderr] 133 | | $t => $thn!($o, $v, $($targs)*), [INFO] [stderr] 134 | | _ => $els!($o, $v, $($eargs)*), [INFO] [stderr] 135 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] ... [INFO] [stderr] 2184 | / mon_named!(h3m, mon_do_parse!( [INFO] [stderr] 2185 | | header: mon_call!(Put::header) >> [INFO] [stderr] 2186 | | players: mon_count!(mon_call!(Put::player, header.version), 8) >> [INFO] [stderr] 2187 | | victory: mon_call!(Put::special_victory, header.version) >> [INFO] [stderr] ... | [INFO] [stderr] 2220 | | }) [INFO] [stderr] 2221 | | )); [INFO] [stderr] | |___- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 132 | if header.has_underground { mon_named!(h3m, mon_do_parse!( [INFO] [stderr] 133 | header: mon_call!(Put::header) >> [INFO] [stderr] 134 | players: mon_count!(mon_call!(Put::player, header.version), 8) >> [INFO] [stderr] 135 | victory: mon_call!(Put::special_victory, header.version) >> [INFO] [stderr] 136 | loss: mon_call!(Put::loss) >> [INFO] [stderr] 137 | teams: mon_alt!( [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `base` [INFO] [stderr] --> src/main.rs:2268:39 [INFO] [stderr] | [INFO] [stderr] 2268 | line.push(pat[base + 0] as char); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `base` [INFO] [stderr] --> src/main.rs:2270:39 [INFO] [stderr] | [INFO] [stderr] 2270 | line.push(pat[base + 0] as char); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the variable `count` is used as a loop counter. Consider using `for (count, item) in bytes.enumerate()` or similar iterators [INFO] [stderr] --> src/main.rs:2300:17 [INFO] [stderr] | [INFO] [stderr] 2300 | for byte in bytes { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::explicit_counter_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/main.rs:2324:41 [INFO] [stderr] | [INFO] [stderr] 2324 | let res = matches.value_of("INPUT").ok_or("no input".to_owned()).and_then( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| "no input".to_owned())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:2346:24 [INFO] [stderr] | [INFO] [stderr] 2346 | if rem.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!rem.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 10.87s [INFO] running `"docker" "inspect" "44382a6fb8ffd169f6012ad959869a7be22784081324e6878aa38b3e6c3152ec"` [INFO] running `"docker" "rm" "-f" "44382a6fb8ffd169f6012ad959869a7be22784081324e6878aa38b3e6c3152ec"` [INFO] [stdout] 44382a6fb8ffd169f6012ad959869a7be22784081324e6878aa38b3e6c3152ec