[INFO] crate postscript 0.13.2 is already in cache [INFO] extracting crate postscript 0.13.2 into work/ex/clippy-test-run/sources/stable/reg/postscript/0.13.2 [INFO] extracting crate postscript 0.13.2 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/postscript/0.13.2 [INFO] validating manifest of postscript-0.13.2 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 postscript-0.13.2 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 postscript-0.13.2 [INFO] removed 0 missing tests [INFO] finished frobbing postscript-0.13.2 [INFO] frobbed toml for postscript-0.13.2 written to work/ex/clippy-test-run/sources/stable/reg/postscript/0.13.2/Cargo.toml [INFO] started frobbing postscript-0.13.2 [INFO] removed 0 missing tests [INFO] finished frobbing postscript-0.13.2 [INFO] frobbed toml for postscript-0.13.2 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/postscript/0.13.2/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [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 postscript-0.13.2 against stable+rustflags=-Dclippy::into_iter_on_array for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/postscript/0.13.2:/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 -Dclippy::into_iter_on_array" "-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] 5ccafc8edb3e9c8a1fcd4d717aa708622f625a01d73993cc816db80959a1df25 [INFO] running `"docker" "start" "-a" "5ccafc8edb3e9c8a1fcd4d717aa708622f625a01d73993cc816db80959a1df25"` [INFO] [stderr] warning: An explicit [[test]] section is specified in Cargo.toml which currently [INFO] [stderr] disables Cargo from automatically inferring other test targets. [INFO] [stderr] This inference behavior will change in the Rust 2018 edition and the following [INFO] [stderr] files will be included as a test target: [INFO] [stderr] [INFO] [stderr] * /opt/crater/workdir/tests/compact1.rs [INFO] [stderr] * /opt/crater/workdir/tests/type2.rs [INFO] [stderr] [INFO] [stderr] This is likely to break cargo build or cargo test as these files may not be [INFO] [stderr] ready to be compiled as a test target today. You can future-proof yourself [INFO] [stderr] and disable this warning by adding `autotests = false` to your [package] [INFO] [stderr] section. You may also move the files to a location where Cargo would not [INFO] [stderr] automatically infer them to be a target, such as in subfolders. [INFO] [stderr] [INFO] [stderr] For more information on this warning you can consult [INFO] [stderr] https://github.com/rust-lang/cargo/issues/5330 [INFO] [stderr] warning: An explicit [[bench]] section is specified in Cargo.toml which currently [INFO] [stderr] disables Cargo from automatically inferring other benchmark targets. [INFO] [stderr] This inference behavior will change in the Rust 2018 edition and the following [INFO] [stderr] files will be included as a benchmark target: [INFO] [stderr] [INFO] [stderr] * /opt/crater/workdir/benches/compact1.rs [INFO] [stderr] * /opt/crater/workdir/benches/type2.rs [INFO] [stderr] [INFO] [stderr] This is likely to break cargo build or cargo test as these files may not be [INFO] [stderr] ready to be compiled as a benchmark target today. You can future-proof yourself [INFO] [stderr] and disable this warning by adding `autobenches = false` to your [package] [INFO] [stderr] section. You may also move the files to a location where Cargo would not [INFO] [stderr] automatically infer them to be a target, such as in subfolders. [INFO] [stderr] [INFO] [stderr] For more information on this warning you can consult [INFO] [stderr] https://github.com/rust-lang/cargo/issues/5330 [INFO] [stderr] Checking postscript v0.13.2 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/compact1/font_set.rs:91:13 [INFO] [stderr] | [INFO] [stderr] 91 | header: header, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `header` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/compact1/font_set.rs:92:13 [INFO] [stderr] | [INFO] [stderr] 92 | names: names, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `names` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/compact1/font_set.rs:93:13 [INFO] [stderr] | [INFO] [stderr] 93 | strings: strings, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `strings` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/compact1/font_set.rs:94:13 [INFO] [stderr] | [INFO] [stderr] 94 | encodings: encodings, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `encodings` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/compact1/font_set.rs:95:13 [INFO] [stderr] | [INFO] [stderr] 95 | char_sets: char_sets, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `char_sets` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/compact1/font_set.rs:96:13 [INFO] [stderr] | [INFO] [stderr] 96 | char_strings: char_strings, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `char_strings` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/compact1/font_set.rs:97:13 [INFO] [stderr] | [INFO] [stderr] 97 | global_dictionaries: global_dictionaries, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `global_dictionaries` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/compact1/font_set.rs:98:13 [INFO] [stderr] | [INFO] [stderr] 98 | global_subroutines: global_subroutines, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `global_subroutines` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/compact1/font_set.rs:99:13 [INFO] [stderr] | [INFO] [stderr] 99 | local_dictionaries: local_dictionaries, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `local_dictionaries` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/compact1/font_set.rs:100:13 [INFO] [stderr] | [INFO] [stderr] 100 | local_subroutines: local_subroutines, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `local_subroutines` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/compact1/char_set.rs:77:13 [INFO] [stderr] | [INFO] [stderr] 77 | format: format, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `format` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/compact1/char_set.rs:78:13 [INFO] [stderr] | [INFO] [stderr] 78 | ranges: ranges, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `ranges` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/compact1/index/mod.rs:45:13 [INFO] [stderr] | [INFO] [stderr] 45 | count: count, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `count` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/compact1/index/mod.rs:46:13 [INFO] [stderr] | [INFO] [stderr] 46 | offset_size: offset_size, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `offset_size` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/compact1/index/mod.rs:47:13 [INFO] [stderr] | [INFO] [stderr] 47 | offsets: offsets, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `offsets` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/compact1/index/mod.rs:48:13 [INFO] [stderr] | [INFO] [stderr] 48 | data: data, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/type2/program.rs:29:13 [INFO] [stderr] | [INFO] [stderr] 29 | global: global, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `global` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/type2/program.rs:30:13 [INFO] [stderr] | [INFO] [stderr] 30 | local: local, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `local` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/compact1/font_set.rs:91:13 [INFO] [stderr] | [INFO] [stderr] 91 | header: header, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `header` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/compact1/font_set.rs:92:13 [INFO] [stderr] | [INFO] [stderr] 92 | names: names, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `names` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/compact1/font_set.rs:93:13 [INFO] [stderr] | [INFO] [stderr] 93 | strings: strings, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `strings` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/compact1/font_set.rs:94:13 [INFO] [stderr] | [INFO] [stderr] 94 | encodings: encodings, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `encodings` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/compact1/font_set.rs:95:13 [INFO] [stderr] | [INFO] [stderr] 95 | char_sets: char_sets, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `char_sets` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/compact1/font_set.rs:96:13 [INFO] [stderr] | [INFO] [stderr] 96 | char_strings: char_strings, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `char_strings` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/compact1/font_set.rs:97:13 [INFO] [stderr] | [INFO] [stderr] 97 | global_dictionaries: global_dictionaries, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `global_dictionaries` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/compact1/font_set.rs:98:13 [INFO] [stderr] | [INFO] [stderr] 98 | global_subroutines: global_subroutines, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `global_subroutines` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/compact1/font_set.rs:99:13 [INFO] [stderr] | [INFO] [stderr] 99 | local_dictionaries: local_dictionaries, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `local_dictionaries` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/compact1/font_set.rs:100:13 [INFO] [stderr] | [INFO] [stderr] 100 | local_subroutines: local_subroutines, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `local_subroutines` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/compact1/char_set.rs:77:13 [INFO] [stderr] | [INFO] [stderr] 77 | format: format, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `format` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/compact1/char_set.rs:78:13 [INFO] [stderr] | [INFO] [stderr] 78 | ranges: ranges, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `ranges` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/compact1/index/mod.rs:45:13 [INFO] [stderr] | [INFO] [stderr] 45 | count: count, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `count` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/compact1/index/mod.rs:46:13 [INFO] [stderr] | [INFO] [stderr] 46 | offset_size: offset_size, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `offset_size` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/compact1/index/mod.rs:47:13 [INFO] [stderr] | [INFO] [stderr] 47 | offsets: offsets, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `offsets` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/compact1/index/mod.rs:48:13 [INFO] [stderr] | [INFO] [stderr] 48 | data: data, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/type2/program.rs:29:13 [INFO] [stderr] | [INFO] [stderr] 29 | global: global, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `global` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/type2/program.rs:30:13 [INFO] [stderr] | [INFO] [stderr] 30 | local: local, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `local` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/compact1/operation.rs:175:30 [INFO] [stderr] | [INFO] [stderr] 175 | 0x0c09 => BlueScale [0.039625], [INFO] [stderr] | ^^^^^^^^ help: consider: `0.039_625` [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/compact1/number.rs:77:32 [INFO] [stderr] | [INFO] [stderr] 77 | assert!(read!(tape) == 100000); [INFO] [stderr] | ^^^^^^ help: consider: `100_000` [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/compact1/number.rs:80:33 [INFO] [stderr] | [INFO] [stderr] 80 | assert!(read!(tape) == -100000); [INFO] [stderr] | ^^^^^^ help: consider: `100_000` [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/compact1/number.rs:91:32 [INFO] [stderr] | [INFO] [stderr] 91 | assert!((read!(tape) - 0.140541e-3).abs() < 1e-14); [INFO] [stderr] | ^^^^^^^^^^^ help: consider: `0.140_541e-3` [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/compact1/offset.rs:53:67 [INFO] [stderr] | [INFO] [stderr] 53 | assert!(u32::from(Offset::read(&mut tape, 3).unwrap()) == 0x040506); [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0004_0506` [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/compact1/offset.rs:54:67 [INFO] [stderr] | [INFO] [stderr] 54 | assert!(u32::from(Offset::read(&mut tape, 4).unwrap()) == 0x0708090a); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0708_090a` [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/compact1/operation.rs:175:30 [INFO] [stderr] | [INFO] [stderr] 175 | 0x0c09 => BlueScale [0.039625], [INFO] [stderr] | ^^^^^^^^ help: consider: `0.039_625` [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: transmute from a type (`[u8; 3]`) to itself [INFO] [stderr] --> src/tape.rs:61:9 [INFO] [stderr] | [INFO] [stderr] 61 | ::std::mem::transmute(buffer) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 95 | value!([u8; 3], 1); [INFO] [stderr] | ------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_transmute)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/compact1/font_set.rs:48:30 [INFO] [stderr] | [INFO] [stderr] 48 | tape.jump(position + header.header_size as u64)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(header.header_size)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/compact1/font_set.rs:22:40 [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => ($value as i32 as Operand == $value)); [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 23 | | [INFO] [stderr] 24 | | macro_rules! get_single( [INFO] [stderr] 25 | | ($operations:expr, $operator:ident) => ( [INFO] [stderr] 26 | | match $operations.get_single(Operator::$operator) { [INFO] [stderr] 27 | | Some(value) if is_i32!(value) => value as i32, [INFO] [stderr] | |________________________________________^ [INFO] [stderr] ... [INFO] [stderr] 59 | encodings.push(match get_single!(dictionary, Encoding) { [INFO] [stderr] | --------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/compact1/font_set.rs:22:40 [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => ($value as i32 as Operand == $value)); [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 23 | | [INFO] [stderr] 24 | | macro_rules! get_single( [INFO] [stderr] 25 | | ($operations:expr, $operator:ident) => ( [INFO] [stderr] 26 | | match $operations.get_single(Operator::$operator) { [INFO] [stderr] 27 | | Some(value) if is_i32!(value) => value as i32, [INFO] [stderr] | |________________________________________^ [INFO] [stderr] ... [INFO] [stderr] 59 | encodings.push(match get_single!(dictionary, Encoding) { [INFO] [stderr] | --------------------------------- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] help: consider comparing them within some error [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => (($value as i32 as Operand - $value)); [INFO] [stderr] 23 | [INFO] [stderr] 24 | macro_rules! get_single( [INFO] [stderr] 25 | ($operations:expr, $operator:ident) => ( [INFO] [stderr] 26 | match $operations.get_single(Operator::$operator) { [INFO] [stderr] 27 | Some(value) if is_i32!(value).abs() < error) => value as i32, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/compact1/font_set.rs:22:40 [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => ($value as i32 as Operand == $value)); [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 23 | | [INFO] [stderr] 24 | | macro_rules! get_single( [INFO] [stderr] 25 | | ($operations:expr, $operator:ident) => ( [INFO] [stderr] 26 | | match $operations.get_single(Operator::$operator) { [INFO] [stderr] 27 | | Some(value) if is_i32!(value) => value as i32, [INFO] [stderr] | |________________________________________^ [INFO] [stderr] ... [INFO] [stderr] 65 | tape.jump(position + get_single!(dictionary, CharStrings) as u64)?; [INFO] [stderr] | ------------------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/compact1/font_set.rs:22:40 [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => ($value as i32 as Operand == $value)); [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 23 | | [INFO] [stderr] 24 | | macro_rules! get_single( [INFO] [stderr] 25 | | ($operations:expr, $operator:ident) => ( [INFO] [stderr] 26 | | match $operations.get_single(Operator::$operator) { [INFO] [stderr] 27 | | Some(value) if is_i32!(value) => value as i32, [INFO] [stderr] | |________________________________________^ [INFO] [stderr] ... [INFO] [stderr] 65 | tape.jump(position + get_single!(dictionary, CharStrings) as u64)?; [INFO] [stderr] | ------------------------------------ in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] help: consider comparing them within some error [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => (($value as i32 as Operand - $value)); [INFO] [stderr] 23 | [INFO] [stderr] 24 | macro_rules! get_single( [INFO] [stderr] 25 | ($operations:expr, $operator:ident) => ( [INFO] [stderr] 26 | match $operations.get_single(Operator::$operator) { [INFO] [stderr] 27 | Some(value) if is_i32!(value).abs() < error) => value as i32, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/compact1/font_set.rs:22:40 [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => ($value as i32 as Operand == $value)); [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 23 | | [INFO] [stderr] 24 | | macro_rules! get_single( [INFO] [stderr] 25 | | ($operations:expr, $operator:ident) => ( [INFO] [stderr] 26 | | match $operations.get_single(Operator::$operator) { [INFO] [stderr] 27 | | Some(value) if is_i32!(value) => value as i32, [INFO] [stderr] | |________________________________________^ [INFO] [stderr] ... [INFO] [stderr] 66 | tape.take_given::(get_single!(dictionary, CharStringType))? [INFO] [stderr] | --------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/compact1/font_set.rs:22:40 [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => ($value as i32 as Operand == $value)); [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 23 | | [INFO] [stderr] 24 | | macro_rules! get_single( [INFO] [stderr] 25 | | ($operations:expr, $operator:ident) => ( [INFO] [stderr] 26 | | match $operations.get_single(Operator::$operator) { [INFO] [stderr] 27 | | Some(value) if is_i32!(value) => value as i32, [INFO] [stderr] | |________________________________________^ [INFO] [stderr] ... [INFO] [stderr] 66 | tape.take_given::(get_single!(dictionary, CharStringType))? [INFO] [stderr] | --------------------------------------- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] help: consider comparing them within some error [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => (($value as i32 as Operand - $value)); [INFO] [stderr] 23 | [INFO] [stderr] 24 | macro_rules! get_single( [INFO] [stderr] 25 | ($operations:expr, $operator:ident) => ( [INFO] [stderr] 26 | match $operations.get_single(Operator::$operator) { [INFO] [stderr] 27 | Some(value) if is_i32!(value).abs() < error) => value as i32, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/compact1/font_set.rs:22:40 [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => ($value as i32 as Operand == $value)); [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 23 | | [INFO] [stderr] 24 | | macro_rules! get_single( [INFO] [stderr] 25 | | ($operations:expr, $operator:ident) => ( [INFO] [stderr] 26 | | match $operations.get_single(Operator::$operator) { [INFO] [stderr] 27 | | Some(value) if is_i32!(value) => value as i32, [INFO] [stderr] | |________________________________________^ [INFO] [stderr] ... [INFO] [stderr] 68 | char_sets.push(match get_single!(dictionary, CharSet) { [INFO] [stderr] | -------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/compact1/font_set.rs:22:40 [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => ($value as i32 as Operand == $value)); [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 23 | | [INFO] [stderr] 24 | | macro_rules! get_single( [INFO] [stderr] 25 | | ($operations:expr, $operator:ident) => ( [INFO] [stderr] 26 | | match $operations.get_single(Operator::$operator) { [INFO] [stderr] 27 | | Some(value) if is_i32!(value) => value as i32, [INFO] [stderr] | |________________________________________^ [INFO] [stderr] ... [INFO] [stderr] 68 | char_sets.push(match get_single!(dictionary, CharSet) { [INFO] [stderr] | -------------------------------- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] help: consider comparing them within some error [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => (($value as i32 as Operand - $value)); [INFO] [stderr] 23 | [INFO] [stderr] 24 | macro_rules! get_single( [INFO] [stderr] 25 | ($operations:expr, $operator:ident) => ( [INFO] [stderr] 26 | match $operations.get_single(Operator::$operator) { [INFO] [stderr] 27 | Some(value) if is_i32!(value).abs() < error) => value as i32, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/compact1/font_set.rs:22:40 [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => ($value as i32 as Operand == $value)); [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 23 | | [INFO] [stderr] 24 | | macro_rules! get_single( [INFO] [stderr] 25 | | ($operations:expr, $operator:ident) => ( [INFO] [stderr] ... | [INFO] [stderr] 35 | | match $operations.get_double(Operator::$operator) { [INFO] [stderr] 36 | | Some((value0, value1)) if is_i32!(value0) && is_i32!(value1) => { [INFO] [stderr] | |____________________________________________________^ [INFO] [stderr] ... [INFO] [stderr] 78 | let (size, offset) = get_double!(dictionary, Private); [INFO] [stderr] | -------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/compact1/font_set.rs:22:40 [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => ($value as i32 as Operand == $value)); [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 23 | | [INFO] [stderr] 24 | | macro_rules! get_single( [INFO] [stderr] 25 | | ($operations:expr, $operator:ident) => ( [INFO] [stderr] ... | [INFO] [stderr] 35 | | match $operations.get_double(Operator::$operator) { [INFO] [stderr] 36 | | Some((value0, value1)) if is_i32!(value0) && is_i32!(value1) => { [INFO] [stderr] | |____________________________________________________^ [INFO] [stderr] ... [INFO] [stderr] 78 | let (size, offset) = get_double!(dictionary, Private); [INFO] [stderr] | -------------------------------- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] help: consider comparing them within some error [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => (($value as i32 as Operand - $value)); [INFO] [stderr] 23 | [INFO] [stderr] 24 | macro_rules! get_single( [INFO] [stderr] 25 | ($operations:expr, $operator:ident) => ( [INFO] [stderr] 26 | match $operations.get_single(Operator::$operator) { [INFO] [stderr] 27 | Some(value) if is_i32!(value) => value as i32, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/compact1/font_set.rs:22:40 [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => ($value as i32 as Operand == $value)); [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 23 | | [INFO] [stderr] 24 | | macro_rules! get_single( [INFO] [stderr] 25 | | ($operations:expr, $operator:ident) => ( [INFO] [stderr] ... | [INFO] [stderr] 35 | | match $operations.get_double(Operator::$operator) { [INFO] [stderr] 36 | | Some((value0, value1)) if is_i32!(value0) && is_i32!(value1) => { [INFO] [stderr] | |_______________________________________________________________________^ [INFO] [stderr] ... [INFO] [stderr] 78 | let (size, offset) = get_double!(dictionary, Private); [INFO] [stderr] | -------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/compact1/font_set.rs:22:40 [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => ($value as i32 as Operand == $value)); [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 23 | | [INFO] [stderr] 24 | | macro_rules! get_single( [INFO] [stderr] 25 | | ($operations:expr, $operator:ident) => ( [INFO] [stderr] ... | [INFO] [stderr] 35 | | match $operations.get_double(Operator::$operator) { [INFO] [stderr] 36 | | Some((value0, value1)) if is_i32!(value0) && is_i32!(value1) => { [INFO] [stderr] | |_______________________________________________________________________^ [INFO] [stderr] ... [INFO] [stderr] 78 | let (size, offset) = get_double!(dictionary, Private); [INFO] [stderr] | -------------------------------- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] help: consider comparing them within some error [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => (($value as i32 as Operand - $value)); [INFO] [stderr] 23 | [INFO] [stderr] 24 | macro_rules! get_single( [INFO] [stderr] 25 | ($operations:expr, $operator:ident) => ( [INFO] [stderr] 26 | match $operations.get_single(Operator::$operator) { [INFO] [stderr] 27 | Some(value) if is_i32!(value) => value as i32, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/compact1/font_set.rs:22:40 [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => ($value as i32 as Operand == $value)); [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 23 | | [INFO] [stderr] 24 | | macro_rules! get_single( [INFO] [stderr] 25 | | ($operations:expr, $operator:ident) => ( [INFO] [stderr] ... | [INFO] [stderr] 35 | | match $operations.get_double(Operator::$operator) { [INFO] [stderr] 36 | | Some((value0, value1)) if is_i32!(value0) && is_i32!(value1) => { [INFO] [stderr] | |____________________________________________________^ [INFO] [stderr] ... [INFO] [stderr] 84 | let (_, mut offset) = get_double!(dictionary, Private); [INFO] [stderr] | -------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/compact1/font_set.rs:22:40 [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => ($value as i32 as Operand == $value)); [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 23 | | [INFO] [stderr] 24 | | macro_rules! get_single( [INFO] [stderr] 25 | | ($operations:expr, $operator:ident) => ( [INFO] [stderr] ... | [INFO] [stderr] 35 | | match $operations.get_double(Operator::$operator) { [INFO] [stderr] 36 | | Some((value0, value1)) if is_i32!(value0) && is_i32!(value1) => { [INFO] [stderr] | |____________________________________________________^ [INFO] [stderr] ... [INFO] [stderr] 84 | let (_, mut offset) = get_double!(dictionary, Private); [INFO] [stderr] | -------------------------------- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] help: consider comparing them within some error [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => (($value as i32 as Operand - $value)); [INFO] [stderr] 23 | [INFO] [stderr] 24 | macro_rules! get_single( [INFO] [stderr] 25 | ($operations:expr, $operator:ident) => ( [INFO] [stderr] 26 | match $operations.get_single(Operator::$operator) { [INFO] [stderr] 27 | Some(value) if is_i32!(value) => value as i32, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/compact1/font_set.rs:22:40 [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => ($value as i32 as Operand == $value)); [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 23 | | [INFO] [stderr] 24 | | macro_rules! get_single( [INFO] [stderr] 25 | | ($operations:expr, $operator:ident) => ( [INFO] [stderr] ... | [INFO] [stderr] 35 | | match $operations.get_double(Operator::$operator) { [INFO] [stderr] 36 | | Some((value0, value1)) if is_i32!(value0) && is_i32!(value1) => { [INFO] [stderr] | |_______________________________________________________________________^ [INFO] [stderr] ... [INFO] [stderr] 84 | let (_, mut offset) = get_double!(dictionary, Private); [INFO] [stderr] | -------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/compact1/font_set.rs:22:40 [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => ($value as i32 as Operand == $value)); [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 23 | | [INFO] [stderr] 24 | | macro_rules! get_single( [INFO] [stderr] 25 | | ($operations:expr, $operator:ident) => ( [INFO] [stderr] ... | [INFO] [stderr] 35 | | match $operations.get_double(Operator::$operator) { [INFO] [stderr] 36 | | Some((value0, value1)) if is_i32!(value0) && is_i32!(value1) => { [INFO] [stderr] | |_______________________________________________________________________^ [INFO] [stderr] ... [INFO] [stderr] 84 | let (_, mut offset) = get_double!(dictionary, Private); [INFO] [stderr] | -------------------------------- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] help: consider comparing them within some error [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => (($value as i32 as Operand - $value)); [INFO] [stderr] 23 | [INFO] [stderr] 24 | macro_rules! get_single( [INFO] [stderr] 25 | ($operations:expr, $operator:ident) => ( [INFO] [stderr] 26 | match $operations.get_single(Operator::$operator) { [INFO] [stderr] 27 | Some(value) if is_i32!(value) => value as i32, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/compact1/font_set.rs:22:40 [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => ($value as i32 as Operand == $value)); [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 23 | | [INFO] [stderr] 24 | | macro_rules! get_single( [INFO] [stderr] 25 | | ($operations:expr, $operator:ident) => ( [INFO] [stderr] 26 | | match $operations.get_single(Operator::$operator) { [INFO] [stderr] 27 | | Some(value) if is_i32!(value) => value as i32, [INFO] [stderr] | |________________________________________^ [INFO] [stderr] ... [INFO] [stderr] 85 | offset += get_single!(&local_dictionaries[i], Subrs); [INFO] [stderr] | ------------------------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/compact1/font_set.rs:22:40 [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => ($value as i32 as Operand == $value)); [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 23 | | [INFO] [stderr] 24 | | macro_rules! get_single( [INFO] [stderr] 25 | | ($operations:expr, $operator:ident) => ( [INFO] [stderr] 26 | | match $operations.get_single(Operator::$operator) { [INFO] [stderr] 27 | | Some(value) if is_i32!(value) => value as i32, [INFO] [stderr] | |________________________________________^ [INFO] [stderr] ... [INFO] [stderr] 85 | offset += get_single!(&local_dictionaries[i], Subrs); [INFO] [stderr] | ------------------------------------------ in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] help: consider comparing them within some error [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => (($value as i32 as Operand - $value)); [INFO] [stderr] 23 | [INFO] [stderr] 24 | macro_rules! get_single( [INFO] [stderr] 25 | ($operations:expr, $operator:ident) => ( [INFO] [stderr] 26 | match $operations.get_single(Operator::$operator) { [INFO] [stderr] 27 | Some(value) if is_i32!(value).abs() < error) => value as i32, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: calls to `std::mem::forget` with a value that implements Copy. Forgetting a copy leaves the original intact. [INFO] [stderr] --> src/macros.rs:61:19 [INFO] [stderr] | [INFO] [stderr] 61 | $(::std::mem::forget(::std::mem::replace(&mut table.$field, tape.take()?));)+ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/compact1/header.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | / table! { [INFO] [stderr] 4 | | #[doc = "A header."] [INFO] [stderr] 5 | | #[derive(Copy)] [INFO] [stderr] 6 | | pub Header { [INFO] [stderr] ... | [INFO] [stderr] 11 | | } [INFO] [stderr] 12 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::forget_copy)] on by default [INFO] [stderr] note: argument has type u8 [INFO] [stderr] --> src/macros.rs:61:38 [INFO] [stderr] | [INFO] [stderr] 61 | $(::std::mem::forget(::std::mem::replace(&mut table.$field, tape.take()?));)+ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/compact1/header.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | / table! { [INFO] [stderr] 4 | | #[doc = "A header."] [INFO] [stderr] 5 | | #[derive(Copy)] [INFO] [stderr] 6 | | pub Header { [INFO] [stderr] ... | [INFO] [stderr] 11 | | } [INFO] [stderr] 12 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#forget_copy [INFO] [stderr] [INFO] [stderr] error: calls to `std::mem::forget` with a value that implements Copy. Forgetting a copy leaves the original intact. [INFO] [stderr] --> src/macros.rs:61:19 [INFO] [stderr] | [INFO] [stderr] 61 | $(::std::mem::forget(::std::mem::replace(&mut table.$field, tape.take()?));)+ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/compact1/header.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | / table! { [INFO] [stderr] 4 | | #[doc = "A header."] [INFO] [stderr] 5 | | #[derive(Copy)] [INFO] [stderr] 6 | | pub Header { [INFO] [stderr] ... | [INFO] [stderr] 11 | | } [INFO] [stderr] 12 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: argument has type u8 [INFO] [stderr] --> src/macros.rs:61:38 [INFO] [stderr] | [INFO] [stderr] 61 | $(::std::mem::forget(::std::mem::replace(&mut table.$field, tape.take()?));)+ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/compact1/header.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | / table! { [INFO] [stderr] 4 | | #[doc = "A header."] [INFO] [stderr] 5 | | #[derive(Copy)] [INFO] [stderr] 6 | | pub Header { [INFO] [stderr] ... | [INFO] [stderr] 11 | | } [INFO] [stderr] 12 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#forget_copy [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/compact1/number.rs:8:25 [INFO] [stderr] | [INFO] [stderr] 8 | 0x20...0xf6 => (first as i32 - 139) as f32, [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(first)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/compact1/number.rs:9:26 [INFO] [stderr] | [INFO] [stderr] 9 | 0xf7...0xfa => ((first as i32 - 247) * 256 + tape.take::()? as i32 + 108) as f32, [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(first)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/compact1/number.rs:9:54 [INFO] [stderr] | [INFO] [stderr] 9 | 0xf7...0xfa => ((first as i32 - 247) * 256 + tape.take::()? as i32 + 108) as f32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(tape.take::()?)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/compact1/number.rs:10:27 [INFO] [stderr] | [INFO] [stderr] 10 | 0xfb...0xfe => (-(first as i32 - 251) * 256 - tape.take::()? as i32 - 108) as f32, [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(first)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/compact1/number.rs:10:55 [INFO] [stderr] | [INFO] [stderr] 10 | 0xfb...0xfe => (-(first as i32 - 251) * 256 - tape.take::()? as i32 - 108) as f32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(tape.take::()?)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/compact1/number.rs:11:17 [INFO] [stderr] | [INFO] [stderr] 11 | 0x1c => tape.take::()? as i16 as i32 as f32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(tape.take::()? as i16)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/compact1/number.rs:23:22 [INFO] [stderr] | [INFO] [stderr] 23 | let nibble = match high { [INFO] [stderr] | ______________________^ [INFO] [stderr] 24 | | true => { [INFO] [stderr] 25 | | byte = tape.take::()?; [INFO] [stderr] 26 | | byte >> 4 [INFO] [stderr] 27 | | } [INFO] [stderr] 28 | | false => byte & 0x0f, [INFO] [stderr] 29 | | }; [INFO] [stderr] | |_________^ [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] 23 | let nibble = if high { [INFO] [stderr] 24 | byte = tape.take::()?; [INFO] [stderr] 25 | byte >> 4 [INFO] [stderr] 26 | } else { byte & 0x0f }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/compact1/number.rs:32:35 [INFO] [stderr] | [INFO] [stderr] 32 | 0...9 => buffer.push(('0' as u8 + nibble) as char), [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::char_lit_as_u8)] on by default [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'0' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/compact1/offset.rs:28:18 [INFO] [stderr] | [INFO] [stderr] 28 | 1 => tape.take::()? as u32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(tape.take::()?)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/compact1/offset.rs:29:18 [INFO] [stderr] | [INFO] [stderr] 29 | 2 => tape.take::()? as u32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(tape.take::()?)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/compact1/operation.rs:28:25 [INFO] [stderr] | [INFO] [stderr] 28 | tape.take::()? as u16 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(tape.take::()?)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/compact1/operation.rs:51:16 [INFO] [stderr] | [INFO] [stderr] 51 | if operands.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!operands.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] error: calls to `std::mem::forget` with a value that implements Copy. Forgetting a copy leaves the original intact. [INFO] [stderr] --> src/macros.rs:61:19 [INFO] [stderr] | [INFO] [stderr] 61 | $(::std::mem::forget(::std::mem::replace(&mut table.$field, tape.take()?));)+ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/compact1/char_set.rs:22:1 [INFO] [stderr] | [INFO] [stderr] 22 | / table! { [INFO] [stderr] 23 | | #[doc = "A range of a char set in format 1."] [INFO] [stderr] 24 | | #[derive(Copy)] [INFO] [stderr] 25 | | pub Range1 { [INFO] [stderr] ... | [INFO] [stderr] 28 | | } [INFO] [stderr] 29 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: argument has type u16 [INFO] [stderr] --> src/macros.rs:61:38 [INFO] [stderr] | [INFO] [stderr] 61 | $(::std::mem::forget(::std::mem::replace(&mut table.$field, tape.take()?));)+ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/compact1/char_set.rs:22:1 [INFO] [stderr] | [INFO] [stderr] 22 | / table! { [INFO] [stderr] 23 | | #[doc = "A range of a char set in format 1."] [INFO] [stderr] 24 | | #[derive(Copy)] [INFO] [stderr] 25 | | pub Range1 { [INFO] [stderr] ... | [INFO] [stderr] 28 | | } [INFO] [stderr] 29 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#forget_copy [INFO] [stderr] [INFO] [stderr] error: calls to `std::mem::forget` with a value that implements Copy. Forgetting a copy leaves the original intact. [INFO] [stderr] --> src/macros.rs:61:19 [INFO] [stderr] | [INFO] [stderr] 61 | $(::std::mem::forget(::std::mem::replace(&mut table.$field, tape.take()?));)+ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/compact1/char_set.rs:22:1 [INFO] [stderr] | [INFO] [stderr] 22 | / table! { [INFO] [stderr] 23 | | #[doc = "A range of a char set in format 1."] [INFO] [stderr] 24 | | #[derive(Copy)] [INFO] [stderr] 25 | | pub Range1 { [INFO] [stderr] ... | [INFO] [stderr] 28 | | } [INFO] [stderr] 29 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: argument has type u8 [INFO] [stderr] --> src/macros.rs:61:38 [INFO] [stderr] | [INFO] [stderr] 61 | $(::std::mem::forget(::std::mem::replace(&mut table.$field, tape.take()?));)+ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/compact1/char_set.rs:22:1 [INFO] [stderr] | [INFO] [stderr] 22 | / table! { [INFO] [stderr] 23 | | #[doc = "A range of a char set in format 1."] [INFO] [stderr] 24 | | #[derive(Copy)] [INFO] [stderr] 25 | | pub Range1 { [INFO] [stderr] ... | [INFO] [stderr] 28 | | } [INFO] [stderr] 29 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#forget_copy [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/compact1/char_set.rs:35:9 [INFO] [stderr] | [INFO] [stderr] 35 | / match self { [INFO] [stderr] 36 | | &CharSet::ISOAdobe => get_iso_adobe(gid), [INFO] [stderr] 37 | | &CharSet::Expert => get_expert(gid), [INFO] [stderr] 38 | | &CharSet::ExpertSubset => get_expert_subset(gid), [INFO] [stderr] 39 | | _ => unimplemented!(), [INFO] [stderr] 40 | | } [INFO] [stderr] | |_________^ [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] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 35 | match *self { [INFO] [stderr] 36 | CharSet::ISOAdobe => get_iso_adobe(gid), [INFO] [stderr] 37 | CharSet::Expert => get_expert(gid), [INFO] [stderr] 38 | CharSet::ExpertSubset => get_expert_subset(gid), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `1` [INFO] [stderr] --> src/compact1/char_set.rs:67:25 [INFO] [stderr] | [INFO] [stderr] 67 | let mut found = 0 + 1; [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/compact1/encoding.rs:15:16 [INFO] [stderr] | [INFO] [stderr] 15 | pub fn get(&self, gid: GlyphID) -> Option { [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: an inclusive range would be more readable [INFO] [stderr] --> src/compact1/index/mod.rs:32:18 [INFO] [stderr] | [INFO] [stderr] 32 | for i in 0..(count as usize + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use: `0..=count as usize` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/type2/number.rs:8:25 [INFO] [stderr] | [INFO] [stderr] 8 | 0x20...0xf6 => (first as i32 - 139) as f32, [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(first)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/type2/number.rs:9:26 [INFO] [stderr] | [INFO] [stderr] 9 | 0xf7...0xfa => ((first as i32 - 247) * 256 + tape.take::()? as i32 + 108) as f32, [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(first)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/type2/number.rs:9:54 [INFO] [stderr] | [INFO] [stderr] 9 | 0xf7...0xfa => ((first as i32 - 247) * 256 + tape.take::()? as i32 + 108) as f32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(tape.take::()?)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/type2/number.rs:10:27 [INFO] [stderr] | [INFO] [stderr] 10 | 0xfb...0xfe => (-(first as i32 - 251) * 256 - tape.take::()? as i32 - 108) as f32, [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(first)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/type2/number.rs:10:55 [INFO] [stderr] | [INFO] [stderr] 10 | 0xfb...0xfe => (-(first as i32 - 251) * 256 - tape.take::()? as i32 - 108) as f32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(tape.take::()?)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/type2/number.rs:11:17 [INFO] [stderr] | [INFO] [stderr] 11 | 0x1c => tape.take::()? as i16 as i32 as f32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(tape.take::()? as i16)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: defining a method called `next` on this type; consider implementing the `std::iter::Iterator` trait or choosing a less ambiguous name [INFO] [stderr] --> src/type2/program.rs:39:5 [INFO] [stderr] | [INFO] [stderr] 39 | / pub fn next(&mut self) -> Result> { [INFO] [stderr] 40 | | use type2::Operator::*; [INFO] [stderr] 41 | | [INFO] [stderr] 42 | | if self.routine.done()? { [INFO] [stderr] ... | [INFO] [stderr] 281 | | self.next() [INFO] [stderr] 282 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::should_implement_trait)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 64 [INFO] [stderr] --> src/type2/program.rs:39:5 [INFO] [stderr] | [INFO] [stderr] 39 | / pub fn next(&mut self) -> Result> { [INFO] [stderr] 40 | | use type2::Operator::*; [INFO] [stderr] 41 | | [INFO] [stderr] 42 | | if self.routine.done()? { [INFO] [stderr] ... | [INFO] [stderr] 281 | | self.next() [INFO] [stderr] 282 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/type2/program.rs:89:28 [INFO] [stderr] | [INFO] [stderr] 89 | Operator::from(self.routine.take::()? as u16)? [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.routine.take::()?)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/type2/program.rs:111:26 [INFO] [stderr] | [INFO] [stderr] 111 | for i in 1..($left / $count + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use: `1..=$left` [INFO] [stderr] ... [INFO] [stderr] 142 | RLineTo => clear!([modulo(2)]), [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#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/type2/program.rs:117:26 [INFO] [stderr] | [INFO] [stderr] 117 | for i in 0..($left / $count + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use: `0..=$left` [INFO] [stderr] ... [INFO] [stderr] 143 | HLineTo | VLineTo => clear!([equal(1), maybe_modulo(2)], [modulo(2)]), [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#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/type2/program.rs:111:26 [INFO] [stderr] | [INFO] [stderr] 111 | for i in 1..($left / $count + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use: `1..=$left` [INFO] [stderr] ... [INFO] [stderr] 143 | HLineTo | VLineTo => clear!([equal(1), maybe_modulo(2)], [modulo(2)]), [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#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/type2/program.rs:111:26 [INFO] [stderr] | [INFO] [stderr] 111 | for i in 1..($left / $count + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use: `1..=$left` [INFO] [stderr] ... [INFO] [stderr] 144 | RRCurveTo => clear!([modulo(6)]), [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#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/type2/program.rs:111:26 [INFO] [stderr] | [INFO] [stderr] 111 | for i in 1..($left / $count + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use: `1..=$left` [INFO] [stderr] ... [INFO] [stderr] 145 | HHCurveTo | VVCurveTo => clear!([maybe_equal(1), modulo(4)]), [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#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/type2/program.rs:111:26 [INFO] [stderr] | [INFO] [stderr] 111 | for i in 1..($left / $count + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use: `1..=$left` [INFO] [stderr] ... [INFO] [stderr] 145 | HHCurveTo | VVCurveTo => clear!([maybe_equal(1), modulo(4)]), [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#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/type2/program.rs:117:26 [INFO] [stderr] | [INFO] [stderr] 117 | for i in 0..($left / $count + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use: `0..=$left` [INFO] [stderr] ... [INFO] [stderr] 146 | HVCurveTo | VHCurveTo => clear!( [INFO] [stderr] | ______________________________________- [INFO] [stderr] 147 | | [equal(4), maybe_modulo(8), maybe_equal(1)], [INFO] [stderr] 148 | | [modulo(8), maybe_equal(1)] [INFO] [stderr] 149 | | ), [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#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/type2/program.rs:111:26 [INFO] [stderr] | [INFO] [stderr] 111 | for i in 1..($left / $count + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use: `1..=$left` [INFO] [stderr] ... [INFO] [stderr] 146 | HVCurveTo | VHCurveTo => clear!( [INFO] [stderr] | ______________________________________- [INFO] [stderr] 147 | | [equal(4), maybe_modulo(8), maybe_equal(1)], [INFO] [stderr] 148 | | [modulo(8), maybe_equal(1)] [INFO] [stderr] 149 | | ), [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#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/type2/program.rs:111:26 [INFO] [stderr] | [INFO] [stderr] 111 | for i in 1..($left / $count + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use: `1..=$left` [INFO] [stderr] ... [INFO] [stderr] 150 | RCurveLine => clear!([modulo(6), equal(2)]), [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#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/type2/program.rs:111:26 [INFO] [stderr] | [INFO] [stderr] 111 | for i in 1..($left / $count + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use: `1..=$left` [INFO] [stderr] ... [INFO] [stderr] 151 | RLineCurve => clear!([modulo(2), equal(6)]), [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#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/type2/program.rs:117:26 [INFO] [stderr] | [INFO] [stderr] 117 | for i in 0..($left / $count + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use: `0..=$left` [INFO] [stderr] ... [INFO] [stderr] 175 | clear!([equal(2), maybe_modulo(2)]); [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#range_plus_one [INFO] [stderr] [INFO] [stderr] error: calls to `std::mem::drop` with a value that implements Copy. Dropping a copy leaves the original intact. [INFO] [stderr] --> src/type2/program.rs:198:21 [INFO] [stderr] | [INFO] [stderr] 198 | Drop => mem::drop(pop!()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::drop_copy)] on by default [INFO] [stderr] note: argument has type f32 [INFO] [stderr] --> src/type2/program.rs:47:20 [INFO] [stderr] | [INFO] [stderr] 47 | () => (match self.stack.pop() { [INFO] [stderr] | ____________________^ [INFO] [stderr] 48 | | Some(value) => value, [INFO] [stderr] 49 | | _ => raise!("expected an operand"), [INFO] [stderr] 50 | | }); [INFO] [stderr] | |_____________^ [INFO] [stderr] ... [INFO] [stderr] 198 | Drop => mem::drop(pop!()), [INFO] [stderr] | ------ in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#drop_copy [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/type2/program.rs:56:32 [INFO] [stderr] | [INFO] [stderr] 56 | Some(value) if value as i32 as Operand == value => value as i32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(value as i32 as Operand - value).abs() < error` [INFO] [stderr] ... [INFO] [stderr] 205 | let i = pop!(i32); [INFO] [stderr] | --------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/type2/program.rs:56:32 [INFO] [stderr] | [INFO] [stderr] 56 | Some(value) if value as i32 as Operand == value => value as i32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 205 | let i = pop!(i32); [INFO] [stderr] | --------- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/type2/program.rs:56:32 [INFO] [stderr] | [INFO] [stderr] 56 | Some(value) if value as i32 as Operand == value => value as i32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(value as i32 as Operand - value).abs() < error` [INFO] [stderr] ... [INFO] [stderr] 209 | let (shift, span) = (pop!(i32), pop!(i32)); [INFO] [stderr] | --------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/type2/program.rs:56:32 [INFO] [stderr] | [INFO] [stderr] 56 | Some(value) if value as i32 as Operand == value => value as i32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 209 | let (shift, span) = (pop!(i32), pop!(i32)); [INFO] [stderr] | --------- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/type2/program.rs:56:32 [INFO] [stderr] | [INFO] [stderr] 56 | Some(value) if value as i32 as Operand == value => value as i32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(value as i32 as Operand - value).abs() < error` [INFO] [stderr] ... [INFO] [stderr] 209 | let (shift, span) = (pop!(i32), pop!(i32)); [INFO] [stderr] | --------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/type2/program.rs:56:32 [INFO] [stderr] | [INFO] [stderr] 56 | Some(value) if value as i32 as Operand == value => value as i32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 209 | let (shift, span) = (pop!(i32), pop!(i32)); [INFO] [stderr] | --------- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/type2/program.rs:247:23 [INFO] [stderr] | [INFO] [stderr] 247 | push!(left == right, bool); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider comparing them within some error: `(left - right).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/type2/program.rs:247:23 [INFO] [stderr] | [INFO] [stderr] 247 | push!(left == right, bool); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/type2/program.rs:56:32 [INFO] [stderr] | [INFO] [stderr] 56 | Some(value) if value as i32 as Operand == value => value as i32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(value as i32 as Operand - value).abs() < error` [INFO] [stderr] ... [INFO] [stderr] 256 | let address = pop!(i32); [INFO] [stderr] | --------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/type2/program.rs:56:32 [INFO] [stderr] | [INFO] [stderr] 56 | Some(value) if value as i32 as Operand == value => value as i32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 256 | let address = pop!(i32); [INFO] [stderr] | --------- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: aborting due to 19 previous errors [INFO] [stderr] [INFO] [stderr] warning: transmute from a type (`[u8; 3]`) to itself [INFO] [stderr] --> src/tape.rs:61:9 [INFO] [stderr] | [INFO] [stderr] 61 | ::std::mem::transmute(buffer) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 95 | value!([u8; 3], 1); [INFO] [stderr] | ------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_transmute)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] error: Could not compile `postscript`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/compact1/font_set.rs:48:30 [INFO] [stderr] | [INFO] [stderr] 48 | tape.jump(position + header.header_size as u64)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(header.header_size)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/compact1/font_set.rs:22:40 [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => ($value as i32 as Operand == $value)); [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 23 | | [INFO] [stderr] 24 | | macro_rules! get_single( [INFO] [stderr] 25 | | ($operations:expr, $operator:ident) => ( [INFO] [stderr] 26 | | match $operations.get_single(Operator::$operator) { [INFO] [stderr] 27 | | Some(value) if is_i32!(value) => value as i32, [INFO] [stderr] | |________________________________________^ [INFO] [stderr] ... [INFO] [stderr] 59 | encodings.push(match get_single!(dictionary, Encoding) { [INFO] [stderr] | --------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/compact1/font_set.rs:22:40 [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => ($value as i32 as Operand == $value)); [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 23 | | [INFO] [stderr] 24 | | macro_rules! get_single( [INFO] [stderr] 25 | | ($operations:expr, $operator:ident) => ( [INFO] [stderr] 26 | | match $operations.get_single(Operator::$operator) { [INFO] [stderr] 27 | | Some(value) if is_i32!(value) => value as i32, [INFO] [stderr] | |________________________________________^ [INFO] [stderr] ... [INFO] [stderr] 59 | encodings.push(match get_single!(dictionary, Encoding) { [INFO] [stderr] | --------------------------------- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] help: consider comparing them within some error [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => (($value as i32 as Operand - $value)); [INFO] [stderr] 23 | [INFO] [stderr] 24 | macro_rules! get_single( [INFO] [stderr] 25 | ($operations:expr, $operator:ident) => ( [INFO] [stderr] 26 | match $operations.get_single(Operator::$operator) { [INFO] [stderr] 27 | Some(value) if is_i32!(value).abs() < error) => value as i32, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/compact1/font_set.rs:22:40 [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => ($value as i32 as Operand == $value)); [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 23 | | [INFO] [stderr] 24 | | macro_rules! get_single( [INFO] [stderr] 25 | | ($operations:expr, $operator:ident) => ( [INFO] [stderr] 26 | | match $operations.get_single(Operator::$operator) { [INFO] [stderr] 27 | | Some(value) if is_i32!(value) => value as i32, [INFO] [stderr] | |________________________________________^ [INFO] [stderr] ... [INFO] [stderr] 65 | tape.jump(position + get_single!(dictionary, CharStrings) as u64)?; [INFO] [stderr] | ------------------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/compact1/font_set.rs:22:40 [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => ($value as i32 as Operand == $value)); [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 23 | | [INFO] [stderr] 24 | | macro_rules! get_single( [INFO] [stderr] 25 | | ($operations:expr, $operator:ident) => ( [INFO] [stderr] 26 | | match $operations.get_single(Operator::$operator) { [INFO] [stderr] 27 | | Some(value) if is_i32!(value) => value as i32, [INFO] [stderr] | |________________________________________^ [INFO] [stderr] ... [INFO] [stderr] 65 | tape.jump(position + get_single!(dictionary, CharStrings) as u64)?; [INFO] [stderr] | ------------------------------------ in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] help: consider comparing them within some error [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => (($value as i32 as Operand - $value)); [INFO] [stderr] 23 | [INFO] [stderr] 24 | macro_rules! get_single( [INFO] [stderr] 25 | ($operations:expr, $operator:ident) => ( [INFO] [stderr] 26 | match $operations.get_single(Operator::$operator) { [INFO] [stderr] 27 | Some(value) if is_i32!(value).abs() < error) => value as i32, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/compact1/font_set.rs:22:40 [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => ($value as i32 as Operand == $value)); [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 23 | | [INFO] [stderr] 24 | | macro_rules! get_single( [INFO] [stderr] 25 | | ($operations:expr, $operator:ident) => ( [INFO] [stderr] 26 | | match $operations.get_single(Operator::$operator) { [INFO] [stderr] 27 | | Some(value) if is_i32!(value) => value as i32, [INFO] [stderr] | |________________________________________^ [INFO] [stderr] ... [INFO] [stderr] 66 | tape.take_given::(get_single!(dictionary, CharStringType))? [INFO] [stderr] | --------------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/compact1/font_set.rs:22:40 [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => ($value as i32 as Operand == $value)); [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 23 | | [INFO] [stderr] 24 | | macro_rules! get_single( [INFO] [stderr] 25 | | ($operations:expr, $operator:ident) => ( [INFO] [stderr] 26 | | match $operations.get_single(Operator::$operator) { [INFO] [stderr] 27 | | Some(value) if is_i32!(value) => value as i32, [INFO] [stderr] | |________________________________________^ [INFO] [stderr] ... [INFO] [stderr] 66 | tape.take_given::(get_single!(dictionary, CharStringType))? [INFO] [stderr] | --------------------------------------- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] help: consider comparing them within some error [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => (($value as i32 as Operand - $value)); [INFO] [stderr] 23 | [INFO] [stderr] 24 | macro_rules! get_single( [INFO] [stderr] 25 | ($operations:expr, $operator:ident) => ( [INFO] [stderr] 26 | match $operations.get_single(Operator::$operator) { [INFO] [stderr] 27 | Some(value) if is_i32!(value).abs() < error) => value as i32, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/compact1/font_set.rs:22:40 [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => ($value as i32 as Operand == $value)); [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 23 | | [INFO] [stderr] 24 | | macro_rules! get_single( [INFO] [stderr] 25 | | ($operations:expr, $operator:ident) => ( [INFO] [stderr] 26 | | match $operations.get_single(Operator::$operator) { [INFO] [stderr] 27 | | Some(value) if is_i32!(value) => value as i32, [INFO] [stderr] | |________________________________________^ [INFO] [stderr] ... [INFO] [stderr] 68 | char_sets.push(match get_single!(dictionary, CharSet) { [INFO] [stderr] | -------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/compact1/font_set.rs:22:40 [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => ($value as i32 as Operand == $value)); [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 23 | | [INFO] [stderr] 24 | | macro_rules! get_single( [INFO] [stderr] 25 | | ($operations:expr, $operator:ident) => ( [INFO] [stderr] 26 | | match $operations.get_single(Operator::$operator) { [INFO] [stderr] 27 | | Some(value) if is_i32!(value) => value as i32, [INFO] [stderr] | |________________________________________^ [INFO] [stderr] ... [INFO] [stderr] 68 | char_sets.push(match get_single!(dictionary, CharSet) { [INFO] [stderr] | -------------------------------- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] help: consider comparing them within some error [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => (($value as i32 as Operand - $value)); [INFO] [stderr] 23 | [INFO] [stderr] 24 | macro_rules! get_single( [INFO] [stderr] 25 | ($operations:expr, $operator:ident) => ( [INFO] [stderr] 26 | match $operations.get_single(Operator::$operator) { [INFO] [stderr] 27 | Some(value) if is_i32!(value).abs() < error) => value as i32, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/compact1/font_set.rs:22:40 [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => ($value as i32 as Operand == $value)); [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 23 | | [INFO] [stderr] 24 | | macro_rules! get_single( [INFO] [stderr] 25 | | ($operations:expr, $operator:ident) => ( [INFO] [stderr] ... | [INFO] [stderr] 35 | | match $operations.get_double(Operator::$operator) { [INFO] [stderr] 36 | | Some((value0, value1)) if is_i32!(value0) && is_i32!(value1) => { [INFO] [stderr] | |____________________________________________________^ [INFO] [stderr] ... [INFO] [stderr] 78 | let (size, offset) = get_double!(dictionary, Private); [INFO] [stderr] | -------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/compact1/font_set.rs:22:40 [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => ($value as i32 as Operand == $value)); [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 23 | | [INFO] [stderr] 24 | | macro_rules! get_single( [INFO] [stderr] 25 | | ($operations:expr, $operator:ident) => ( [INFO] [stderr] ... | [INFO] [stderr] 35 | | match $operations.get_double(Operator::$operator) { [INFO] [stderr] 36 | | Some((value0, value1)) if is_i32!(value0) && is_i32!(value1) => { [INFO] [stderr] | |____________________________________________________^ [INFO] [stderr] ... [INFO] [stderr] 78 | let (size, offset) = get_double!(dictionary, Private); [INFO] [stderr] | -------------------------------- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] help: consider comparing them within some error [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => (($value as i32 as Operand - $value)); [INFO] [stderr] 23 | [INFO] [stderr] 24 | macro_rules! get_single( [INFO] [stderr] 25 | ($operations:expr, $operator:ident) => ( [INFO] [stderr] 26 | match $operations.get_single(Operator::$operator) { [INFO] [stderr] 27 | Some(value) if is_i32!(value) => value as i32, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/compact1/font_set.rs:22:40 [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => ($value as i32 as Operand == $value)); [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 23 | | [INFO] [stderr] 24 | | macro_rules! get_single( [INFO] [stderr] 25 | | ($operations:expr, $operator:ident) => ( [INFO] [stderr] ... | [INFO] [stderr] 35 | | match $operations.get_double(Operator::$operator) { [INFO] [stderr] 36 | | Some((value0, value1)) if is_i32!(value0) && is_i32!(value1) => { [INFO] [stderr] | |_______________________________________________________________________^ [INFO] [stderr] ... [INFO] [stderr] 78 | let (size, offset) = get_double!(dictionary, Private); [INFO] [stderr] | -------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/compact1/font_set.rs:22:40 [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => ($value as i32 as Operand == $value)); [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 23 | | [INFO] [stderr] 24 | | macro_rules! get_single( [INFO] [stderr] 25 | | ($operations:expr, $operator:ident) => ( [INFO] [stderr] ... | [INFO] [stderr] 35 | | match $operations.get_double(Operator::$operator) { [INFO] [stderr] 36 | | Some((value0, value1)) if is_i32!(value0) && is_i32!(value1) => { [INFO] [stderr] | |_______________________________________________________________________^ [INFO] [stderr] ... [INFO] [stderr] 78 | let (size, offset) = get_double!(dictionary, Private); [INFO] [stderr] | -------------------------------- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] help: consider comparing them within some error [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => (($value as i32 as Operand - $value)); [INFO] [stderr] 23 | [INFO] [stderr] 24 | macro_rules! get_single( [INFO] [stderr] 25 | ($operations:expr, $operator:ident) => ( [INFO] [stderr] 26 | match $operations.get_single(Operator::$operator) { [INFO] [stderr] 27 | Some(value) if is_i32!(value) => value as i32, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/compact1/font_set.rs:22:40 [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => ($value as i32 as Operand == $value)); [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 23 | | [INFO] [stderr] 24 | | macro_rules! get_single( [INFO] [stderr] 25 | | ($operations:expr, $operator:ident) => ( [INFO] [stderr] ... | [INFO] [stderr] 35 | | match $operations.get_double(Operator::$operator) { [INFO] [stderr] 36 | | Some((value0, value1)) if is_i32!(value0) && is_i32!(value1) => { [INFO] [stderr] | |____________________________________________________^ [INFO] [stderr] ... [INFO] [stderr] 84 | let (_, mut offset) = get_double!(dictionary, Private); [INFO] [stderr] | -------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/compact1/font_set.rs:22:40 [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => ($value as i32 as Operand == $value)); [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 23 | | [INFO] [stderr] 24 | | macro_rules! get_single( [INFO] [stderr] 25 | | ($operations:expr, $operator:ident) => ( [INFO] [stderr] ... | [INFO] [stderr] 35 | | match $operations.get_double(Operator::$operator) { [INFO] [stderr] 36 | | Some((value0, value1)) if is_i32!(value0) && is_i32!(value1) => { [INFO] [stderr] | |____________________________________________________^ [INFO] [stderr] ... [INFO] [stderr] 84 | let (_, mut offset) = get_double!(dictionary, Private); [INFO] [stderr] | -------------------------------- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] help: consider comparing them within some error [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => (($value as i32 as Operand - $value)); [INFO] [stderr] 23 | [INFO] [stderr] 24 | macro_rules! get_single( [INFO] [stderr] 25 | ($operations:expr, $operator:ident) => ( [INFO] [stderr] 26 | match $operations.get_single(Operator::$operator) { [INFO] [stderr] 27 | Some(value) if is_i32!(value) => value as i32, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/compact1/font_set.rs:22:40 [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => ($value as i32 as Operand == $value)); [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 23 | | [INFO] [stderr] 24 | | macro_rules! get_single( [INFO] [stderr] 25 | | ($operations:expr, $operator:ident) => ( [INFO] [stderr] ... | [INFO] [stderr] 35 | | match $operations.get_double(Operator::$operator) { [INFO] [stderr] 36 | | Some((value0, value1)) if is_i32!(value0) && is_i32!(value1) => { [INFO] [stderr] | |_______________________________________________________________________^ [INFO] [stderr] ... [INFO] [stderr] 84 | let (_, mut offset) = get_double!(dictionary, Private); [INFO] [stderr] | -------------------------------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/compact1/font_set.rs:22:40 [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => ($value as i32 as Operand == $value)); [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 23 | | [INFO] [stderr] 24 | | macro_rules! get_single( [INFO] [stderr] 25 | | ($operations:expr, $operator:ident) => ( [INFO] [stderr] ... | [INFO] [stderr] 35 | | match $operations.get_double(Operator::$operator) { [INFO] [stderr] 36 | | Some((value0, value1)) if is_i32!(value0) && is_i32!(value1) => { [INFO] [stderr] | |_______________________________________________________________________^ [INFO] [stderr] ... [INFO] [stderr] 84 | let (_, mut offset) = get_double!(dictionary, Private); [INFO] [stderr] | -------------------------------- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] help: consider comparing them within some error [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => (($value as i32 as Operand - $value)); [INFO] [stderr] 23 | [INFO] [stderr] 24 | macro_rules! get_single( [INFO] [stderr] 25 | ($operations:expr, $operator:ident) => ( [INFO] [stderr] 26 | match $operations.get_single(Operator::$operator) { [INFO] [stderr] 27 | Some(value) if is_i32!(value) => value as i32, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/compact1/font_set.rs:22:40 [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => ($value as i32 as Operand == $value)); [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 23 | | [INFO] [stderr] 24 | | macro_rules! get_single( [INFO] [stderr] 25 | | ($operations:expr, $operator:ident) => ( [INFO] [stderr] 26 | | match $operations.get_single(Operator::$operator) { [INFO] [stderr] 27 | | Some(value) if is_i32!(value) => value as i32, [INFO] [stderr] | |________________________________________^ [INFO] [stderr] ... [INFO] [stderr] 85 | offset += get_single!(&local_dictionaries[i], Subrs); [INFO] [stderr] | ------------------------------------------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/compact1/font_set.rs:22:40 [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => ($value as i32 as Operand == $value)); [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 23 | | [INFO] [stderr] 24 | | macro_rules! get_single( [INFO] [stderr] 25 | | ($operations:expr, $operator:ident) => ( [INFO] [stderr] 26 | | match $operations.get_single(Operator::$operator) { [INFO] [stderr] 27 | | Some(value) if is_i32!(value) => value as i32, [INFO] [stderr] | |________________________________________^ [INFO] [stderr] ... [INFO] [stderr] 85 | offset += get_single!(&local_dictionaries[i], Subrs); [INFO] [stderr] | ------------------------------------------ in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] help: consider comparing them within some error [INFO] [stderr] | [INFO] [stderr] 22 | macro_rules! is_i32(($value:ident) => (($value as i32 as Operand - $value)); [INFO] [stderr] 23 | [INFO] [stderr] 24 | macro_rules! get_single( [INFO] [stderr] 25 | ($operations:expr, $operator:ident) => ( [INFO] [stderr] 26 | match $operations.get_single(Operator::$operator) { [INFO] [stderr] 27 | Some(value) if is_i32!(value).abs() < error) => value as i32, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: calls to `std::mem::forget` with a value that implements Copy. Forgetting a copy leaves the original intact. [INFO] [stderr] --> src/macros.rs:61:19 [INFO] [stderr] | [INFO] [stderr] 61 | $(::std::mem::forget(::std::mem::replace(&mut table.$field, tape.take()?));)+ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/compact1/header.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | / table! { [INFO] [stderr] 4 | | #[doc = "A header."] [INFO] [stderr] 5 | | #[derive(Copy)] [INFO] [stderr] 6 | | pub Header { [INFO] [stderr] ... | [INFO] [stderr] 11 | | } [INFO] [stderr] 12 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::forget_copy)] on by default [INFO] [stderr] note: argument has type u8 [INFO] [stderr] --> src/macros.rs:61:38 [INFO] [stderr] | [INFO] [stderr] 61 | $(::std::mem::forget(::std::mem::replace(&mut table.$field, tape.take()?));)+ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/compact1/header.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | / table! { [INFO] [stderr] 4 | | #[doc = "A header."] [INFO] [stderr] 5 | | #[derive(Copy)] [INFO] [stderr] 6 | | pub Header { [INFO] [stderr] ... | [INFO] [stderr] 11 | | } [INFO] [stderr] 12 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#forget_copy [INFO] [stderr] [INFO] [stderr] error: calls to `std::mem::forget` with a value that implements Copy. Forgetting a copy leaves the original intact. [INFO] [stderr] --> src/macros.rs:61:19 [INFO] [stderr] | [INFO] [stderr] 61 | $(::std::mem::forget(::std::mem::replace(&mut table.$field, tape.take()?));)+ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/compact1/header.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | / table! { [INFO] [stderr] 4 | | #[doc = "A header."] [INFO] [stderr] 5 | | #[derive(Copy)] [INFO] [stderr] 6 | | pub Header { [INFO] [stderr] ... | [INFO] [stderr] 11 | | } [INFO] [stderr] 12 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: argument has type u8 [INFO] [stderr] --> src/macros.rs:61:38 [INFO] [stderr] | [INFO] [stderr] 61 | $(::std::mem::forget(::std::mem::replace(&mut table.$field, tape.take()?));)+ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/compact1/header.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | / table! { [INFO] [stderr] 4 | | #[doc = "A header."] [INFO] [stderr] 5 | | #[derive(Copy)] [INFO] [stderr] 6 | | pub Header { [INFO] [stderr] ... | [INFO] [stderr] 11 | | } [INFO] [stderr] 12 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#forget_copy [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/compact1/number.rs:8:25 [INFO] [stderr] | [INFO] [stderr] 8 | 0x20...0xf6 => (first as i32 - 139) as f32, [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(first)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/compact1/number.rs:9:26 [INFO] [stderr] | [INFO] [stderr] 9 | 0xf7...0xfa => ((first as i32 - 247) * 256 + tape.take::()? as i32 + 108) as f32, [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(first)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/compact1/number.rs:9:54 [INFO] [stderr] | [INFO] [stderr] 9 | 0xf7...0xfa => ((first as i32 - 247) * 256 + tape.take::()? as i32 + 108) as f32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(tape.take::()?)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/compact1/number.rs:10:27 [INFO] [stderr] | [INFO] [stderr] 10 | 0xfb...0xfe => (-(first as i32 - 251) * 256 - tape.take::()? as i32 - 108) as f32, [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(first)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/compact1/number.rs:10:55 [INFO] [stderr] | [INFO] [stderr] 10 | 0xfb...0xfe => (-(first as i32 - 251) * 256 - tape.take::()? as i32 - 108) as f32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(tape.take::()?)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/compact1/number.rs:11:17 [INFO] [stderr] | [INFO] [stderr] 11 | 0x1c => tape.take::()? as i16 as i32 as f32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(tape.take::()? as i16)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/compact1/number.rs:23:22 [INFO] [stderr] | [INFO] [stderr] 23 | let nibble = match high { [INFO] [stderr] | ______________________^ [INFO] [stderr] 24 | | true => { [INFO] [stderr] 25 | | byte = tape.take::()?; [INFO] [stderr] 26 | | byte >> 4 [INFO] [stderr] 27 | | } [INFO] [stderr] 28 | | false => byte & 0x0f, [INFO] [stderr] 29 | | }; [INFO] [stderr] | |_________^ [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] 23 | let nibble = if high { [INFO] [stderr] 24 | byte = tape.take::()?; [INFO] [stderr] 25 | byte >> 4 [INFO] [stderr] 26 | } else { byte & 0x0f }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/compact1/number.rs:32:35 [INFO] [stderr] | [INFO] [stderr] 32 | 0...9 => buffer.push(('0' as u8 + nibble) as char), [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::char_lit_as_u8)] on by default [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'0' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/compact1/number.rs:88:17 [INFO] [stderr] | [INFO] [stderr] 88 | assert!(read!(tape) == -2.25); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(super::read(&mut $tape).unwrap() - -2.25).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/compact1/number.rs:88:17 [INFO] [stderr] | [INFO] [stderr] 88 | assert!(read!(tape) == -2.25); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/compact1/offset.rs:28:18 [INFO] [stderr] | [INFO] [stderr] 28 | 1 => tape.take::()? as u32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(tape.take::()?)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/compact1/offset.rs:29:18 [INFO] [stderr] | [INFO] [stderr] 29 | 2 => tape.take::()? as u32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(tape.take::()?)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/compact1/operation.rs:28:25 [INFO] [stderr] | [INFO] [stderr] 28 | tape.take::()? as u16 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(tape.take::()?)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/compact1/operation.rs:51:16 [INFO] [stderr] | [INFO] [stderr] 51 | if operands.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!operands.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] error: calls to `std::mem::forget` with a value that implements Copy. Forgetting a copy leaves the original intact. [INFO] [stderr] --> src/macros.rs:61:19 [INFO] [stderr] | [INFO] [stderr] 61 | $(::std::mem::forget(::std::mem::replace(&mut table.$field, tape.take()?));)+ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/compact1/char_set.rs:22:1 [INFO] [stderr] | [INFO] [stderr] 22 | / table! { [INFO] [stderr] 23 | | #[doc = "A range of a char set in format 1."] [INFO] [stderr] 24 | | #[derive(Copy)] [INFO] [stderr] 25 | | pub Range1 { [INFO] [stderr] ... | [INFO] [stderr] 28 | | } [INFO] [stderr] 29 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: argument has type u16 [INFO] [stderr] --> src/macros.rs:61:38 [INFO] [stderr] | [INFO] [stderr] 61 | $(::std::mem::forget(::std::mem::replace(&mut table.$field, tape.take()?));)+ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/compact1/char_set.rs:22:1 [INFO] [stderr] | [INFO] [stderr] 22 | / table! { [INFO] [stderr] 23 | | #[doc = "A range of a char set in format 1."] [INFO] [stderr] 24 | | #[derive(Copy)] [INFO] [stderr] 25 | | pub Range1 { [INFO] [stderr] ... | [INFO] [stderr] 28 | | } [INFO] [stderr] 29 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#forget_copy [INFO] [stderr] [INFO] [stderr] error: calls to `std::mem::forget` with a value that implements Copy. Forgetting a copy leaves the original intact. [INFO] [stderr] --> src/macros.rs:61:19 [INFO] [stderr] | [INFO] [stderr] 61 | $(::std::mem::forget(::std::mem::replace(&mut table.$field, tape.take()?));)+ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/compact1/char_set.rs:22:1 [INFO] [stderr] | [INFO] [stderr] 22 | / table! { [INFO] [stderr] 23 | | #[doc = "A range of a char set in format 1."] [INFO] [stderr] 24 | | #[derive(Copy)] [INFO] [stderr] 25 | | pub Range1 { [INFO] [stderr] ... | [INFO] [stderr] 28 | | } [INFO] [stderr] 29 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: argument has type u8 [INFO] [stderr] --> src/macros.rs:61:38 [INFO] [stderr] | [INFO] [stderr] 61 | $(::std::mem::forget(::std::mem::replace(&mut table.$field, tape.take()?));)+ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/compact1/char_set.rs:22:1 [INFO] [stderr] | [INFO] [stderr] 22 | / table! { [INFO] [stderr] 23 | | #[doc = "A range of a char set in format 1."] [INFO] [stderr] 24 | | #[derive(Copy)] [INFO] [stderr] 25 | | pub Range1 { [INFO] [stderr] ... | [INFO] [stderr] 28 | | } [INFO] [stderr] 29 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#forget_copy [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/compact1/char_set.rs:35:9 [INFO] [stderr] | [INFO] [stderr] 35 | / match self { [INFO] [stderr] 36 | | &CharSet::ISOAdobe => get_iso_adobe(gid), [INFO] [stderr] 37 | | &CharSet::Expert => get_expert(gid), [INFO] [stderr] 38 | | &CharSet::ExpertSubset => get_expert_subset(gid), [INFO] [stderr] 39 | | _ => unimplemented!(), [INFO] [stderr] 40 | | } [INFO] [stderr] | |_________^ [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] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 35 | match *self { [INFO] [stderr] 36 | CharSet::ISOAdobe => get_iso_adobe(gid), [INFO] [stderr] 37 | CharSet::Expert => get_expert(gid), [INFO] [stderr] 38 | CharSet::ExpertSubset => get_expert_subset(gid), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `1` [INFO] [stderr] --> src/compact1/char_set.rs:67:25 [INFO] [stderr] | [INFO] [stderr] 67 | let mut found = 0 + 1; [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/compact1/encoding.rs:15:16 [INFO] [stderr] | [INFO] [stderr] 15 | pub fn get(&self, gid: GlyphID) -> Option { [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: an inclusive range would be more readable [INFO] [stderr] --> src/compact1/index/mod.rs:32:18 [INFO] [stderr] | [INFO] [stderr] 32 | for i in 0..(count as usize + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use: `0..=count as usize` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/type2/number.rs:8:25 [INFO] [stderr] | [INFO] [stderr] 8 | 0x20...0xf6 => (first as i32 - 139) as f32, [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(first)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/type2/number.rs:9:26 [INFO] [stderr] | [INFO] [stderr] 9 | 0xf7...0xfa => ((first as i32 - 247) * 256 + tape.take::()? as i32 + 108) as f32, [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(first)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/type2/number.rs:9:54 [INFO] [stderr] | [INFO] [stderr] 9 | 0xf7...0xfa => ((first as i32 - 247) * 256 + tape.take::()? as i32 + 108) as f32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(tape.take::()?)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/type2/number.rs:10:27 [INFO] [stderr] | [INFO] [stderr] 10 | 0xfb...0xfe => (-(first as i32 - 251) * 256 - tape.take::()? as i32 - 108) as f32, [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i32::from(first)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/type2/number.rs:10:55 [INFO] [stderr] | [INFO] [stderr] 10 | 0xfb...0xfe => (-(first as i32 - 251) * 256 - tape.take::()? as i32 - 108) as f32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(tape.take::()?)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i16 to i32 may become silently lossy if types change [INFO] [stderr] --> src/type2/number.rs:11:17 [INFO] [stderr] | [INFO] [stderr] 11 | 0x1c => tape.take::()? as i16 as i32 as f32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(tape.take::()? as i16)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: defining a method called `next` on this type; consider implementing the `std::iter::Iterator` trait or choosing a less ambiguous name [INFO] [stderr] --> src/type2/program.rs:39:5 [INFO] [stderr] | [INFO] [stderr] 39 | / pub fn next(&mut self) -> Result> { [INFO] [stderr] 40 | | use type2::Operator::*; [INFO] [stderr] 41 | | [INFO] [stderr] 42 | | if self.routine.done()? { [INFO] [stderr] ... | [INFO] [stderr] 281 | | self.next() [INFO] [stderr] 282 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::should_implement_trait)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 64 [INFO] [stderr] --> src/type2/program.rs:39:5 [INFO] [stderr] | [INFO] [stderr] 39 | / pub fn next(&mut self) -> Result> { [INFO] [stderr] 40 | | use type2::Operator::*; [INFO] [stderr] 41 | | [INFO] [stderr] 42 | | if self.routine.done()? { [INFO] [stderr] ... | [INFO] [stderr] 281 | | self.next() [INFO] [stderr] 282 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/type2/program.rs:89:28 [INFO] [stderr] | [INFO] [stderr] 89 | Operator::from(self.routine.take::()? as u16)? [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(self.routine.take::()?)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/type2/program.rs:111:26 [INFO] [stderr] | [INFO] [stderr] 111 | for i in 1..($left / $count + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use: `1..=$left` [INFO] [stderr] ... [INFO] [stderr] 142 | RLineTo => clear!([modulo(2)]), [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#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/type2/program.rs:117:26 [INFO] [stderr] | [INFO] [stderr] 117 | for i in 0..($left / $count + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use: `0..=$left` [INFO] [stderr] ... [INFO] [stderr] 143 | HLineTo | VLineTo => clear!([equal(1), maybe_modulo(2)], [modulo(2)]), [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#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/type2/program.rs:111:26 [INFO] [stderr] | [INFO] [stderr] 111 | for i in 1..($left / $count + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use: `1..=$left` [INFO] [stderr] ... [INFO] [stderr] 143 | HLineTo | VLineTo => clear!([equal(1), maybe_modulo(2)], [modulo(2)]), [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#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/type2/program.rs:111:26 [INFO] [stderr] | [INFO] [stderr] 111 | for i in 1..($left / $count + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use: `1..=$left` [INFO] [stderr] ... [INFO] [stderr] 144 | RRCurveTo => clear!([modulo(6)]), [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#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/type2/program.rs:111:26 [INFO] [stderr] | [INFO] [stderr] 111 | for i in 1..($left / $count + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use: `1..=$left` [INFO] [stderr] ... [INFO] [stderr] 145 | HHCurveTo | VVCurveTo => clear!([maybe_equal(1), modulo(4)]), [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#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/type2/program.rs:111:26 [INFO] [stderr] | [INFO] [stderr] 111 | for i in 1..($left / $count + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use: `1..=$left` [INFO] [stderr] ... [INFO] [stderr] 145 | HHCurveTo | VVCurveTo => clear!([maybe_equal(1), modulo(4)]), [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#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/type2/program.rs:117:26 [INFO] [stderr] | [INFO] [stderr] 117 | for i in 0..($left / $count + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use: `0..=$left` [INFO] [stderr] ... [INFO] [stderr] 146 | HVCurveTo | VHCurveTo => clear!( [INFO] [stderr] | ______________________________________- [INFO] [stderr] 147 | | [equal(4), maybe_modulo(8), maybe_equal(1)], [INFO] [stderr] 148 | | [modulo(8), maybe_equal(1)] [INFO] [stderr] 149 | | ), [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#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/type2/program.rs:111:26 [INFO] [stderr] | [INFO] [stderr] 111 | for i in 1..($left / $count + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use: `1..=$left` [INFO] [stderr] ... [INFO] [stderr] 146 | HVCurveTo | VHCurveTo => clear!( [INFO] [stderr] | ______________________________________- [INFO] [stderr] 147 | | [equal(4), maybe_modulo(8), maybe_equal(1)], [INFO] [stderr] 148 | | [modulo(8), maybe_equal(1)] [INFO] [stderr] 149 | | ), [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#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/type2/program.rs:111:26 [INFO] [stderr] | [INFO] [stderr] 111 | for i in 1..($left / $count + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use: `1..=$left` [INFO] [stderr] ... [INFO] [stderr] 150 | RCurveLine => clear!([modulo(6), equal(2)]), [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#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/type2/program.rs:111:26 [INFO] [stderr] | [INFO] [stderr] 111 | for i in 1..($left / $count + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use: `1..=$left` [INFO] [stderr] ... [INFO] [stderr] 151 | RLineCurve => clear!([modulo(2), equal(6)]), [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#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/type2/program.rs:117:26 [INFO] [stderr] | [INFO] [stderr] 117 | for i in 0..($left / $count + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: use: `0..=$left` [INFO] [stderr] ... [INFO] [stderr] 175 | clear!([equal(2), maybe_modulo(2)]); [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#range_plus_one [INFO] [stderr] [INFO] [stderr] error: calls to `std::mem::drop` with a value that implements Copy. Dropping a copy leaves the original intact. [INFO] [stderr] --> src/type2/program.rs:198:21 [INFO] [stderr] | [INFO] [stderr] 198 | Drop => mem::drop(pop!()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::drop_copy)] on by default [INFO] [stderr] note: argument has type f32 [INFO] [stderr] --> src/type2/program.rs:47:20 [INFO] [stderr] | [INFO] [stderr] 47 | () => (match self.stack.pop() { [INFO] [stderr] | ____________________^ [INFO] [stderr] 48 | | Some(value) => value, [INFO] [stderr] 49 | | _ => raise!("expected an operand"), [INFO] [stderr] 50 | | }); [INFO] [stderr] | |_____________^ [INFO] [stderr] ... [INFO] [stderr] 198 | Drop => mem::drop(pop!()), [INFO] [stderr] | ------ in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#drop_copy [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/type2/program.rs:56:32 [INFO] [stderr] | [INFO] [stderr] 56 | Some(value) if value as i32 as Operand == value => value as i32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(value as i32 as Operand - value).abs() < error` [INFO] [stderr] ... [INFO] [stderr] 205 | let i = pop!(i32); [INFO] [stderr] | --------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/type2/program.rs:56:32 [INFO] [stderr] | [INFO] [stderr] 56 | Some(value) if value as i32 as Operand == value => value as i32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 205 | let i = pop!(i32); [INFO] [stderr] | --------- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/type2/program.rs:56:32 [INFO] [stderr] | [INFO] [stderr] 56 | Some(value) if value as i32 as Operand == value => value as i32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(value as i32 as Operand - value).abs() < error` [INFO] [stderr] ... [INFO] [stderr] 209 | let (shift, span) = (pop!(i32), pop!(i32)); [INFO] [stderr] | --------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/type2/program.rs:56:32 [INFO] [stderr] | [INFO] [stderr] 56 | Some(value) if value as i32 as Operand == value => value as i32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 209 | let (shift, span) = (pop!(i32), pop!(i32)); [INFO] [stderr] | --------- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/type2/program.rs:56:32 [INFO] [stderr] | [INFO] [stderr] 56 | Some(value) if value as i32 as Operand == value => value as i32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(value as i32 as Operand - value).abs() < error` [INFO] [stderr] ... [INFO] [stderr] 209 | let (shift, span) = (pop!(i32), pop!(i32)); [INFO] [stderr] | --------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/type2/program.rs:56:32 [INFO] [stderr] | [INFO] [stderr] 56 | Some(value) if value as i32 as Operand == value => value as i32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 209 | let (shift, span) = (pop!(i32), pop!(i32)); [INFO] [stderr] | --------- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/type2/program.rs:247:23 [INFO] [stderr] | [INFO] [stderr] 247 | push!(left == right, bool); [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider comparing them within some error: `(left - right).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/type2/program.rs:247:23 [INFO] [stderr] | [INFO] [stderr] 247 | push!(left == right, bool); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/type2/program.rs:56:32 [INFO] [stderr] | [INFO] [stderr] 56 | Some(value) if value as i32 as Operand == value => value as i32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(value as i32 as Operand - value).abs() < error` [INFO] [stderr] ... [INFO] [stderr] 256 | let address = pop!(i32); [INFO] [stderr] | --------- in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/type2/program.rs:56:32 [INFO] [stderr] | [INFO] [stderr] 56 | Some(value) if value as i32 as Operand == value => value as i32, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 256 | let address = pop!(i32); [INFO] [stderr] | --------- in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: aborting due to 20 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `postscript`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "5ccafc8edb3e9c8a1fcd4d717aa708622f625a01d73993cc816db80959a1df25"` [INFO] running `"docker" "rm" "-f" "5ccafc8edb3e9c8a1fcd4d717aa708622f625a01d73993cc816db80959a1df25"` [INFO] [stdout] 5ccafc8edb3e9c8a1fcd4d717aa708622f625a01d73993cc816db80959a1df25