[INFO] fetching crate decal 0.7.1...
[INFO] checking decal-0.7.1 against 52995a223f2919dd3e2e427231db90a257350ded for pr-129249-4
[INFO] extracting crate decal 0.7.1 into /workspace/builds/worker-1-tc2/source
[INFO] started tweaking crates.io crate decal 0.7.1
[INFO] finished tweaking crates.io crate decal 0.7.1
[INFO] tweaked toml for crates.io crate decal 0.7.1 written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate decal 0.7.1 on toolchain 52995a223f2919dd3e2e427231db90a257350ded
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate decal 0.7.1 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:c0af3998e971868164375a7dfb646c9933ddd1a3bdb00fa2041266763dc1eeab" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 8a669d7aeb503c548ac050a55f1a0fd7a779f8e569f61cb83b0ba1669b98f0b2
[INFO] running `Command { std: "docker" "start" "8a669d7aeb503c548ac050a55f1a0fd7a779f8e569f61cb83b0ba1669b98f0b2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8a669d7aeb503c548ac050a55f1a0fd7a779f8e569f61cb83b0ba1669b98f0b2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "8a669d7aeb503c548ac050a55f1a0fd7a779f8e569f61cb83b0ba1669b98f0b2" "/opt/rustwide/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8a669d7aeb503c548ac050a55f1a0fd7a779f8e569f61cb83b0ba1669b98f0b2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "8a669d7aeb503c548ac050a55f1a0fd7a779f8e569f61cb83b0ba1669b98f0b2" "/opt/rustwide/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking float-cmp v0.9.0
[INFO] [stderr]    Compiling syn v3.0.3
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking tinyvec v1.12.0
[INFO] [stderr]    Compiling zerocopy-derive v0.8.56
[INFO] [stderr]     Checking memmap2 v0.9.11
[INFO] [stderr]     Checking ttf-parser v0.25.1
[INFO] [stderr]     Checking polycool v0.4.0
[INFO] [stderr]     Checking ring v0.17.14
[INFO] [stderr]     Checking fdeflate v0.3.7
[INFO] [stderr]     Checking unicode-properties v0.1.4
[INFO] [stderr]     Checking unicode-bidi-mirroring v0.4.0
[INFO] [stderr]     Checking unicode-ccc v0.4.0
[INFO] [stderr]    Compiling convert_case v0.6.0
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling alloca v0.4.0
[INFO] [stderr]     Checking roxmltree v0.21.1
[INFO] [stderr]     Checking strict-num v0.1.1
[INFO] [stderr]     Checking simplecss v0.2.2
[INFO] [stderr]     Checking quick-error v2.0.1
[INFO] [stderr]     Checking pico-args v0.5.0
[INFO] [stderr]     Checking kurbo v0.13.1
[INFO] [stderr]     Checking zeno v0.3.3
[INFO] [stderr]     Checking weezl v0.1.12
[INFO] [stderr]     Checking data-url v0.3.2
[INFO] [stderr]     Checking zune-core v0.5.3
[INFO] [stderr]     Checking unicode-vo v0.1.0
[INFO] [stderr]     Checking uuid v1.25.0
[INFO] [stderr]     Checking xmlwriter v0.1.0
[INFO] [stderr]     Checking imagesize v0.14.0
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]     Checking regex-automata v0.4.18
[INFO] [stderr]     Checking clap_builder v4.6.6
[INFO] [stderr]     Checking cfb v0.7.3
[INFO] [stderr]     Checking flate2 v1.1.9
[INFO] [stderr]     Checking zune-jpeg v0.5.15
[INFO] [stderr]     Checking gif v0.14.2
[INFO] [stderr]     Checking ureq-proto v0.6.1
[INFO] [stderr]     Checking image-webp v0.2.4
[INFO] [stderr]     Checking png v0.18.1
[INFO] [stderr]     Checking serde_json v1.0.151
[INFO] [stderr]     Checking itertools v0.13.0
[INFO] [stderr]     Checking self_cell v1.3.0
[INFO] [stderr]     Checking smol_str v0.3.6
[INFO] [stderr]     Checking rangemap v1.8.0
[INFO] [stderr]     Checking rustc-hash v2.1.3
[INFO] [stderr]     Checking infer v0.19.0
[INFO] [stderr]     Checking svgtypes v0.16.1
[INFO] [stderr]     Checking plotters v0.3.7
[INFO] [stderr]     Checking strict-num v0.2.0
[INFO] [stderr]    Compiling decal-macros v0.7.1
[INFO] [stderr]     Checking lru v0.16.4
[INFO] [stderr]     Checking taffy v0.9.2
[INFO] [stderr]     Checking page_size v0.6.0
[INFO] [stderr]    Compiling smart-default v0.7.1
[INFO] [stderr]     Checking rustls-webpki v0.103.15
[INFO] [stderr]     Checking quick-xml v0.39.4
[INFO] [stderr]     Checking twox-hash v2.1.3
[INFO] [stderr]     Checking xml v1.4.0
[INFO] [stderr]     Checking color v0.3.3
[INFO] [stderr]     Checking rustls v0.23.43
[INFO] [stderr]     Checking regex v1.13.1
[INFO] [stderr]     Checking zerocopy v0.8.56
[INFO] [stderr]     Checking xmltree v0.12.0
[INFO] [stderr]    Compiling bytemuck_derive v1.12.0
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling thiserror-impl v2.0.20
[INFO] [stderr]     Checking clap v4.6.6
[INFO] [stderr]     Checking fontdb v0.23.0
[INFO] [stderr]     Checking criterion-plot v0.8.2
[INFO] [stderr]     Checking thiserror v2.0.20
[INFO] [stderr]     Checking bytemuck v1.25.2
[INFO] [stderr]    Compiling enum-display-macro v0.2.1
[INFO] [stderr]     Checking font-types v0.11.3
[INFO] [stderr]     Checking font-types v0.12.4
[INFO] [stderr]     Checking tiny-skia-path v0.12.0
[INFO] [stderr]     Checking rustybuzz v0.20.1
[INFO] [stderr]     Checking rgb v0.8.53
[INFO] [stderr]     Checking read-fonts v0.41.0
[INFO] [stderr]     Checking enum-display v0.2.1
[INFO] [stderr]     Checking read-fonts v0.37.0
[INFO] [stderr]     Checking tiny-skia v0.12.0
[INFO] [stderr]     Checking serde v1.0.229
[INFO] [stderr]     Checking ureq v3.4.0
[INFO] [stderr]     Checking tinytemplate v1.2.1
[INFO] [stderr]     Checking usvg v0.47.0
[INFO] [stderr]     Checking resvg v0.47.0
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking ciborium-ll v0.2.2
[INFO] [stderr]     Checking ciborium v0.2.2
[INFO] [stderr]     Checking criterion v0.8.2
[INFO] [stderr]     Checking skrifa v0.44.0
[INFO] [stderr]     Checking skrifa v0.40.0
[INFO] [stderr]     Checking harfrust v0.5.2
[INFO] [stderr]     Checking swash v0.2.10
[INFO] [stderr]     Checking cosmic-text v0.18.2
[INFO] [stderr]     Checking decal v0.7.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/filters/primitives/component_transfer.rs:151:33
[INFO] [stdout]     |
[INFO] [stdout] 151 |             slope: ff32!(slope, 1.0),
[INFO] [stdout]     |                                 ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout]     = note: `#[warn(float_literal_f32_fallback)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/filters/primitives/component_transfer.rs:167:41
[INFO] [stdout]     |
[INFO] [stdout] 167 |             amplitude: ff32!(amplitude, 1.0),
[INFO] [stdout]     |                                         ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/filters/primitives/component_transfer.rs:168:39
[INFO] [stdout]     |
[INFO] [stdout] 168 |             exponent: ff32!(exponent, 1.0),
[INFO] [stdout]     |                                       ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/filters/primitives/diffuse_lighting.rs:54:34
[INFO] [stdout]    |
[INFO] [stdout] 54 |             surface_scale: ff32!(1.0),
[INFO] [stdout]    |                                  ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/filters/primitives/diffuse_lighting.rs:55:37
[INFO] [stdout]    |
[INFO] [stdout] 55 |             diffuse_constant: pf32!(1.0),
[INFO] [stdout]    |                                     ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/filters/primitives/drop_shadow.rs:34:21
[INFO] [stdout]    |
[INFO] [stdout] 34 |     #[default(ff32!(2.0))]
[INFO] [stdout]    |                     ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/filters/primitives/drop_shadow.rs:36:21
[INFO] [stdout]    |
[INFO] [stdout] 36 |     #[default(ff32!(2.0))]
[INFO] [stdout]    |                     ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/filters/primitives/specular_lighting.rs:58:34
[INFO] [stdout]    |
[INFO] [stdout] 58 |             surface_scale: ff32!(1.0),
[INFO] [stdout]    |                                  ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/filters/primitives/specular_lighting.rs:59:38
[INFO] [stdout]    |
[INFO] [stdout] 59 |             specular_constant: pf32!(1.0),
[INFO] [stdout]    |                                      ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/filters/primitives/specular_lighting.rs:60:38
[INFO] [stdout]    |
[INFO] [stdout] 60 |             specular_exponent: pf32!(1.0),
[INFO] [stdout]    |                                      ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/utils/element_writer.rs:449:38
[INFO] [stdout]     |
[INFO] [stdout] 449 |                     .attr("x", nf32!(0.5))?
[INFO] [stdout]     |                                      ^^^ help: explicitly specify the type as `f32`: `0.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout]     = note: `#[warn(float_literal_f32_fallback)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/utils/element_writer.rs:450:38
[INFO] [stdout]     |
[INFO] [stdout] 450 |                     .attr("y", pf32!(1.5))?
[INFO] [stdout]     |                                      ^^^ help: explicitly specify the type as `f32`: `1.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/utils/element_writer.rs:451:38
[INFO] [stdout]     |
[INFO] [stdout] 451 |                     .attr("z", ff32!(2.5))?
[INFO] [stdout]     |                                      ^^^ help: explicitly specify the type as `f32`: `2.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/filters/primitives/component_transfer.rs:151:33
[INFO] [stdout]     |
[INFO] [stdout] 151 |             slope: ff32!(slope, 1.0),
[INFO] [stdout]     |                                 ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/filters/primitives/component_transfer.rs:167:41
[INFO] [stdout]     |
[INFO] [stdout] 167 |             amplitude: ff32!(amplitude, 1.0),
[INFO] [stdout]     |                                         ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/filters/primitives/component_transfer.rs:168:39
[INFO] [stdout]     |
[INFO] [stdout] 168 |             exponent: ff32!(exponent, 1.0),
[INFO] [stdout]     |                                       ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/primitives/light_source.rs:150:84
[INFO] [stdout]     |
[INFO] [stdout] 150 |             specular_exponent: specular_exponent.map(|x| ff32!(x)).unwrap_or(ff32!(1.0)),
[INFO] [stdout]     |                                                                                    ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/primitives/paint.rs:139:21
[INFO] [stdout]     |
[INFO] [stdout] 139 |     #[default(nf32!(0.5))]
[INFO] [stdout]     |                     ^^^ help: explicitly specify the type as `f32`: `0.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/primitives/paint.rs:141:21
[INFO] [stdout]     |
[INFO] [stdout] 141 |     #[default(nf32!(0.5))]
[INFO] [stdout]     |                     ^^^ help: explicitly specify the type as `f32`: `0.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/primitives/paint.rs:236:24
[INFO] [stdout]     |
[INFO] [stdout] 236 |         self.x = nf32!(0.0);
[INFO] [stdout]     |                        ^^^ help: explicitly specify the type as `f32`: `0.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/primitives/paint.rs:237:24
[INFO] [stdout]     |
[INFO] [stdout] 237 |         self.y = nf32!(0.0);
[INFO] [stdout]     |                        ^^^ help: explicitly specify the type as `f32`: `0.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/primitives/paint.rs:246:24
[INFO] [stdout]     |
[INFO] [stdout] 246 |         self.x = nf32!(0.5);
[INFO] [stdout]     |                        ^^^ help: explicitly specify the type as `f32`: `0.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/primitives/paint.rs:247:24
[INFO] [stdout]     |
[INFO] [stdout] 247 |         self.y = nf32!(0.0);
[INFO] [stdout]     |                        ^^^ help: explicitly specify the type as `f32`: `0.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/primitives/paint.rs:256:24
[INFO] [stdout]     |
[INFO] [stdout] 256 |         self.x = nf32!(1.0);
[INFO] [stdout]     |                        ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/primitives/paint.rs:257:24
[INFO] [stdout]     |
[INFO] [stdout] 257 |         self.y = nf32!(0.0);
[INFO] [stdout]     |                        ^^^ help: explicitly specify the type as `f32`: `0.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/primitives/paint.rs:266:24
[INFO] [stdout]     |
[INFO] [stdout] 266 |         self.x = nf32!(0.0);
[INFO] [stdout]     |                        ^^^ help: explicitly specify the type as `f32`: `0.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/primitives/paint.rs:267:24
[INFO] [stdout]     |
[INFO] [stdout] 267 |         self.y = nf32!(0.5);
[INFO] [stdout]     |                        ^^^ help: explicitly specify the type as `f32`: `0.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/primitives/paint.rs:276:24
[INFO] [stdout]     |
[INFO] [stdout] 276 |         self.x = nf32!(0.5);
[INFO] [stdout]     |                        ^^^ help: explicitly specify the type as `f32`: `0.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/primitives/paint.rs:277:24
[INFO] [stdout]     |
[INFO] [stdout] 277 |         self.y = nf32!(0.5);
[INFO] [stdout]     |                        ^^^ help: explicitly specify the type as `f32`: `0.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/primitives/paint.rs:286:24
[INFO] [stdout]     |
[INFO] [stdout] 286 |         self.x = nf32!(1.0);
[INFO] [stdout]     |                        ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/primitives/paint.rs:287:24
[INFO] [stdout]     |
[INFO] [stdout] 287 |         self.y = nf32!(0.5);
[INFO] [stdout]     |                        ^^^ help: explicitly specify the type as `f32`: `0.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/primitives/paint.rs:296:24
[INFO] [stdout]     |
[INFO] [stdout] 296 |         self.x = nf32!(0.0);
[INFO] [stdout]     |                        ^^^ help: explicitly specify the type as `f32`: `0.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/primitives/paint.rs:297:24
[INFO] [stdout]     |
[INFO] [stdout] 297 |         self.y = nf32!(1.0);
[INFO] [stdout]     |                        ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/primitives/paint.rs:306:24
[INFO] [stdout]     |
[INFO] [stdout] 306 |         self.x = nf32!(0.5);
[INFO] [stdout]     |                        ^^^ help: explicitly specify the type as `f32`: `0.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/primitives/paint.rs:307:24
[INFO] [stdout]     |
[INFO] [stdout] 307 |         self.y = nf32!(1.0);
[INFO] [stdout]     |                        ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/primitives/paint.rs:316:24
[INFO] [stdout]     |
[INFO] [stdout] 316 |         self.x = nf32!(1.0);
[INFO] [stdout]     |                        ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/primitives/paint.rs:317:24
[INFO] [stdout]     |
[INFO] [stdout] 317 |         self.y = nf32!(1.0);
[INFO] [stdout]     |                        ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/filters/primitives/diffuse_lighting.rs:54:34
[INFO] [stdout]    |
[INFO] [stdout] 54 |             surface_scale: ff32!(1.0),
[INFO] [stdout]    |                                  ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/filters/primitives/diffuse_lighting.rs:55:37
[INFO] [stdout]    |
[INFO] [stdout] 55 |             diffuse_constant: pf32!(1.0),
[INFO] [stdout]    |                                     ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/filters/primitives/drop_shadow.rs:34:21
[INFO] [stdout]    |
[INFO] [stdout] 34 |     #[default(ff32!(2.0))]
[INFO] [stdout]    |                     ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/filters/primitives/drop_shadow.rs:36:21
[INFO] [stdout]    |
[INFO] [stdout] 36 |     #[default(ff32!(2.0))]
[INFO] [stdout]    |                     ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/primitives/paint_transform.rs:23:21
[INFO] [stdout]    |
[INFO] [stdout] 23 |     #[default(ff32!(1.0))]
[INFO] [stdout]    |                     ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/primitives/paint_transform.rs:27:21
[INFO] [stdout]    |
[INFO] [stdout] 27 |     #[default(ff32!(1.0))]
[INFO] [stdout]    |                     ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/primitives/paint_transform.rs:36:33
[INFO] [stdout]    |
[INFO] [stdout] 36 |             sx: ff32!(value.sx, 1.0),
[INFO] [stdout]    |                                 ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/primitives/paint_transform.rs:39:33
[INFO] [stdout]    |
[INFO] [stdout] 39 |             sy: ff32!(value.sy, 1.0),
[INFO] [stdout]    |                                 ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/filters/primitives/specular_lighting.rs:58:34
[INFO] [stdout]    |
[INFO] [stdout] 58 |             surface_scale: ff32!(1.0),
[INFO] [stdout]    |                                  ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/filters/primitives/specular_lighting.rs:59:38
[INFO] [stdout]    |
[INFO] [stdout] 59 |             specular_constant: pf32!(1.0),
[INFO] [stdout]    |                                      ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/filters/primitives/specular_lighting.rs:60:38
[INFO] [stdout]    |
[INFO] [stdout] 60 |             specular_exponent: pf32!(1.0),
[INFO] [stdout]    |                                      ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/primitives/length.rs:344:58
[INFO] [stdout]     |
[INFO] [stdout] 344 |         assert_eq!(x, Length(LengthInner::Absolute(ff32!(5.5))));
[INFO] [stdout]     |                                                          ^^^ help: explicitly specify the type as `f32`: `5.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/primitives/length.rs:352:57
[INFO] [stdout]     |
[INFO] [stdout] 352 |         assert_eq!(x, Length(LengthInner::Percent(ff32!(0.5))));
[INFO] [stdout]     |                                                         ^^^ help: explicitly specify the type as `f32`: `0.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/primitives/light_source.rs:150:84
[INFO] [stdout]     |
[INFO] [stdout] 150 |             specular_exponent: specular_exponent.map(|x| ff32!(x)).unwrap_or(ff32!(1.0)),
[INFO] [stdout]     |                                                                                    ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/primitives/paint.rs:139:21
[INFO] [stdout]     |
[INFO] [stdout] 139 |     #[default(nf32!(0.5))]
[INFO] [stdout]     |                     ^^^ help: explicitly specify the type as `f32`: `0.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/primitives/paint.rs:141:21
[INFO] [stdout]     |
[INFO] [stdout] 141 |     #[default(nf32!(0.5))]
[INFO] [stdout]     |                     ^^^ help: explicitly specify the type as `f32`: `0.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/primitives/paint.rs:236:24
[INFO] [stdout]     |
[INFO] [stdout] 236 |         self.x = nf32!(0.0);
[INFO] [stdout]     |                        ^^^ help: explicitly specify the type as `f32`: `0.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/primitives/paint.rs:237:24
[INFO] [stdout]     |
[INFO] [stdout] 237 |         self.y = nf32!(0.0);
[INFO] [stdout]     |                        ^^^ help: explicitly specify the type as `f32`: `0.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/primitives/paint.rs:246:24
[INFO] [stdout]     |
[INFO] [stdout] 246 |         self.x = nf32!(0.5);
[INFO] [stdout]     |                        ^^^ help: explicitly specify the type as `f32`: `0.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/primitives/paint.rs:247:24
[INFO] [stdout]     |
[INFO] [stdout] 247 |         self.y = nf32!(0.0);
[INFO] [stdout]     |                        ^^^ help: explicitly specify the type as `f32`: `0.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/primitives/paint.rs:256:24
[INFO] [stdout]     |
[INFO] [stdout] 256 |         self.x = nf32!(1.0);
[INFO] [stdout]     |                        ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/primitives/paint.rs:257:24
[INFO] [stdout]     |
[INFO] [stdout] 257 |         self.y = nf32!(0.0);
[INFO] [stdout]     |                        ^^^ help: explicitly specify the type as `f32`: `0.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/primitives/paint.rs:266:24
[INFO] [stdout]     |
[INFO] [stdout] 266 |         self.x = nf32!(0.0);
[INFO] [stdout]     |                        ^^^ help: explicitly specify the type as `f32`: `0.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/primitives/paint.rs:267:24
[INFO] [stdout]     |
[INFO] [stdout] 267 |         self.y = nf32!(0.5);
[INFO] [stdout]     |                        ^^^ help: explicitly specify the type as `f32`: `0.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/primitives/paint.rs:276:24
[INFO] [stdout]     |
[INFO] [stdout] 276 |         self.x = nf32!(0.5);
[INFO] [stdout]     |                        ^^^ help: explicitly specify the type as `f32`: `0.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/primitives/paint.rs:277:24
[INFO] [stdout]     |
[INFO] [stdout] 277 |         self.y = nf32!(0.5);
[INFO] [stdout]     |                        ^^^ help: explicitly specify the type as `f32`: `0.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/primitives/paint.rs:286:24
[INFO] [stdout]     |
[INFO] [stdout] 286 |         self.x = nf32!(1.0);
[INFO] [stdout]     |                        ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/primitives/paint.rs:287:24
[INFO] [stdout]     |
[INFO] [stdout] 287 |         self.y = nf32!(0.5);
[INFO] [stdout]     |                        ^^^ help: explicitly specify the type as `f32`: `0.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/primitives/paint.rs:296:24
[INFO] [stdout]     |
[INFO] [stdout] 296 |         self.x = nf32!(0.0);
[INFO] [stdout]     |                        ^^^ help: explicitly specify the type as `f32`: `0.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/primitives/paint.rs:297:24
[INFO] [stdout]     |
[INFO] [stdout] 297 |         self.y = nf32!(1.0);
[INFO] [stdout]     |                        ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/primitives/paint.rs:306:24
[INFO] [stdout]     |
[INFO] [stdout] 306 |         self.x = nf32!(0.5);
[INFO] [stdout]     |                        ^^^ help: explicitly specify the type as `f32`: `0.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/primitives/paint.rs:307:24
[INFO] [stdout]     |
[INFO] [stdout] 307 |         self.y = nf32!(1.0);
[INFO] [stdout]     |                        ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/primitives/paint.rs:316:24
[INFO] [stdout]     |
[INFO] [stdout] 316 |         self.x = nf32!(1.0);
[INFO] [stdout]     |                        ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/primitives/paint.rs:317:24
[INFO] [stdout]     |
[INFO] [stdout] 317 |         self.y = nf32!(1.0);
[INFO] [stdout]     |                        ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/primitives/paint_transform.rs:23:21
[INFO] [stdout]    |
[INFO] [stdout] 23 |     #[default(ff32!(1.0))]
[INFO] [stdout]    |                     ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/primitives/paint_transform.rs:27:21
[INFO] [stdout]    |
[INFO] [stdout] 27 |     #[default(ff32!(1.0))]
[INFO] [stdout]    |                     ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/primitives/paint_transform.rs:36:33
[INFO] [stdout]    |
[INFO] [stdout] 36 |             sx: ff32!(value.sx, 1.0),
[INFO] [stdout]    |                                 ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/primitives/paint_transform.rs:39:33
[INFO] [stdout]    |
[INFO] [stdout] 39 |             sy: ff32!(value.sy, 1.0),
[INFO] [stdout]    |                                 ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/primitives/positive_f32_pair.rs:77:35
[INFO] [stdout]    |
[INFO] [stdout] 77 |             PositiveF32Pair(pf32!(2.5), pf32!(2.5))
[INFO] [stdout]    |                                   ^^^ help: explicitly specify the type as `f32`: `2.5_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/primitives/positive_f32_pair.rs:77:47
[INFO] [stdout]    |
[INFO] [stdout] 77 |             PositiveF32Pair(pf32!(2.5), pf32!(2.5))
[INFO] [stdout]    |                                               ^^^ help: explicitly specify the type as `f32`: `2.5_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/primitives/positive_f32_pair.rs:85:35
[INFO] [stdout]    |
[INFO] [stdout] 85 |             PositiveF32Pair(pf32!(1.5), pf32!(2.5))
[INFO] [stdout]    |                                   ^^^ help: explicitly specify the type as `f32`: `1.5_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/primitives/positive_f32_pair.rs:85:47
[INFO] [stdout]    |
[INFO] [stdout] 85 |             PositiveF32Pair(pf32!(1.5), pf32!(2.5))
[INFO] [stdout]    |                                               ^^^ help: explicitly specify the type as `f32`: `2.5_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] 19 |     ($expr:expr) => {
[INFO] [stdout] 20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/filters/primitives/color_matrix.rs:56:37
[INFO] [stdout]    |
[INFO] [stdout] 56 |                 ff32_matrix[i][j] = ff32!(*element);
[INFO] [stdout]    |                                     --------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout]    = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/color_matrix.rs:185:54
[INFO] [stdout]     |
[INFO] [stdout] 185 |         self.inner.kind = ColorMatrixType::HueRotate(ff32!(angle));
[INFO] [stdout]     |                                                      ------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:23:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout] ...
[INFO] [stdout]  23 |         strict_num::FiniteF32::new($expr.into())
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/component_transfer.rs:151:20
[INFO] [stdout]     |
[INFO] [stdout] 151 |             slope: ff32!(slope, 1.0),
[INFO] [stdout]     |                    ----------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:24:59
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout] ...
[INFO] [stdout]  24 |             .unwrap_or_else(|| strict_num::FiniteF32::new($default.into()).unwrap_or_default())
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/component_transfer.rs:151:20
[INFO] [stdout]     |
[INFO] [stdout] 151 |             slope: ff32!(slope, 1.0),
[INFO] [stdout]     |                    ----------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/component_transfer.rs:152:24
[INFO] [stdout]     |
[INFO] [stdout] 152 |             intercept: ff32!(intercept),
[INFO] [stdout]     |                        ---------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:23:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout] ...
[INFO] [stdout]  23 |         strict_num::FiniteF32::new($expr.into())
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/component_transfer.rs:167:24
[INFO] [stdout]     |
[INFO] [stdout] 167 |             amplitude: ff32!(amplitude, 1.0),
[INFO] [stdout]     |                        --------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:24:59
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout] ...
[INFO] [stdout]  24 |             .unwrap_or_else(|| strict_num::FiniteF32::new($default.into()).unwrap_or_default())
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/component_transfer.rs:167:24
[INFO] [stdout]     |
[INFO] [stdout] 167 |             amplitude: ff32!(amplitude, 1.0),
[INFO] [stdout]     |                        --------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:23:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout] ...
[INFO] [stdout]  23 |         strict_num::FiniteF32::new($expr.into())
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/component_transfer.rs:168:23
[INFO] [stdout]     |
[INFO] [stdout] 168 |             exponent: ff32!(exponent, 1.0),
[INFO] [stdout]     |                       -------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:24:59
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout] ...
[INFO] [stdout]  24 |             .unwrap_or_else(|| strict_num::FiniteF32::new($default.into()).unwrap_or_default())
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/component_transfer.rs:168:23
[INFO] [stdout]     |
[INFO] [stdout] 168 |             exponent: ff32!(exponent, 1.0),
[INFO] [stdout]     |                       -------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/component_transfer.rs:169:21
[INFO] [stdout]     |
[INFO] [stdout] 169 |             offset: ff32!(offset),
[INFO] [stdout]     |                     ------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/composite.rs:117:17
[INFO] [stdout]     |
[INFO] [stdout] 117 |             k1: ff32!(k1),
[INFO] [stdout]     |                 --------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/composite.rs:118:17
[INFO] [stdout]     |
[INFO] [stdout] 118 |             k2: ff32!(k2),
[INFO] [stdout]     |                 --------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/composite.rs:119:17
[INFO] [stdout]     |
[INFO] [stdout] 119 |             k3: ff32!(k3),
[INFO] [stdout]     |                 --------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/composite.rs:120:17
[INFO] [stdout]     |
[INFO] [stdout] 120 |             k4: ff32!(k4),
[INFO] [stdout]     |                 --------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] 19 |     ($expr:expr) => {
[INFO] [stdout] 20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/filters/primitives/convolve_matrix.rs:94:62
[INFO] [stdout]    |
[INFO] [stdout] 94 |             kernel_matrix: kernel_matrix.into_iter().map(|x| ff32!(x)).collect(),
[INFO] [stdout]    |                                                              -------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/convolve_matrix.rs:179:53
[INFO] [stdout]     |
[INFO] [stdout] 179 |         self.inner.divisor = divisor.into().map(|x| ff32!(x));
[INFO] [stdout]     |                                                     -------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/convolve_matrix.rs:191:27
[INFO] [stdout]     |
[INFO] [stdout] 191 |         self.inner.bias = ff32!(bias);
[INFO] [stdout]     |                           ----------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] 19 |     ($expr:expr) => {
[INFO] [stdout] 20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/filters/primitives/diffuse_lighting.rs:54:28
[INFO] [stdout]    |
[INFO] [stdout] 54 |             surface_scale: ff32!(1.0),
[INFO] [stdout]    |                            ---------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/diffuse_lighting.rs:136:36
[INFO] [stdout]     |
[INFO] [stdout] 136 |         self.inner.surface_scale = ff32!(scale);
[INFO] [stdout]     |                                    ------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/displacement_map.rs:146:28
[INFO] [stdout]     |
[INFO] [stdout] 146 |         self.inner.scale = ff32!(scale);
[INFO] [stdout]     |                            ------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] 19 |     ($expr:expr) => {
[INFO] [stdout] 20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/filters/primitives/drop_shadow.rs:34:15
[INFO] [stdout]    |
[INFO] [stdout] 34 |     #[default(ff32!(2.0))]
[INFO] [stdout]    |               ---------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] 19 |     ($expr:expr) => {
[INFO] [stdout] 20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/filters/primitives/drop_shadow.rs:36:15
[INFO] [stdout]    |
[INFO] [stdout] 36 |     #[default(ff32!(2.0))]
[INFO] [stdout]    |               ---------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/drop_shadow.rs:113:25
[INFO] [stdout]     |
[INFO] [stdout] 113 |         self.inner.dx = ff32!(dx);
[INFO] [stdout]     |                         --------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/drop_shadow.rs:125:25
[INFO] [stdout]     |
[INFO] [stdout] 125 |         self.inner.dy = ff32!(dy);
[INFO] [stdout]     |                         --------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] 19 |     ($expr:expr) => {
[INFO] [stdout] 20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/filters/primitives/offset.rs:81:25
[INFO] [stdout]    |
[INFO] [stdout] 81 |         self.inner.dx = ff32!(dx);
[INFO] [stdout]    |                         --------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] 19 |     ($expr:expr) => {
[INFO] [stdout] 20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/filters/primitives/offset.rs:93:25
[INFO] [stdout]    |
[INFO] [stdout] 93 |         self.inner.dy = ff32!(dy);
[INFO] [stdout]    |                         --------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] 19 |     ($expr:expr) => {
[INFO] [stdout] 20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/filters/primitives/specular_lighting.rs:58:28
[INFO] [stdout]    |
[INFO] [stdout] 58 |             surface_scale: ff32!(1.0),
[INFO] [stdout]    |                            ---------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/specular_lighting.rs:148:36
[INFO] [stdout]     |
[INFO] [stdout] 148 |         self.inner.surface_scale = ff32!(scale);
[INFO] [stdout]     |                                    ------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] 19 |     ($expr:expr) => {
[INFO] [stdout] 20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/length.rs:36:56
[INFO] [stdout]    |
[INFO] [stdout] 36 |             LengthInner::Absolute(x) => Self::Absolute(ff32!(-x.get())),
[INFO] [stdout]    |                                                        --------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] 19 |     ($expr:expr) => {
[INFO] [stdout] 20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/length.rs:37:54
[INFO] [stdout]    |
[INFO] [stdout] 37 |             LengthInner::Percent(x) => Self::Percent(ff32!(-x.get())),
[INFO] [stdout]    |                                                      --------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] 19 |     ($expr:expr) => {
[INFO] [stdout] 20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/length.rs:74:35
[INFO] [stdout]    |
[INFO] [stdout] 74 |         Self(LengthInner::Percent(ff32!(value / 100.0)))
[INFO] [stdout]    |                                   -------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] 19 |     ($expr:expr) => {
[INFO] [stdout] 20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/length.rs:87:35
[INFO] [stdout]    |
[INFO] [stdout] 87 |         Self(LengthInner::Percent(ff32!(value)))
[INFO] [stdout]    |                                   ------------ in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/length.rs:110:36
[INFO] [stdout]     |
[INFO] [stdout] 110 |         Self(LengthInner::Absolute(ff32!(value)))
[INFO] [stdout]     |                                    ------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] 19 |     ($expr:expr) => {
[INFO] [stdout] 20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/light_source.rs:97:22
[INFO] [stdout]    |
[INFO] [stdout] 97 |             azimuth: ff32!(azimuth),
[INFO] [stdout]    |                      -------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] 19 |     ($expr:expr) => {
[INFO] [stdout] 20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/light_source.rs:98:24
[INFO] [stdout]    |
[INFO] [stdout] 98 |             elevation: ff32!(elevation),
[INFO] [stdout]    |                        ---------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/light_source.rs:117:16
[INFO] [stdout]     |
[INFO] [stdout] 117 |             x: ff32!(x),
[INFO] [stdout]     |                -------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/light_source.rs:118:16
[INFO] [stdout]     |
[INFO] [stdout] 118 |             y: ff32!(y),
[INFO] [stdout]     |                -------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/light_source.rs:119:16
[INFO] [stdout]     |
[INFO] [stdout] 119 |             z: ff32!(z),
[INFO] [stdout]     |                -------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/light_source.rs:144:16
[INFO] [stdout]     |
[INFO] [stdout] 144 |             x: ff32!(location.0),
[INFO] [stdout]     |                ----------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/light_source.rs:145:16
[INFO] [stdout]     |
[INFO] [stdout] 145 |             y: ff32!(location.1),
[INFO] [stdout]     |                ----------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/light_source.rs:146:16
[INFO] [stdout]     |
[INFO] [stdout] 146 |             z: ff32!(location.2),
[INFO] [stdout]     |                ----------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/light_source.rs:147:26
[INFO] [stdout]     |
[INFO] [stdout] 147 |             points_at_x: ff32!(points_at.0),
[INFO] [stdout]     |                          ------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/light_source.rs:148:26
[INFO] [stdout]     |
[INFO] [stdout] 148 |             points_at_y: ff32!(points_at.1),
[INFO] [stdout]     |                          ------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/light_source.rs:149:26
[INFO] [stdout]     |
[INFO] [stdout] 149 |             points_at_z: ff32!(points_at.2),
[INFO] [stdout]     |                          ------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/light_source.rs:150:58
[INFO] [stdout]     |
[INFO] [stdout] 150 |             specular_exponent: specular_exponent.map(|x| ff32!(x)).unwrap_or(ff32!(1.0)),
[INFO] [stdout]     |                                                          -------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/light_source.rs:150:78
[INFO] [stdout]     |
[INFO] [stdout] 150 |             specular_exponent: specular_exponent.map(|x| ff32!(x)).unwrap_or(ff32!(1.0)),
[INFO] [stdout]     |                                                                              ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/light_source.rs:151:62
[INFO] [stdout]     |
[INFO] [stdout] 151 |             limiting_cone_angle: limiting_cone_angle.map(|x| ff32!(x)),
[INFO] [stdout]     |                                                              -------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] 19 |     ($expr:expr) => {
[INFO] [stdout] 20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/paint_transform.rs:23:15
[INFO] [stdout]    |
[INFO] [stdout] 23 |     #[default(ff32!(1.0))]
[INFO] [stdout]    |               ---------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] 19 |     ($expr:expr) => {
[INFO] [stdout] 20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/paint_transform.rs:27:15
[INFO] [stdout]    |
[INFO] [stdout] 27 |     #[default(ff32!(1.0))]
[INFO] [stdout]    |               ---------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:23:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] ...
[INFO] [stdout] 23 |         strict_num::FiniteF32::new($expr.into())
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/paint_transform.rs:36:17
[INFO] [stdout]    |
[INFO] [stdout] 36 |             sx: ff32!(value.sx, 1.0),
[INFO] [stdout]    |                 -------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:24:59
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] ...
[INFO] [stdout] 24 |             .unwrap_or_else(|| strict_num::FiniteF32::new($default.into()).unwrap_or_default())
[INFO] [stdout]    |                                                           ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/paint_transform.rs:36:17
[INFO] [stdout]    |
[INFO] [stdout] 36 |             sx: ff32!(value.sx, 1.0),
[INFO] [stdout]    |                 -------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] 19 |     ($expr:expr) => {
[INFO] [stdout] 20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/paint_transform.rs:37:17
[INFO] [stdout]    |
[INFO] [stdout] 37 |             kx: ff32!(value.kx),
[INFO] [stdout]    |                 --------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] 19 |     ($expr:expr) => {
[INFO] [stdout] 20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/paint_transform.rs:38:17
[INFO] [stdout]    |
[INFO] [stdout] 38 |             ky: ff32!(value.ky),
[INFO] [stdout]    |                 --------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:23:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] ...
[INFO] [stdout] 23 |         strict_num::FiniteF32::new($expr.into())
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/paint_transform.rs:39:17
[INFO] [stdout]    |
[INFO] [stdout] 39 |             sy: ff32!(value.sy, 1.0),
[INFO] [stdout]    |                 -------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:24:59
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] ...
[INFO] [stdout] 24 |             .unwrap_or_else(|| strict_num::FiniteF32::new($default.into()).unwrap_or_default())
[INFO] [stdout]    |                                                           ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/paint_transform.rs:39:17
[INFO] [stdout]    |
[INFO] [stdout] 39 |             sy: ff32!(value.sy, 1.0),
[INFO] [stdout]    |                 -------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] 19 |     ($expr:expr) => {
[INFO] [stdout] 20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/paint_transform.rs:40:17
[INFO] [stdout]    |
[INFO] [stdout] 40 |             tx: ff32!(value.tx),
[INFO] [stdout]    |                 --------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] 19 |     ($expr:expr) => {
[INFO] [stdout] 20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/paint_transform.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 41 |             ty: ff32!(value.ty),
[INFO] [stdout]    |                 --------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] 19 |     ($expr:expr) => {
[INFO] [stdout] 20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/view_box.rs:35:20
[INFO] [stdout]    |
[INFO] [stdout] 35 |             min_x: ff32!(min_x),
[INFO] [stdout]    |                    ------------ in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] 19 |     ($expr:expr) => {
[INFO] [stdout] 20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/view_box.rs:36:20
[INFO] [stdout]    |
[INFO] [stdout] 36 |             min_y: ff32!(min_y),
[INFO] [stdout]    |                    ------------ in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] 19 |     ($expr:expr) => {
[INFO] [stdout] 20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/view_box.rs:37:20
[INFO] [stdout]    |
[INFO] [stdout] 37 |             width: ff32!(width),
[INFO] [stdout]    |                    ------------ in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] 19 |     ($expr:expr) => {
[INFO] [stdout] 20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/view_box.rs:38:21
[INFO] [stdout]    |
[INFO] [stdout] 38 |             height: ff32!(height),
[INFO] [stdout]    |                     ------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/positive_f32.rs:21:38
[INFO] [stdout]     |
[INFO] [stdout]  19 | macro_rules! pf32 {
[INFO] [stdout]  20 |     ($expr:expr) => {
[INFO] [stdout]  21 |         strict_num::PositiveF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                      ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/color_matrix.rs:173:53
[INFO] [stdout]     |
[INFO] [stdout] 173 |         self.inner.kind = ColorMatrixType::Saturate(pf32!(amount));
[INFO] [stdout]     |                                                     ------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/positive_f32.rs:21:38
[INFO] [stdout]    |
[INFO] [stdout] 19 | macro_rules! pf32 {
[INFO] [stdout] 20 |     ($expr:expr) => {
[INFO] [stdout] 21 |         strict_num::PositiveF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                      ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/filters/primitives/diffuse_lighting.rs:55:31
[INFO] [stdout]    |
[INFO] [stdout] 55 |             diffuse_constant: pf32!(1.0),
[INFO] [stdout]    |                               ---------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/positive_f32.rs:21:38
[INFO] [stdout]     |
[INFO] [stdout]  19 | macro_rules! pf32 {
[INFO] [stdout]  20 |     ($expr:expr) => {
[INFO] [stdout]  21 |         strict_num::PositiveF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                      ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/diffuse_lighting.rs:148:39
[INFO] [stdout]     |
[INFO] [stdout] 148 |         self.inner.diffuse_constant = pf32!(constant);
[INFO] [stdout]     |                                       --------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/positive_f32.rs:21:38
[INFO] [stdout]    |
[INFO] [stdout] 19 | macro_rules! pf32 {
[INFO] [stdout] 20 |     ($expr:expr) => {
[INFO] [stdout] 21 |         strict_num::PositiveF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                      ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/filters/primitives/specular_lighting.rs:59:32
[INFO] [stdout]    |
[INFO] [stdout] 59 |             specular_constant: pf32!(1.0),
[INFO] [stdout]    |                                ---------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/positive_f32.rs:21:38
[INFO] [stdout]    |
[INFO] [stdout] 19 | macro_rules! pf32 {
[INFO] [stdout] 20 |     ($expr:expr) => {
[INFO] [stdout] 21 |         strict_num::PositiveF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                      ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/filters/primitives/specular_lighting.rs:60:32
[INFO] [stdout]    |
[INFO] [stdout] 60 |             specular_exponent: pf32!(1.0),
[INFO] [stdout]    |                                ---------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/positive_f32.rs:21:38
[INFO] [stdout]     |
[INFO] [stdout]  19 | macro_rules! pf32 {
[INFO] [stdout]  20 |     ($expr:expr) => {
[INFO] [stdout]  21 |         strict_num::PositiveF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                      ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/specular_lighting.rs:160:40
[INFO] [stdout]     |
[INFO] [stdout] 160 |         self.inner.specular_constant = pf32!(constant);
[INFO] [stdout]     |                                        --------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/positive_f32.rs:21:38
[INFO] [stdout]     |
[INFO] [stdout]  19 | macro_rules! pf32 {
[INFO] [stdout]  20 |     ($expr:expr) => {
[INFO] [stdout]  21 |         strict_num::PositiveF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                      ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/specular_lighting.rs:172:40
[INFO] [stdout]     |
[INFO] [stdout] 172 |         self.inner.specular_exponent = pf32!(exponent);
[INFO] [stdout]     |                                        --------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/positive_f32.rs:21:38
[INFO] [stdout]    |
[INFO] [stdout] 19 | macro_rules! pf32 {
[INFO] [stdout] 20 |     ($expr:expr) => {
[INFO] [stdout] 21 |         strict_num::PositiveF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                      ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/positive_f32_pair.rs:31:21
[INFO] [stdout]    |
[INFO] [stdout] 31 |         let value = pf32!(value);
[INFO] [stdout]    |                     ------------ in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/positive_f32.rs:21:38
[INFO] [stdout]    |
[INFO] [stdout] 19 | macro_rules! pf32 {
[INFO] [stdout] 20 |     ($expr:expr) => {
[INFO] [stdout] 21 |         strict_num::PositiveF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                      ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/positive_f32_pair.rs:38:25
[INFO] [stdout]    |
[INFO] [stdout] 38 |         PositiveF32Pair(pf32!(x), pf32!(y))
[INFO] [stdout]    |                         -------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/positive_f32.rs:21:38
[INFO] [stdout]    |
[INFO] [stdout] 19 | macro_rules! pf32 {
[INFO] [stdout] 20 |     ($expr:expr) => {
[INFO] [stdout] 21 |         strict_num::PositiveF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                      ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/positive_f32_pair.rs:38:35
[INFO] [stdout]    |
[INFO] [stdout] 38 |         PositiveF32Pair(pf32!(x), pf32!(y))
[INFO] [stdout]    |                                   -------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/component_transfer.rs:124:40
[INFO] [stdout]     |
[INFO] [stdout] 124 |             values.into_iter().map(|x| nf32!(x)).collect(),
[INFO] [stdout]     |                                        -------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/component_transfer.rs:137:40
[INFO] [stdout]     |
[INFO] [stdout] 137 |             values.into_iter().map(|x| nf32!(x)).collect(),
[INFO] [stdout]     |                                        -------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/drop_shadow.rs:171:59
[INFO] [stdout]     |
[INFO] [stdout] 171 |         self.inner.flood_opacity = opacity.into().map(|x| nf32!(x));
[INFO] [stdout]     |                                                           -------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]    |
[INFO] [stdout] 13 | macro_rules! nf32 {
[INFO] [stdout] 14 |     ($expr:expr) => {
[INFO] [stdout] 15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]    |                                                ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/filters/primitives/flood.rs:84:30
[INFO] [stdout]    |
[INFO] [stdout] 84 |         self.inner.opacity = nf32!(opacity);
[INFO] [stdout]    |                              -------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/paint.rs:139:15
[INFO] [stdout]     |
[INFO] [stdout] 139 |     #[default(nf32!(0.5))]
[INFO] [stdout]     |               ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/paint.rs:141:15
[INFO] [stdout]     |
[INFO] [stdout] 141 |     #[default(nf32!(0.5))]
[INFO] [stdout]     |               ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/paint.rs:176:18
[INFO] [stdout]     |
[INFO] [stdout] 176 |         self.x = nf32!(x);
[INFO] [stdout]     |                  -------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/paint.rs:188:18
[INFO] [stdout]     |
[INFO] [stdout] 188 |         self.y = nf32!(y);
[INFO] [stdout]     |                  -------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/paint.rs:200:22
[INFO] [stdout]     |
[INFO] [stdout] 200 |         self.width = nf32!(width);
[INFO] [stdout]     |                      ------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/paint.rs:212:23
[INFO] [stdout]     |
[INFO] [stdout] 212 |         self.height = nf32!(height);
[INFO] [stdout]     |                       ------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/paint.rs:236:18
[INFO] [stdout]     |
[INFO] [stdout] 236 |         self.x = nf32!(0.0);
[INFO] [stdout]     |                  ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/paint.rs:237:18
[INFO] [stdout]     |
[INFO] [stdout] 237 |         self.y = nf32!(0.0);
[INFO] [stdout]     |                  ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/paint.rs:246:18
[INFO] [stdout]     |
[INFO] [stdout] 246 |         self.x = nf32!(0.5);
[INFO] [stdout]     |                  ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/paint.rs:247:18
[INFO] [stdout]     |
[INFO] [stdout] 247 |         self.y = nf32!(0.0);
[INFO] [stdout]     |                  ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/paint.rs:256:18
[INFO] [stdout]     |
[INFO] [stdout] 256 |         self.x = nf32!(1.0);
[INFO] [stdout]     |                  ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/paint.rs:257:18
[INFO] [stdout]     |
[INFO] [stdout] 257 |         self.y = nf32!(0.0);
[INFO] [stdout]     |                  ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/paint.rs:266:18
[INFO] [stdout]     |
[INFO] [stdout] 266 |         self.x = nf32!(0.0);
[INFO] [stdout]     |                  ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/paint.rs:267:18
[INFO] [stdout]     |
[INFO] [stdout] 267 |         self.y = nf32!(0.5);
[INFO] [stdout]     |                  ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/paint.rs:276:18
[INFO] [stdout]     |
[INFO] [stdout] 276 |         self.x = nf32!(0.5);
[INFO] [stdout]     |                  ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/paint.rs:277:18
[INFO] [stdout]     |
[INFO] [stdout] 277 |         self.y = nf32!(0.5);
[INFO] [stdout]     |                  ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/paint.rs:286:18
[INFO] [stdout]     |
[INFO] [stdout] 286 |         self.x = nf32!(1.0);
[INFO] [stdout]     |                  ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/paint.rs:287:18
[INFO] [stdout]     |
[INFO] [stdout] 287 |         self.y = nf32!(0.5);
[INFO] [stdout]     |                  ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/paint.rs:296:18
[INFO] [stdout]     |
[INFO] [stdout] 296 |         self.x = nf32!(0.0);
[INFO] [stdout]     |                  ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/paint.rs:297:18
[INFO] [stdout]     |
[INFO] [stdout] 297 |         self.y = nf32!(1.0);
[INFO] [stdout]     |                  ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/paint.rs:306:18
[INFO] [stdout]     |
[INFO] [stdout] 306 |         self.x = nf32!(0.5);
[INFO] [stdout]     |                  ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/paint.rs:307:18
[INFO] [stdout]     |
[INFO] [stdout] 307 |         self.y = nf32!(1.0);
[INFO] [stdout]     |                  ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/paint.rs:316:18
[INFO] [stdout]     |
[INFO] [stdout] 316 |         self.x = nf32!(1.0);
[INFO] [stdout]     |                  ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/paint.rs:317:18
[INFO] [stdout]     |
[INFO] [stdout] 317 |         self.y = nf32!(1.0);
[INFO] [stdout]     |                  ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/paint.rs:424:24
[INFO] [stdout]     |
[INFO] [stdout] 424 |         self.opacity = nf32!(opacity);
[INFO] [stdout]     |                        -------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]    |
[INFO] [stdout] 13 | macro_rules! nf32 {
[INFO] [stdout] 14 |     ($expr:expr) => {
[INFO] [stdout] 15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]    |                                                ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/stop.rs:40:23
[INFO] [stdout]    |
[INFO] [stdout] 40 |         self.offset = nf32!(offset);
[INFO] [stdout]    |                       ------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]    |
[INFO] [stdout] 13 | macro_rules! nf32 {
[INFO] [stdout] 14 |     ($expr:expr) => {
[INFO] [stdout] 15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]    |                                                ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/stop.rs:81:24
[INFO] [stdout]    |
[INFO] [stdout] 81 |         self.opacity = nf32!(opacity);
[INFO] [stdout]    |                        -------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `decal` (lib) due to 102 previous errors; 35 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/utils/element_writer.rs:449:32
[INFO] [stdout]     |
[INFO] [stdout] 449 |                     .attr("x", nf32!(0.5))?
[INFO] [stdout]     |                                ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout]     = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/component_transfer.rs:124:40
[INFO] [stdout]     |
[INFO] [stdout] 124 |             values.into_iter().map(|x| nf32!(x)).collect(),
[INFO] [stdout]     |                                        -------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/component_transfer.rs:137:40
[INFO] [stdout]     |
[INFO] [stdout] 137 |             values.into_iter().map(|x| nf32!(x)).collect(),
[INFO] [stdout]     |                                        -------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/drop_shadow.rs:171:59
[INFO] [stdout]     |
[INFO] [stdout] 171 |         self.inner.flood_opacity = opacity.into().map(|x| nf32!(x));
[INFO] [stdout]     |                                                           -------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]    |
[INFO] [stdout] 13 | macro_rules! nf32 {
[INFO] [stdout] 14 |     ($expr:expr) => {
[INFO] [stdout] 15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]    |                                                ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/filters/primitives/flood.rs:84:30
[INFO] [stdout]    |
[INFO] [stdout] 84 |         self.inner.opacity = nf32!(opacity);
[INFO] [stdout]    |                              -------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/paint.rs:139:15
[INFO] [stdout]     |
[INFO] [stdout] 139 |     #[default(nf32!(0.5))]
[INFO] [stdout]     |               ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/paint.rs:141:15
[INFO] [stdout]     |
[INFO] [stdout] 141 |     #[default(nf32!(0.5))]
[INFO] [stdout]     |               ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/paint.rs:176:18
[INFO] [stdout]     |
[INFO] [stdout] 176 |         self.x = nf32!(x);
[INFO] [stdout]     |                  -------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/paint.rs:188:18
[INFO] [stdout]     |
[INFO] [stdout] 188 |         self.y = nf32!(y);
[INFO] [stdout]     |                  -------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/paint.rs:200:22
[INFO] [stdout]     |
[INFO] [stdout] 200 |         self.width = nf32!(width);
[INFO] [stdout]     |                      ------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/paint.rs:212:23
[INFO] [stdout]     |
[INFO] [stdout] 212 |         self.height = nf32!(height);
[INFO] [stdout]     |                       ------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/paint.rs:236:18
[INFO] [stdout]     |
[INFO] [stdout] 236 |         self.x = nf32!(0.0);
[INFO] [stdout]     |                  ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/paint.rs:237:18
[INFO] [stdout]     |
[INFO] [stdout] 237 |         self.y = nf32!(0.0);
[INFO] [stdout]     |                  ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/paint.rs:246:18
[INFO] [stdout]     |
[INFO] [stdout] 246 |         self.x = nf32!(0.5);
[INFO] [stdout]     |                  ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/paint.rs:247:18
[INFO] [stdout]     |
[INFO] [stdout] 247 |         self.y = nf32!(0.0);
[INFO] [stdout]     |                  ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/paint.rs:256:18
[INFO] [stdout]     |
[INFO] [stdout] 256 |         self.x = nf32!(1.0);
[INFO] [stdout]     |                  ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/paint.rs:257:18
[INFO] [stdout]     |
[INFO] [stdout] 257 |         self.y = nf32!(0.0);
[INFO] [stdout]     |                  ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/paint.rs:266:18
[INFO] [stdout]     |
[INFO] [stdout] 266 |         self.x = nf32!(0.0);
[INFO] [stdout]     |                  ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/paint.rs:267:18
[INFO] [stdout]     |
[INFO] [stdout] 267 |         self.y = nf32!(0.5);
[INFO] [stdout]     |                  ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/paint.rs:276:18
[INFO] [stdout]     |
[INFO] [stdout] 276 |         self.x = nf32!(0.5);
[INFO] [stdout]     |                  ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/paint.rs:277:18
[INFO] [stdout]     |
[INFO] [stdout] 277 |         self.y = nf32!(0.5);
[INFO] [stdout]     |                  ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/paint.rs:286:18
[INFO] [stdout]     |
[INFO] [stdout] 286 |         self.x = nf32!(1.0);
[INFO] [stdout]     |                  ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/paint.rs:287:18
[INFO] [stdout]     |
[INFO] [stdout] 287 |         self.y = nf32!(0.5);
[INFO] [stdout]     |                  ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/paint.rs:296:18
[INFO] [stdout]     |
[INFO] [stdout] 296 |         self.x = nf32!(0.0);
[INFO] [stdout]     |                  ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/paint.rs:297:18
[INFO] [stdout]     |
[INFO] [stdout] 297 |         self.y = nf32!(1.0);
[INFO] [stdout]     |                  ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/paint.rs:306:18
[INFO] [stdout]     |
[INFO] [stdout] 306 |         self.x = nf32!(0.5);
[INFO] [stdout]     |                  ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/paint.rs:307:18
[INFO] [stdout]     |
[INFO] [stdout] 307 |         self.y = nf32!(1.0);
[INFO] [stdout]     |                  ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/paint.rs:316:18
[INFO] [stdout]     |
[INFO] [stdout] 316 |         self.x = nf32!(1.0);
[INFO] [stdout]     |                  ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/paint.rs:317:18
[INFO] [stdout]     |
[INFO] [stdout] 317 |         self.y = nf32!(1.0);
[INFO] [stdout]     |                  ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]     |
[INFO] [stdout]  13 | macro_rules! nf32 {
[INFO] [stdout]  14 |     ($expr:expr) => {
[INFO] [stdout]  15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]     |                                                ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/paint.rs:424:24
[INFO] [stdout]     |
[INFO] [stdout] 424 |         self.opacity = nf32!(opacity);
[INFO] [stdout]     |                        -------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]    |
[INFO] [stdout] 13 | macro_rules! nf32 {
[INFO] [stdout] 14 |     ($expr:expr) => {
[INFO] [stdout] 15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]    |                                                ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/stop.rs:40:23
[INFO] [stdout]    |
[INFO] [stdout] 40 |         self.offset = nf32!(offset);
[INFO] [stdout]    |                       ------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/normalized_f32.rs:15:48
[INFO] [stdout]    |
[INFO] [stdout] 13 | macro_rules! nf32 {
[INFO] [stdout] 14 |     ($expr:expr) => {
[INFO] [stdout] 15 |         strict_num::NormalizedF32::new_clamped($expr.into())
[INFO] [stdout]    |                                                ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/stop.rs:81:24
[INFO] [stdout]    |
[INFO] [stdout] 81 |         self.opacity = nf32!(opacity);
[INFO] [stdout]    |                        -------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/positive_f32.rs:21:38
[INFO] [stdout]     |
[INFO] [stdout]  19 | macro_rules! pf32 {
[INFO] [stdout]  20 |     ($expr:expr) => {
[INFO] [stdout]  21 |         strict_num::PositiveF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                      ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/utils/element_writer.rs:450:32
[INFO] [stdout]     |
[INFO] [stdout] 450 |                     .attr("y", pf32!(1.5))?
[INFO] [stdout]     |                                ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/positive_f32.rs:21:38
[INFO] [stdout]     |
[INFO] [stdout]  19 | macro_rules! pf32 {
[INFO] [stdout]  20 |     ($expr:expr) => {
[INFO] [stdout]  21 |         strict_num::PositiveF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                      ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/color_matrix.rs:173:53
[INFO] [stdout]     |
[INFO] [stdout] 173 |         self.inner.kind = ColorMatrixType::Saturate(pf32!(amount));
[INFO] [stdout]     |                                                     ------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/positive_f32.rs:21:38
[INFO] [stdout]    |
[INFO] [stdout] 19 | macro_rules! pf32 {
[INFO] [stdout] 20 |     ($expr:expr) => {
[INFO] [stdout] 21 |         strict_num::PositiveF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                      ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/filters/primitives/diffuse_lighting.rs:55:31
[INFO] [stdout]    |
[INFO] [stdout] 55 |             diffuse_constant: pf32!(1.0),
[INFO] [stdout]    |                               ---------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/positive_f32.rs:21:38
[INFO] [stdout]     |
[INFO] [stdout]  19 | macro_rules! pf32 {
[INFO] [stdout]  20 |     ($expr:expr) => {
[INFO] [stdout]  21 |         strict_num::PositiveF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                      ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/diffuse_lighting.rs:148:39
[INFO] [stdout]     |
[INFO] [stdout] 148 |         self.inner.diffuse_constant = pf32!(constant);
[INFO] [stdout]     |                                       --------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/positive_f32.rs:21:38
[INFO] [stdout]    |
[INFO] [stdout] 19 | macro_rules! pf32 {
[INFO] [stdout] 20 |     ($expr:expr) => {
[INFO] [stdout] 21 |         strict_num::PositiveF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                      ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/filters/primitives/specular_lighting.rs:59:32
[INFO] [stdout]    |
[INFO] [stdout] 59 |             specular_constant: pf32!(1.0),
[INFO] [stdout]    |                                ---------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/positive_f32.rs:21:38
[INFO] [stdout]    |
[INFO] [stdout] 19 | macro_rules! pf32 {
[INFO] [stdout] 20 |     ($expr:expr) => {
[INFO] [stdout] 21 |         strict_num::PositiveF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                      ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/filters/primitives/specular_lighting.rs:60:32
[INFO] [stdout]    |
[INFO] [stdout] 60 |             specular_exponent: pf32!(1.0),
[INFO] [stdout]    |                                ---------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/positive_f32.rs:21:38
[INFO] [stdout]     |
[INFO] [stdout]  19 | macro_rules! pf32 {
[INFO] [stdout]  20 |     ($expr:expr) => {
[INFO] [stdout]  21 |         strict_num::PositiveF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                      ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/specular_lighting.rs:160:40
[INFO] [stdout]     |
[INFO] [stdout] 160 |         self.inner.specular_constant = pf32!(constant);
[INFO] [stdout]     |                                        --------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/positive_f32.rs:21:38
[INFO] [stdout]     |
[INFO] [stdout]  19 | macro_rules! pf32 {
[INFO] [stdout]  20 |     ($expr:expr) => {
[INFO] [stdout]  21 |         strict_num::PositiveF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                      ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/specular_lighting.rs:172:40
[INFO] [stdout]     |
[INFO] [stdout] 172 |         self.inner.specular_exponent = pf32!(exponent);
[INFO] [stdout]     |                                        --------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/positive_f32.rs:21:38
[INFO] [stdout]    |
[INFO] [stdout] 19 | macro_rules! pf32 {
[INFO] [stdout] 20 |     ($expr:expr) => {
[INFO] [stdout] 21 |         strict_num::PositiveF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                      ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/positive_f32_pair.rs:31:21
[INFO] [stdout]    |
[INFO] [stdout] 31 |         let value = pf32!(value);
[INFO] [stdout]    |                     ------------ in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/positive_f32.rs:21:38
[INFO] [stdout]    |
[INFO] [stdout] 19 | macro_rules! pf32 {
[INFO] [stdout] 20 |     ($expr:expr) => {
[INFO] [stdout] 21 |         strict_num::PositiveF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                      ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/positive_f32_pair.rs:38:25
[INFO] [stdout]    |
[INFO] [stdout] 38 |         PositiveF32Pair(pf32!(x), pf32!(y))
[INFO] [stdout]    |                         -------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/positive_f32.rs:21:38
[INFO] [stdout]    |
[INFO] [stdout] 19 | macro_rules! pf32 {
[INFO] [stdout] 20 |     ($expr:expr) => {
[INFO] [stdout] 21 |         strict_num::PositiveF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                      ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/positive_f32_pair.rs:38:35
[INFO] [stdout]    |
[INFO] [stdout] 38 |         PositiveF32Pair(pf32!(x), pf32!(y))
[INFO] [stdout]    |                                   -------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/positive_f32.rs:21:38
[INFO] [stdout]    |
[INFO] [stdout] 19 | macro_rules! pf32 {
[INFO] [stdout] 20 |     ($expr:expr) => {
[INFO] [stdout] 21 |         strict_num::PositiveF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                      ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/positive_f32_pair.rs:77:29
[INFO] [stdout]    |
[INFO] [stdout] 77 |             PositiveF32Pair(pf32!(2.5), pf32!(2.5))
[INFO] [stdout]    |                             ---------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/positive_f32.rs:21:38
[INFO] [stdout]    |
[INFO] [stdout] 19 | macro_rules! pf32 {
[INFO] [stdout] 20 |     ($expr:expr) => {
[INFO] [stdout] 21 |         strict_num::PositiveF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                      ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/positive_f32_pair.rs:77:41
[INFO] [stdout]    |
[INFO] [stdout] 77 |             PositiveF32Pair(pf32!(2.5), pf32!(2.5))
[INFO] [stdout]    |                                         ---------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/positive_f32.rs:21:38
[INFO] [stdout]    |
[INFO] [stdout] 19 | macro_rules! pf32 {
[INFO] [stdout] 20 |     ($expr:expr) => {
[INFO] [stdout] 21 |         strict_num::PositiveF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                      ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/positive_f32_pair.rs:85:29
[INFO] [stdout]    |
[INFO] [stdout] 85 |             PositiveF32Pair(pf32!(1.5), pf32!(2.5))
[INFO] [stdout]    |                             ---------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/positive_f32.rs:21:38
[INFO] [stdout]    |
[INFO] [stdout] 19 | macro_rules! pf32 {
[INFO] [stdout] 20 |     ($expr:expr) => {
[INFO] [stdout] 21 |         strict_num::PositiveF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                      ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/positive_f32_pair.rs:85:41
[INFO] [stdout]    |
[INFO] [stdout] 85 |             PositiveF32Pair(pf32!(1.5), pf32!(2.5))
[INFO] [stdout]    |                                         ---------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/utils/element_writer.rs:451:32
[INFO] [stdout]     |
[INFO] [stdout] 451 |                     .attr("z", ff32!(2.5))?
[INFO] [stdout]     |                                ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] 19 |     ($expr:expr) => {
[INFO] [stdout] 20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/filters/primitives/color_matrix.rs:56:37
[INFO] [stdout]    |
[INFO] [stdout] 56 |                 ff32_matrix[i][j] = ff32!(*element);
[INFO] [stdout]    |                                     --------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/color_matrix.rs:185:54
[INFO] [stdout]     |
[INFO] [stdout] 185 |         self.inner.kind = ColorMatrixType::HueRotate(ff32!(angle));
[INFO] [stdout]     |                                                      ------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:23:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout] ...
[INFO] [stdout]  23 |         strict_num::FiniteF32::new($expr.into())
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/component_transfer.rs:151:20
[INFO] [stdout]     |
[INFO] [stdout] 151 |             slope: ff32!(slope, 1.0),
[INFO] [stdout]     |                    ----------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:24:59
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout] ...
[INFO] [stdout]  24 |             .unwrap_or_else(|| strict_num::FiniteF32::new($default.into()).unwrap_or_default())
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/component_transfer.rs:151:20
[INFO] [stdout]     |
[INFO] [stdout] 151 |             slope: ff32!(slope, 1.0),
[INFO] [stdout]     |                    ----------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/component_transfer.rs:152:24
[INFO] [stdout]     |
[INFO] [stdout] 152 |             intercept: ff32!(intercept),
[INFO] [stdout]     |                        ---------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:23:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout] ...
[INFO] [stdout]  23 |         strict_num::FiniteF32::new($expr.into())
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/component_transfer.rs:167:24
[INFO] [stdout]     |
[INFO] [stdout] 167 |             amplitude: ff32!(amplitude, 1.0),
[INFO] [stdout]     |                        --------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:24:59
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout] ...
[INFO] [stdout]  24 |             .unwrap_or_else(|| strict_num::FiniteF32::new($default.into()).unwrap_or_default())
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/component_transfer.rs:167:24
[INFO] [stdout]     |
[INFO] [stdout] 167 |             amplitude: ff32!(amplitude, 1.0),
[INFO] [stdout]     |                        --------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:23:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout] ...
[INFO] [stdout]  23 |         strict_num::FiniteF32::new($expr.into())
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/component_transfer.rs:168:23
[INFO] [stdout]     |
[INFO] [stdout] 168 |             exponent: ff32!(exponent, 1.0),
[INFO] [stdout]     |                       -------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:24:59
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout] ...
[INFO] [stdout]  24 |             .unwrap_or_else(|| strict_num::FiniteF32::new($default.into()).unwrap_or_default())
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/component_transfer.rs:168:23
[INFO] [stdout]     |
[INFO] [stdout] 168 |             exponent: ff32!(exponent, 1.0),
[INFO] [stdout]     |                       -------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/component_transfer.rs:169:21
[INFO] [stdout]     |
[INFO] [stdout] 169 |             offset: ff32!(offset),
[INFO] [stdout]     |                     ------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/composite.rs:117:17
[INFO] [stdout]     |
[INFO] [stdout] 117 |             k1: ff32!(k1),
[INFO] [stdout]     |                 --------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/composite.rs:118:17
[INFO] [stdout]     |
[INFO] [stdout] 118 |             k2: ff32!(k2),
[INFO] [stdout]     |                 --------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/composite.rs:119:17
[INFO] [stdout]     |
[INFO] [stdout] 119 |             k3: ff32!(k3),
[INFO] [stdout]     |                 --------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/composite.rs:120:17
[INFO] [stdout]     |
[INFO] [stdout] 120 |             k4: ff32!(k4),
[INFO] [stdout]     |                 --------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] 19 |     ($expr:expr) => {
[INFO] [stdout] 20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/filters/primitives/convolve_matrix.rs:94:62
[INFO] [stdout]    |
[INFO] [stdout] 94 |             kernel_matrix: kernel_matrix.into_iter().map(|x| ff32!(x)).collect(),
[INFO] [stdout]    |                                                              -------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/convolve_matrix.rs:179:53
[INFO] [stdout]     |
[INFO] [stdout] 179 |         self.inner.divisor = divisor.into().map(|x| ff32!(x));
[INFO] [stdout]     |                                                     -------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/convolve_matrix.rs:191:27
[INFO] [stdout]     |
[INFO] [stdout] 191 |         self.inner.bias = ff32!(bias);
[INFO] [stdout]     |                           ----------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] 19 |     ($expr:expr) => {
[INFO] [stdout] 20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/filters/primitives/diffuse_lighting.rs:54:28
[INFO] [stdout]    |
[INFO] [stdout] 54 |             surface_scale: ff32!(1.0),
[INFO] [stdout]    |                            ---------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/diffuse_lighting.rs:136:36
[INFO] [stdout]     |
[INFO] [stdout] 136 |         self.inner.surface_scale = ff32!(scale);
[INFO] [stdout]     |                                    ------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/displacement_map.rs:146:28
[INFO] [stdout]     |
[INFO] [stdout] 146 |         self.inner.scale = ff32!(scale);
[INFO] [stdout]     |                            ------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] 19 |     ($expr:expr) => {
[INFO] [stdout] 20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/filters/primitives/drop_shadow.rs:34:15
[INFO] [stdout]    |
[INFO] [stdout] 34 |     #[default(ff32!(2.0))]
[INFO] [stdout]    |               ---------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] 19 |     ($expr:expr) => {
[INFO] [stdout] 20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/filters/primitives/drop_shadow.rs:36:15
[INFO] [stdout]    |
[INFO] [stdout] 36 |     #[default(ff32!(2.0))]
[INFO] [stdout]    |               ---------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/drop_shadow.rs:113:25
[INFO] [stdout]     |
[INFO] [stdout] 113 |         self.inner.dx = ff32!(dx);
[INFO] [stdout]     |                         --------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/drop_shadow.rs:125:25
[INFO] [stdout]     |
[INFO] [stdout] 125 |         self.inner.dy = ff32!(dy);
[INFO] [stdout]     |                         --------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] 19 |     ($expr:expr) => {
[INFO] [stdout] 20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/filters/primitives/offset.rs:81:25
[INFO] [stdout]    |
[INFO] [stdout] 81 |         self.inner.dx = ff32!(dx);
[INFO] [stdout]    |                         --------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] 19 |     ($expr:expr) => {
[INFO] [stdout] 20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/filters/primitives/offset.rs:93:25
[INFO] [stdout]    |
[INFO] [stdout] 93 |         self.inner.dy = ff32!(dy);
[INFO] [stdout]    |                         --------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] 19 |     ($expr:expr) => {
[INFO] [stdout] 20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/filters/primitives/specular_lighting.rs:58:28
[INFO] [stdout]    |
[INFO] [stdout] 58 |             surface_scale: ff32!(1.0),
[INFO] [stdout]    |                            ---------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/filters/primitives/specular_lighting.rs:148:36
[INFO] [stdout]     |
[INFO] [stdout] 148 |         self.inner.surface_scale = ff32!(scale);
[INFO] [stdout]     |                                    ------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] 19 |     ($expr:expr) => {
[INFO] [stdout] 20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/length.rs:36:56
[INFO] [stdout]    |
[INFO] [stdout] 36 |             LengthInner::Absolute(x) => Self::Absolute(ff32!(-x.get())),
[INFO] [stdout]    |                                                        --------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] 19 |     ($expr:expr) => {
[INFO] [stdout] 20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/length.rs:37:54
[INFO] [stdout]    |
[INFO] [stdout] 37 |             LengthInner::Percent(x) => Self::Percent(ff32!(-x.get())),
[INFO] [stdout]    |                                                      --------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] 19 |     ($expr:expr) => {
[INFO] [stdout] 20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/length.rs:74:35
[INFO] [stdout]    |
[INFO] [stdout] 74 |         Self(LengthInner::Percent(ff32!(value / 100.0)))
[INFO] [stdout]    |                                   -------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] 19 |     ($expr:expr) => {
[INFO] [stdout] 20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/length.rs:87:35
[INFO] [stdout]    |
[INFO] [stdout] 87 |         Self(LengthInner::Percent(ff32!(value)))
[INFO] [stdout]    |                                   ------------ in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/length.rs:110:36
[INFO] [stdout]     |
[INFO] [stdout] 110 |         Self(LengthInner::Absolute(ff32!(value)))
[INFO] [stdout]     |                                    ------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/length.rs:344:52
[INFO] [stdout]     |
[INFO] [stdout] 344 |         assert_eq!(x, Length(LengthInner::Absolute(ff32!(5.5))));
[INFO] [stdout]     |                                                    ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/length.rs:352:51
[INFO] [stdout]     |
[INFO] [stdout] 352 |         assert_eq!(x, Length(LengthInner::Percent(ff32!(0.5))));
[INFO] [stdout]     |                                                   ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] 19 |     ($expr:expr) => {
[INFO] [stdout] 20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/light_source.rs:97:22
[INFO] [stdout]    |
[INFO] [stdout] 97 |             azimuth: ff32!(azimuth),
[INFO] [stdout]    |                      -------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] 19 |     ($expr:expr) => {
[INFO] [stdout] 20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/light_source.rs:98:24
[INFO] [stdout]    |
[INFO] [stdout] 98 |             elevation: ff32!(elevation),
[INFO] [stdout]    |                        ---------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/light_source.rs:117:16
[INFO] [stdout]     |
[INFO] [stdout] 117 |             x: ff32!(x),
[INFO] [stdout]     |                -------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/light_source.rs:118:16
[INFO] [stdout]     |
[INFO] [stdout] 118 |             y: ff32!(y),
[INFO] [stdout]     |                -------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/light_source.rs:119:16
[INFO] [stdout]     |
[INFO] [stdout] 119 |             z: ff32!(z),
[INFO] [stdout]     |                -------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/light_source.rs:144:16
[INFO] [stdout]     |
[INFO] [stdout] 144 |             x: ff32!(location.0),
[INFO] [stdout]     |                ----------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/light_source.rs:145:16
[INFO] [stdout]     |
[INFO] [stdout] 145 |             y: ff32!(location.1),
[INFO] [stdout]     |                ----------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/light_source.rs:146:16
[INFO] [stdout]     |
[INFO] [stdout] 146 |             z: ff32!(location.2),
[INFO] [stdout]     |                ----------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/light_source.rs:147:26
[INFO] [stdout]     |
[INFO] [stdout] 147 |             points_at_x: ff32!(points_at.0),
[INFO] [stdout]     |                          ------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/light_source.rs:148:26
[INFO] [stdout]     |
[INFO] [stdout] 148 |             points_at_y: ff32!(points_at.1),
[INFO] [stdout]     |                          ------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/light_source.rs:149:26
[INFO] [stdout]     |
[INFO] [stdout] 149 |             points_at_z: ff32!(points_at.2),
[INFO] [stdout]     |                          ------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/light_source.rs:150:58
[INFO] [stdout]     |
[INFO] [stdout] 150 |             specular_exponent: specular_exponent.map(|x| ff32!(x)).unwrap_or(ff32!(1.0)),
[INFO] [stdout]     |                                                          -------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/light_source.rs:150:78
[INFO] [stdout]     |
[INFO] [stdout] 150 |             specular_exponent: specular_exponent.map(|x| ff32!(x)).unwrap_or(ff32!(1.0)),
[INFO] [stdout]     |                                                                              ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]    --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]     |
[INFO] [stdout]  18 | macro_rules! ff32 {
[INFO] [stdout]  19 |     ($expr:expr) => {
[INFO] [stdout]  20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/primitives/light_source.rs:151:62
[INFO] [stdout]     |
[INFO] [stdout] 151 |             limiting_cone_angle: limiting_cone_angle.map(|x| ff32!(x)),
[INFO] [stdout]     |                                                              -------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] 19 |     ($expr:expr) => {
[INFO] [stdout] 20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/paint_transform.rs:23:15
[INFO] [stdout]    |
[INFO] [stdout] 23 |     #[default(ff32!(1.0))]
[INFO] [stdout]    |               ---------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] 19 |     ($expr:expr) => {
[INFO] [stdout] 20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/paint_transform.rs:27:15
[INFO] [stdout]    |
[INFO] [stdout] 27 |     #[default(ff32!(1.0))]
[INFO] [stdout]    |               ---------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:23:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] ...
[INFO] [stdout] 23 |         strict_num::FiniteF32::new($expr.into())
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/paint_transform.rs:36:17
[INFO] [stdout]    |
[INFO] [stdout] 36 |             sx: ff32!(value.sx, 1.0),
[INFO] [stdout]    |                 -------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:24:59
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] ...
[INFO] [stdout] 24 |             .unwrap_or_else(|| strict_num::FiniteF32::new($default.into()).unwrap_or_default())
[INFO] [stdout]    |                                                           ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/paint_transform.rs:36:17
[INFO] [stdout]    |
[INFO] [stdout] 36 |             sx: ff32!(value.sx, 1.0),
[INFO] [stdout]    |                 -------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] 19 |     ($expr:expr) => {
[INFO] [stdout] 20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/paint_transform.rs:37:17
[INFO] [stdout]    |
[INFO] [stdout] 37 |             kx: ff32!(value.kx),
[INFO] [stdout]    |                 --------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] 19 |     ($expr:expr) => {
[INFO] [stdout] 20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/paint_transform.rs:38:17
[INFO] [stdout]    |
[INFO] [stdout] 38 |             ky: ff32!(value.ky),
[INFO] [stdout]    |                 --------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:23:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] ...
[INFO] [stdout] 23 |         strict_num::FiniteF32::new($expr.into())
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/paint_transform.rs:39:17
[INFO] [stdout]    |
[INFO] [stdout] 39 |             sy: ff32!(value.sy, 1.0),
[INFO] [stdout]    |                 -------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:24:59
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] ...
[INFO] [stdout] 24 |             .unwrap_or_else(|| strict_num::FiniteF32::new($default.into()).unwrap_or_default())
[INFO] [stdout]    |                                                           ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/paint_transform.rs:39:17
[INFO] [stdout]    |
[INFO] [stdout] 39 |             sy: ff32!(value.sy, 1.0),
[INFO] [stdout]    |                 -------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] 19 |     ($expr:expr) => {
[INFO] [stdout] 20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/paint_transform.rs:40:17
[INFO] [stdout]    |
[INFO] [stdout] 40 |             tx: ff32!(value.tx),
[INFO] [stdout]    |                 --------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] 19 |     ($expr:expr) => {
[INFO] [stdout] 20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/paint_transform.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 41 |             ty: ff32!(value.ty),
[INFO] [stdout]    |                 --------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] 19 |     ($expr:expr) => {
[INFO] [stdout] 20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/view_box.rs:35:20
[INFO] [stdout]    |
[INFO] [stdout] 35 |             min_x: ff32!(min_x),
[INFO] [stdout]    |                    ------------ in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] 19 |     ($expr:expr) => {
[INFO] [stdout] 20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/view_box.rs:36:20
[INFO] [stdout]    |
[INFO] [stdout] 36 |             min_y: ff32!(min_y),
[INFO] [stdout]    |                    ------------ in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] 19 |     ($expr:expr) => {
[INFO] [stdout] 20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/view_box.rs:37:20
[INFO] [stdout]    |
[INFO] [stdout] 37 |             width: ff32!(width),
[INFO] [stdout]    |                    ------------ in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f32`
[INFO] [stdout]   --> src/macros/finite_f32.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 18 | macro_rules! ff32 {
[INFO] [stdout] 19 |     ($expr:expr) => {
[INFO] [stdout] 20 |         strict_num::FiniteF32::new($expr.into()).unwrap_or_default()
[INFO] [stdout]    |                                    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/primitives/view_box.rs:38:21
[INFO] [stdout]    |
[INFO] [stdout] 38 |             height: ff32!(height),
[INFO] [stdout]    |                     ------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f32 as Into<f32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `decal` (lib test) due to 111 previous errors; 44 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "8a669d7aeb503c548ac050a55f1a0fd7a779f8e569f61cb83b0ba1669b98f0b2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8a669d7aeb503c548ac050a55f1a0fd7a779f8e569f61cb83b0ba1669b98f0b2", kill_on_drop: false }`
[INFO] [stdout] 8a669d7aeb503c548ac050a55f1a0fd7a779f8e569f61cb83b0ba1669b98f0b2
