[INFO] fetching crate quickraw 0.2.1-alpha.1...
[INFO] testing quickraw-0.2.1-alpha.1 against master#733b47ea4b1b86216f14ef56e49440c33933f230+rustflags=-Copt-level=3 for pr-138759
[INFO] extracting crate quickraw 0.2.1-alpha.1 into /workspace/builds/worker-2-tc2/source
[INFO] started tweaking crates.io crate quickraw 0.2.1-alpha.1
[INFO] finished tweaking crates.io crate quickraw 0.2.1-alpha.1
[INFO] tweaked toml for crates.io crate quickraw 0.2.1-alpha.1 written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate quickraw 0.2.1-alpha.1 on toolchain 733b47ea4b1b86216f14ef56e49440c33933f230
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 42 packages to latest compatible versions
[INFO] [stderr]       Adding image v0.24.9 (available: v0.25.8)
[INFO] [stderr]       Adding phf v0.10.1 (available: v0.13.1)
[INFO] [stderr]       Adding thiserror v1.0.69 (available: v2.0.17)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] a2c89c88b25146d447e3b0cf6343af197eb0441c627e334bb5151e5203bc28af
[INFO] running `Command { std: "docker" "start" "-a" "a2c89c88b25146d447e3b0cf6343af197eb0441c627e334bb5151e5203bc28af", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a2c89c88b25146d447e3b0cf6343af197eb0441c627e334bb5151e5203bc28af", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a2c89c88b25146d447e3b0cf6343af197eb0441c627e334bb5151e5203bc28af", kill_on_drop: false }`
[INFO] [stdout] a2c89c88b25146d447e3b0cf6343af197eb0441c627e334bb5151e5203bc28af
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Copt-level=3" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ff99785803ef105d227048a5707836cfa382488218382a274bd4d0ccd978e1dc
[INFO] running `Command { std: "docker" "start" "-a" "ff99785803ef105d227048a5707836cfa382488218382a274bd4d0ccd978e1dc", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling siphasher v0.3.11
[INFO] [stderr]    Compiling proc-macro-hack v0.5.20+deprecated
[INFO] [stderr]    Compiling zerocopy v0.8.27
[INFO] [stderr]    Compiling getrandom v0.2.16
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling phf_shared v0.10.0
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling phf_generator v0.10.0
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling quickexif v0.1.5
[INFO] [stderr]    Compiling phf_macros v0.10.0
[INFO] [stderr]    Compiling fn-util v0.1.0
[INFO] [stderr]    Compiling phf v0.10.1
[INFO] [stderr]    Compiling quickraw v0.2.1-alpha.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> src/maker/sony.rs:168:30
[INFO] [stdout]     |
[INFO] [stdout] 168 |             table[j] = table[(j - 1)] + (1 << i);
[INFO] [stdout]     |                              ^     ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 168 -             table[j] = table[(j - 1)] + (1 << i);
[INFO] [stdout] 168 +             table[j] = table[j - 1] + (1 << i);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `color_convert_rgba` is never used
[INFO] [stdout]   --> src/pass/color.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn color_convert_rgba<'a>(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `elinear_rggb` is never used
[INFO] [stdout]   --> src/pass/demosaicing/mod.rs:32:13
[INFO] [stdout]    |
[INFO] [stdout] 32 | gen_linear!(elinear_rggb, enhanced_linear::rggb);
[INFO] [stdout]    |             ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `gen_linear` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `elinear_bggr` is never used
[INFO] [stdout]   --> src/pass/demosaicing/mod.rs:33:13
[INFO] [stdout]    |
[INFO] [stdout] 33 | gen_linear!(elinear_bggr, enhanced_linear::bggr);
[INFO] [stdout]    |             ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `gen_linear` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `elinear_grbg` is never used
[INFO] [stdout]   --> src/pass/demosaicing/mod.rs:34:13
[INFO] [stdout]    |
[INFO] [stdout] 34 | gen_linear!(elinear_grbg, enhanced_linear::grbg);
[INFO] [stdout]    |             ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `gen_linear` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `elinear_gbrg` is never used
[INFO] [stdout]   --> src/pass/demosaicing/mod.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 | gen_linear!(elinear_gbrg, enhanced_linear::gbrg);
[INFO] [stdout]    |             ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `gen_linear` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_window` is never used
[INFO] [stdout]  --> src/pass/demosaicing/enhanced_linear.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn get_window(image: &[u16], i: usize, w: usize) -> [i32; 9] {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clamp` is never used
[INFO] [stdout]   --> src/pass/demosaicing/enhanced_linear.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn clamp(x: i32) -> u16 {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DIFF_ALPHA` is never used
[INFO] [stdout]   --> src/pass/demosaicing/enhanced_linear.rs:25:7
[INFO] [stdout]    |
[INFO] [stdout] 25 | const DIFF_ALPHA: i32 = 16;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calc_pixel_at_rb` is never used
[INFO] [stdout]   --> src/pass/demosaicing/enhanced_linear.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn calc_pixel_at_rb(image: &[u16], i: usize, w: usize) -> [u16; 3] {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calc_pixel_at_g` is never used
[INFO] [stdout]   --> src/pass/demosaicing/enhanced_linear.rs:53:4
[INFO] [stdout]    |
[INFO] [stdout] 53 | fn calc_pixel_at_g(image: &[u16], i: usize, w: usize) -> [u16; 3] {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rggb` is never used
[INFO] [stdout]   --> src/pass/demosaicing/enhanced_linear.rs:63:15
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub(super) fn rggb(i: usize, v: u16, image: &[u16], w: usize, h: usize) -> [u16; 3] {
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bggr` is never used
[INFO] [stdout]    --> src/pass/demosaicing/enhanced_linear.rs:115:15
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub(super) fn bggr(i: usize, v: u16, image: &[u16], w: usize, h: usize) -> [u16; 3] {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `grbg` is never used
[INFO] [stdout]    --> src/pass/demosaicing/enhanced_linear.rs:167:15
[INFO] [stdout]     |
[INFO] [stdout] 167 | pub(super) fn grbg(i: usize, v: u16, image: &[u16], w: usize, h: usize) -> [u16; 3] {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gbrg` is never used
[INFO] [stdout]    --> src/pass/demosaicing/enhanced_linear.rs:223:15
[INFO] [stdout]     |
[INFO] [stdout] 223 | pub(super) fn gbrg(i: usize, v: u16, image: &[u16], w: usize, h: usize) -> [u16; 3] {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `u16rgb_to_u8rgb` is never used
[INFO] [stdout]  --> src/pass/general.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn u16rgb_to_u8rgb(iter: impl Iterator<Item = [u16; 3]>) -> impl Iterator<Item = [u8; 3]> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_thumbnail` is never used
[INFO] [stdout]   --> src/maker/mod.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub(super) trait RawDecoder {
[INFO] [stdout]    |                  ---------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 52 |     fn get_thumbnail<'a>(&self, buffer: &'a [u8]) -> Result<&'a [u8], DecodingError>;
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `select_and_decode_thumbnail` is never used
[INFO] [stdout]   --> src/maker/selector.rs:68:25
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub(in super::super) fn select_and_decode_thumbnail(
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `u16be`, `i32`, and `r64` are never used
[INFO] [stdout]  --> src/maker/utility.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub(super) trait GetNumFromBytes {
[INFO] [stdout]   |                  --------------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 4 |     fn u16be(&self, start: usize) -> u16;
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 8 |     fn i32(&self, is_le: bool, start: usize) -> i32;
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 9 |     fn r64(&self, is_le: bool, start: usize) -> f64;
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GetBytesFromInt` is never used
[INFO] [stdout]   --> src/maker/utility.rs:12:18
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub(super) trait GetBytesFromInt<T> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `THUMBNAIL_RULE` is never used
[INFO] [stdout]   --> src/maker/adobe.rs:11:19
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub(super) static THUMBNAIL_RULE: Lazy<quickexif::ParsingRule> = Lazy::new(|| {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_ibits_sextended` is never used
[INFO] [stdout]    --> src/maker/decode_utility/bit_pump.rs:207:8
[INFO] [stdout]     |
[INFO] [stdout] 179 | pub(in super::super) trait BitPump {
[INFO] [stdout]     |                            ------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 207 |     fn get_ibits_sextended(&mut self, num: u32) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `THUMBNAIL_RULE` is never used
[INFO] [stdout]   --> src/maker/fujifilm.rs:27:19
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub(super) static THUMBNAIL_RULE: Lazy<quickexif::ParsingRule> = Lazy::new(|| {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `THUMBNAIL_RULE` is never used
[INFO] [stdout]   --> src/maker/nikon.rs:15:19
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub(super) static THUMBNAIL_RULE: Lazy<quickexif::ParsingRule> = Lazy::new(|| {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `THUMBNAIL_RULE` is never used
[INFO] [stdout]   --> src/maker/olympus.rs:10:19
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub(super) static THUMBNAIL_RULE: Lazy<quickexif::ParsingRule> = Lazy::new(|| {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `THUMBNAIL_RULE` is never used
[INFO] [stdout]  --> src/maker/panasonic.rs:9:19
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub(super) static THUMBNAIL_RULE: Lazy<quickexif::ParsingRule> = Lazy::new(|| {
[INFO] [stdout]   |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `THUMBNAIL_RULE` is never used
[INFO] [stdout]   --> src/maker/sony.rs:14:19
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub(super) static THUMBNAIL_RULE: Lazy<quickexif::ParsingRule> = Lazy::new(|| {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_thumbnail` is never used
[INFO] [stdout]    --> src/decode.rs:102:15
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub(super) fn get_thumbnail(buffer: &[u8]) -> Result<(&[u8], Orientation), RawFileReadingError> {
[INFO] [stdout]     |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/maker/decode_utility/bit_pump.rs:12:39
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub(in super::super) fn new(src: &'a [u8]) -> BitPumpMSB {
[INFO] [stdout]    |                                       ^^          ---------- the lifetime gets resolved as `'a`
[INFO] [stdout]    |                                       |
[INFO] [stdout]    |                                       this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: one option is to consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub(in super::super) fn new(src: &'a [u8]) -> BitPumpMSB<'a> {
[INFO] [stdout]    |                                                             ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/maker/decode_utility/bit_pump.rs:31:39
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub(in super::super) fn new(src: &'a [u8]) -> BitPumpMSB32 {
[INFO] [stdout]    |                                       ^^          ------------ the lifetime gets resolved as `'a`
[INFO] [stdout]    |                                       |
[INFO] [stdout]    |                                       this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub(in super::super) fn new(src: &'a [u8]) -> BitPumpMSB32<'a> {
[INFO] [stdout]    |                                                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/maker/decode_utility/bit_pump.rs:74:39
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub(in super::super) fn new(src: &'a [u8]) -> BitPumpJPEG {
[INFO] [stdout]    |                                       ^^          ----------- the lifetime gets resolved as `'a`
[INFO] [stdout]    |                                       |
[INFO] [stdout]    |                                       this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub(in super::super) fn new(src: &'a [u8]) -> BitPumpJPEG<'a> {
[INFO] [stdout]    |                                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/maker/decode_utility/bit_pump.rs:151:39
[INFO] [stdout]     |
[INFO] [stdout] 151 |     pub(in super::super) fn new(src: &'a [u8]) -> BitPumpLSB {
[INFO] [stdout]     |                                       ^^          ---------- the lifetime gets resolved as `'a`
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 151 |     pub(in super::super) fn new(src: &'a [u8]) -> BitPumpLSB<'a> {
[INFO] [stdout]     |                                                             ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/maker/decode_utility/bit_pump.rs:169:39
[INFO] [stdout]     |
[INFO] [stdout] 169 |     pub(in super::super) fn new(src: &'a [u8], split: bool) -> BitPumpPanasonic {
[INFO] [stdout]     |                                       ^^                       ---------------- the lifetime gets resolved as `'a`
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 169 |     pub(in super::super) fn new(src: &'a [u8], split: bool) -> BitPumpPanasonic<'a> {
[INFO] [stdout]     |                                                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/maker/decode_utility/byte_stream.rs:13:39
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub(in super::super) fn new(src: &'a [u8], is_le: bool) -> ByteStream {
[INFO] [stdout]    |                                       ^^                       ---------- the lifetime gets resolved as `'a`
[INFO] [stdout]    |                                       |
[INFO] [stdout]    |                                       this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub(in super::super) fn new(src: &'a [u8], is_le: bool) -> ByteStream<'a> {
[INFO] [stdout]    |                                                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/maker/decode_utility/ljpeg/mod.rs:132:22
[INFO] [stdout]     |
[INFO] [stdout] 132 |     pub fn new(src: &'a [u8]) -> Result<LjpegDecompressor, DecodingError> {
[INFO] [stdout]     |                      ^^                 ----------------- the lifetime gets resolved as `'a`
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 132 |     pub fn new(src: &'a [u8]) -> Result<LjpegDecompressor<'a>, DecodingError> {
[INFO] [stdout]     |                                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/maker/decode_utility/ljpeg/mod.rs:138:15
[INFO] [stdout]     |
[INFO] [stdout] 138 |         src: &'a [u8],
[INFO] [stdout]     |               ^^ this lifetime flows to the output
[INFO] [stdout] ...
[INFO] [stdout] 141 |     ) -> Result<LjpegDecompressor, String> {
[INFO] [stdout]     |                 ----------------- the lifetime gets resolved as `'a`
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 141 |     ) -> Result<LjpegDecompressor<'a>, String> {
[INFO] [stdout]     |                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `CString::from_raw` that must be used
[INFO] [stdout]   --> src/lib_c.rs:11:14
[INFO] [stdout]    |
[INFO] [stdout] 11 |     unsafe { CString::from_raw(ptr) };
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(from_raw(ptr))` if you intend to drop the `CString`
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 11 |     unsafe { let _ = CString::from_raw(ptr); };
[INFO] [stdout]    |              +++++++                       +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 48.33s
[INFO] running `Command { std: "docker" "inspect" "ff99785803ef105d227048a5707836cfa382488218382a274bd4d0ccd978e1dc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ff99785803ef105d227048a5707836cfa382488218382a274bd4d0ccd978e1dc", kill_on_drop: false }`
[INFO] [stdout] ff99785803ef105d227048a5707836cfa382488218382a274bd4d0ccd978e1dc
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Copt-level=3" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 352bfc5576153502a15f99c460fb683da5ff2bd4492af590b22aa4e4e2e44032
[INFO] running `Command { std: "docker" "start" "-a" "352bfc5576153502a15f99c460fb683da5ff2bd4492af590b22aa4e4e2e44032", kill_on_drop: false }`
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> src/maker/sony.rs:168:30
[INFO] [stdout]     |
[INFO] [stdout] 168 |             table[j] = table[(j - 1)] + (1 << i);
[INFO] [stdout]     |                              ^     ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 168 -             table[j] = table[(j - 1)] + (1 << i);
[INFO] [stdout] 168 +             table[j] = table[j - 1] + (1 << i);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `color_convert_rgba` is never used
[INFO] [stdout]   --> src/pass/color.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn color_convert_rgba<'a>(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `elinear_rggb` is never used
[INFO] [stdout]   --> src/pass/demosaicing/mod.rs:32:13
[INFO] [stdout]    |
[INFO] [stdout] 32 | gen_linear!(elinear_rggb, enhanced_linear::rggb);
[INFO] [stdout]    |             ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `gen_linear` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `elinear_bggr` is never used
[INFO] [stdout]   --> src/pass/demosaicing/mod.rs:33:13
[INFO] [stdout]    |
[INFO] [stdout] 33 | gen_linear!(elinear_bggr, enhanced_linear::bggr);
[INFO] [stdout]    |             ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `gen_linear` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `elinear_grbg` is never used
[INFO] [stdout]   --> src/pass/demosaicing/mod.rs:34:13
[INFO] [stdout]    |
[INFO] [stdout] 34 | gen_linear!(elinear_grbg, enhanced_linear::grbg);
[INFO] [stdout]    |             ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `gen_linear` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `elinear_gbrg` is never used
[INFO] [stdout]   --> src/pass/demosaicing/mod.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 | gen_linear!(elinear_gbrg, enhanced_linear::gbrg);
[INFO] [stdout]    |             ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `gen_linear` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_window` is never used
[INFO] [stdout]  --> src/pass/demosaicing/enhanced_linear.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn get_window(image: &[u16], i: usize, w: usize) -> [i32; 9] {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clamp` is never used
[INFO] [stdout]   --> src/pass/demosaicing/enhanced_linear.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn clamp(x: i32) -> u16 {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DIFF_ALPHA` is never used
[INFO] [stdout]   --> src/pass/demosaicing/enhanced_linear.rs:25:7
[INFO] [stdout]    |
[INFO] [stdout] 25 | const DIFF_ALPHA: i32 = 16;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calc_pixel_at_rb` is never used
[INFO] [stdout]   --> src/pass/demosaicing/enhanced_linear.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn calc_pixel_at_rb(image: &[u16], i: usize, w: usize) -> [u16; 3] {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calc_pixel_at_g` is never used
[INFO] [stdout]   --> src/pass/demosaicing/enhanced_linear.rs:53:4
[INFO] [stdout]    |
[INFO] [stdout] 53 | fn calc_pixel_at_g(image: &[u16], i: usize, w: usize) -> [u16; 3] {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rggb` is never used
[INFO] [stdout]   --> src/pass/demosaicing/enhanced_linear.rs:63:15
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub(super) fn rggb(i: usize, v: u16, image: &[u16], w: usize, h: usize) -> [u16; 3] {
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bggr` is never used
[INFO] [stdout]    --> src/pass/demosaicing/enhanced_linear.rs:115:15
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub(super) fn bggr(i: usize, v: u16, image: &[u16], w: usize, h: usize) -> [u16; 3] {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `grbg` is never used
[INFO] [stdout]    --> src/pass/demosaicing/enhanced_linear.rs:167:15
[INFO] [stdout]     |
[INFO] [stdout] 167 | pub(super) fn grbg(i: usize, v: u16, image: &[u16], w: usize, h: usize) -> [u16; 3] {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gbrg` is never used
[INFO] [stdout]    --> src/pass/demosaicing/enhanced_linear.rs:223:15
[INFO] [stdout]     |
[INFO] [stdout] 223 | pub(super) fn gbrg(i: usize, v: u16, image: &[u16], w: usize, h: usize) -> [u16; 3] {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `u16rgb_to_u8rgb` is never used
[INFO] [stdout]  --> src/pass/general.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn u16rgb_to_u8rgb(iter: impl Iterator<Item = [u16; 3]>) -> impl Iterator<Item = [u8; 3]> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_thumbnail` is never used
[INFO] [stdout]   --> src/maker/mod.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub(super) trait RawDecoder {
[INFO] [stdout]    |                  ---------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 52 |     fn get_thumbnail<'a>(&self, buffer: &'a [u8]) -> Result<&'a [u8], DecodingError>;
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `select_and_decode_thumbnail` is never used
[INFO] [stdout]   --> src/maker/selector.rs:68:25
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub(in super::super) fn select_and_decode_thumbnail(
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `u16be`, `i32`, and `r64` are never used
[INFO] [stdout]  --> src/maker/utility.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub(super) trait GetNumFromBytes {
[INFO] [stdout]   |                  --------------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 4 |     fn u16be(&self, start: usize) -> u16;
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 8 |     fn i32(&self, is_le: bool, start: usize) -> i32;
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 9 |     fn r64(&self, is_le: bool, start: usize) -> f64;
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GetBytesFromInt` is never used
[INFO] [stdout]   --> src/maker/utility.rs:12:18
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub(super) trait GetBytesFromInt<T> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `THUMBNAIL_RULE` is never used
[INFO] [stdout]   --> src/maker/adobe.rs:11:19
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub(super) static THUMBNAIL_RULE: Lazy<quickexif::ParsingRule> = Lazy::new(|| {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_ibits_sextended` is never used
[INFO] [stdout]    --> src/maker/decode_utility/bit_pump.rs:207:8
[INFO] [stdout]     |
[INFO] [stdout] 179 | pub(in super::super) trait BitPump {
[INFO] [stdout]     |                            ------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 207 |     fn get_ibits_sextended(&mut self, num: u32) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `THUMBNAIL_RULE` is never used
[INFO] [stdout]   --> src/maker/fujifilm.rs:27:19
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub(super) static THUMBNAIL_RULE: Lazy<quickexif::ParsingRule> = Lazy::new(|| {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `THUMBNAIL_RULE` is never used
[INFO] [stdout]   --> src/maker/nikon.rs:15:19
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub(super) static THUMBNAIL_RULE: Lazy<quickexif::ParsingRule> = Lazy::new(|| {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `THUMBNAIL_RULE` is never used
[INFO] [stdout]   --> src/maker/olympus.rs:10:19
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub(super) static THUMBNAIL_RULE: Lazy<quickexif::ParsingRule> = Lazy::new(|| {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `THUMBNAIL_RULE` is never used
[INFO] [stdout]  --> src/maker/panasonic.rs:9:19
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub(super) static THUMBNAIL_RULE: Lazy<quickexif::ParsingRule> = Lazy::new(|| {
[INFO] [stdout]   |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `THUMBNAIL_RULE` is never used
[INFO] [stdout]   --> src/maker/sony.rs:14:19
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub(super) static THUMBNAIL_RULE: Lazy<quickexif::ParsingRule> = Lazy::new(|| {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_thumbnail` is never used
[INFO] [stdout]    --> src/decode.rs:102:15
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub(super) fn get_thumbnail(buffer: &[u8]) -> Result<(&[u8], Orientation), RawFileReadingError> {
[INFO] [stdout]     |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/maker/decode_utility/bit_pump.rs:12:39
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub(in super::super) fn new(src: &'a [u8]) -> BitPumpMSB {
[INFO] [stdout]    |                                       ^^          ---------- the lifetime gets resolved as `'a`
[INFO] [stdout]    |                                       |
[INFO] [stdout]    |                                       this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: one option is to consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub(in super::super) fn new(src: &'a [u8]) -> BitPumpMSB<'a> {
[INFO] [stdout]    |                                                             ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/maker/decode_utility/bit_pump.rs:31:39
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub(in super::super) fn new(src: &'a [u8]) -> BitPumpMSB32 {
[INFO] [stdout]    |                                       ^^          ------------ the lifetime gets resolved as `'a`
[INFO] [stdout]    |                                       |
[INFO] [stdout]    |                                       this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub(in super::super) fn new(src: &'a [u8]) -> BitPumpMSB32<'a> {
[INFO] [stdout]    |                                                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/maker/decode_utility/bit_pump.rs:74:39
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub(in super::super) fn new(src: &'a [u8]) -> BitPumpJPEG {
[INFO] [stdout]    |                                       ^^          ----------- the lifetime gets resolved as `'a`
[INFO] [stdout]    |                                       |
[INFO] [stdout]    |                                       this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub(in super::super) fn new(src: &'a [u8]) -> BitPumpJPEG<'a> {
[INFO] [stdout]    |                                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/maker/decode_utility/bit_pump.rs:151:39
[INFO] [stdout]     |
[INFO] [stdout] 151 |     pub(in super::super) fn new(src: &'a [u8]) -> BitPumpLSB {
[INFO] [stdout]     |                                       ^^          ---------- the lifetime gets resolved as `'a`
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 151 |     pub(in super::super) fn new(src: &'a [u8]) -> BitPumpLSB<'a> {
[INFO] [stdout]     |                                                             ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/maker/decode_utility/bit_pump.rs:169:39
[INFO] [stdout]     |
[INFO] [stdout] 169 |     pub(in super::super) fn new(src: &'a [u8], split: bool) -> BitPumpPanasonic {
[INFO] [stdout]     |                                       ^^                       ---------------- the lifetime gets resolved as `'a`
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 169 |     pub(in super::super) fn new(src: &'a [u8], split: bool) -> BitPumpPanasonic<'a> {
[INFO] [stdout]     |                                                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/maker/decode_utility/byte_stream.rs:13:39
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub(in super::super) fn new(src: &'a [u8], is_le: bool) -> ByteStream {
[INFO] [stdout]    |                                       ^^                       ---------- the lifetime gets resolved as `'a`
[INFO] [stdout]    |                                       |
[INFO] [stdout]    |                                       this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub(in super::super) fn new(src: &'a [u8], is_le: bool) -> ByteStream<'a> {
[INFO] [stdout]    |                                                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/maker/decode_utility/ljpeg/mod.rs:132:22
[INFO] [stdout]     |
[INFO] [stdout] 132 |     pub fn new(src: &'a [u8]) -> Result<LjpegDecompressor, DecodingError> {
[INFO] [stdout]     |                      ^^                 ----------------- the lifetime gets resolved as `'a`
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 132 |     pub fn new(src: &'a [u8]) -> Result<LjpegDecompressor<'a>, DecodingError> {
[INFO] [stdout]     |                                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/maker/decode_utility/ljpeg/mod.rs:138:15
[INFO] [stdout]     |
[INFO] [stdout] 138 |         src: &'a [u8],
[INFO] [stdout]     |               ^^ this lifetime flows to the output
[INFO] [stdout] ...
[INFO] [stdout] 141 |     ) -> Result<LjpegDecompressor, String> {
[INFO] [stdout]     |                 ----------------- the lifetime gets resolved as `'a`
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 141 |     ) -> Result<LjpegDecompressor<'a>, String> {
[INFO] [stdout]     |                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `CString::from_raw` that must be used
[INFO] [stdout]   --> src/lib_c.rs:11:14
[INFO] [stdout]    |
[INFO] [stdout] 11 |     unsafe { CString::from_raw(ptr) };
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(from_raw(ptr))` if you intend to drop the `CString`
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 11 |     unsafe { let _ = CString::from_raw(ptr); };
[INFO] [stdout]    |              +++++++                       +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling quickraw v0.2.1-alpha.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> src/maker/sony.rs:168:30
[INFO] [stdout]     |
[INFO] [stdout] 168 |             table[j] = table[(j - 1)] + (1 << i);
[INFO] [stdout]     |                              ^     ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 168 -             table[j] = table[(j - 1)] + (1 << i);
[INFO] [stdout] 168 +             table[j] = table[j - 1] + (1 << i);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `color_convert_rgba` is never used
[INFO] [stdout]   --> src/pass/color.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn color_convert_rgba<'a>(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `elinear_rggb` is never used
[INFO] [stdout]   --> src/pass/demosaicing/mod.rs:32:13
[INFO] [stdout]    |
[INFO] [stdout] 32 | gen_linear!(elinear_rggb, enhanced_linear::rggb);
[INFO] [stdout]    |             ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `gen_linear` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `elinear_bggr` is never used
[INFO] [stdout]   --> src/pass/demosaicing/mod.rs:33:13
[INFO] [stdout]    |
[INFO] [stdout] 33 | gen_linear!(elinear_bggr, enhanced_linear::bggr);
[INFO] [stdout]    |             ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `gen_linear` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `elinear_grbg` is never used
[INFO] [stdout]   --> src/pass/demosaicing/mod.rs:34:13
[INFO] [stdout]    |
[INFO] [stdout] 34 | gen_linear!(elinear_grbg, enhanced_linear::grbg);
[INFO] [stdout]    |             ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `gen_linear` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `elinear_gbrg` is never used
[INFO] [stdout]   --> src/pass/demosaicing/mod.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 | gen_linear!(elinear_gbrg, enhanced_linear::gbrg);
[INFO] [stdout]    |             ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `gen_linear` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_window` is never used
[INFO] [stdout]  --> src/pass/demosaicing/enhanced_linear.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn get_window(image: &[u16], i: usize, w: usize) -> [i32; 9] {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clamp` is never used
[INFO] [stdout]   --> src/pass/demosaicing/enhanced_linear.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn clamp(x: i32) -> u16 {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DIFF_ALPHA` is never used
[INFO] [stdout]   --> src/pass/demosaicing/enhanced_linear.rs:25:7
[INFO] [stdout]    |
[INFO] [stdout] 25 | const DIFF_ALPHA: i32 = 16;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calc_pixel_at_rb` is never used
[INFO] [stdout]   --> src/pass/demosaicing/enhanced_linear.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn calc_pixel_at_rb(image: &[u16], i: usize, w: usize) -> [u16; 3] {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calc_pixel_at_g` is never used
[INFO] [stdout]   --> src/pass/demosaicing/enhanced_linear.rs:53:4
[INFO] [stdout]    |
[INFO] [stdout] 53 | fn calc_pixel_at_g(image: &[u16], i: usize, w: usize) -> [u16; 3] {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rggb` is never used
[INFO] [stdout]   --> src/pass/demosaicing/enhanced_linear.rs:63:15
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub(super) fn rggb(i: usize, v: u16, image: &[u16], w: usize, h: usize) -> [u16; 3] {
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bggr` is never used
[INFO] [stdout]    --> src/pass/demosaicing/enhanced_linear.rs:115:15
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub(super) fn bggr(i: usize, v: u16, image: &[u16], w: usize, h: usize) -> [u16; 3] {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `grbg` is never used
[INFO] [stdout]    --> src/pass/demosaicing/enhanced_linear.rs:167:15
[INFO] [stdout]     |
[INFO] [stdout] 167 | pub(super) fn grbg(i: usize, v: u16, image: &[u16], w: usize, h: usize) -> [u16; 3] {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gbrg` is never used
[INFO] [stdout]    --> src/pass/demosaicing/enhanced_linear.rs:223:15
[INFO] [stdout]     |
[INFO] [stdout] 223 | pub(super) fn gbrg(i: usize, v: u16, image: &[u16], w: usize, h: usize) -> [u16; 3] {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `u16rgb_to_u8rgb` is never used
[INFO] [stdout]  --> src/pass/general.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn u16rgb_to_u8rgb(iter: impl Iterator<Item = [u16; 3]>) -> impl Iterator<Item = [u8; 3]> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_thumbnail` is never used
[INFO] [stdout]   --> src/maker/mod.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub(super) trait RawDecoder {
[INFO] [stdout]    |                  ---------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 52 |     fn get_thumbnail<'a>(&self, buffer: &'a [u8]) -> Result<&'a [u8], DecodingError>;
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `select_and_decode_thumbnail` is never used
[INFO] [stdout]   --> src/maker/selector.rs:68:25
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub(in super::super) fn select_and_decode_thumbnail(
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `u16be`, `i32`, and `r64` are never used
[INFO] [stdout]  --> src/maker/utility.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub(super) trait GetNumFromBytes {
[INFO] [stdout]   |                  --------------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 4 |     fn u16be(&self, start: usize) -> u16;
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 8 |     fn i32(&self, is_le: bool, start: usize) -> i32;
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 9 |     fn r64(&self, is_le: bool, start: usize) -> f64;
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GetBytesFromInt` is never used
[INFO] [stdout]   --> src/maker/utility.rs:12:18
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub(super) trait GetBytesFromInt<T> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `THUMBNAIL_RULE` is never used
[INFO] [stdout]   --> src/maker/adobe.rs:11:19
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub(super) static THUMBNAIL_RULE: Lazy<quickexif::ParsingRule> = Lazy::new(|| {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_ibits_sextended` is never used
[INFO] [stdout]    --> src/maker/decode_utility/bit_pump.rs:207:8
[INFO] [stdout]     |
[INFO] [stdout] 179 | pub(in super::super) trait BitPump {
[INFO] [stdout]     |                            ------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 207 |     fn get_ibits_sextended(&mut self, num: u32) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `THUMBNAIL_RULE` is never used
[INFO] [stdout]   --> src/maker/fujifilm.rs:27:19
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub(super) static THUMBNAIL_RULE: Lazy<quickexif::ParsingRule> = Lazy::new(|| {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `THUMBNAIL_RULE` is never used
[INFO] [stdout]   --> src/maker/nikon.rs:15:19
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub(super) static THUMBNAIL_RULE: Lazy<quickexif::ParsingRule> = Lazy::new(|| {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `THUMBNAIL_RULE` is never used
[INFO] [stdout]   --> src/maker/olympus.rs:10:19
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub(super) static THUMBNAIL_RULE: Lazy<quickexif::ParsingRule> = Lazy::new(|| {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `THUMBNAIL_RULE` is never used
[INFO] [stdout]  --> src/maker/panasonic.rs:9:19
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub(super) static THUMBNAIL_RULE: Lazy<quickexif::ParsingRule> = Lazy::new(|| {
[INFO] [stdout]   |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `THUMBNAIL_RULE` is never used
[INFO] [stdout]   --> src/maker/sony.rs:14:19
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub(super) static THUMBNAIL_RULE: Lazy<quickexif::ParsingRule> = Lazy::new(|| {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_thumbnail` is never used
[INFO] [stdout]    --> src/decode.rs:102:15
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub(super) fn get_thumbnail(buffer: &[u8]) -> Result<(&[u8], Orientation), RawFileReadingError> {
[INFO] [stdout]     |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/maker/decode_utility/bit_pump.rs:12:39
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub(in super::super) fn new(src: &'a [u8]) -> BitPumpMSB {
[INFO] [stdout]    |                                       ^^          ---------- the lifetime gets resolved as `'a`
[INFO] [stdout]    |                                       |
[INFO] [stdout]    |                                       this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: one option is to consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub(in super::super) fn new(src: &'a [u8]) -> BitPumpMSB<'a> {
[INFO] [stdout]    |                                                             ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/maker/decode_utility/bit_pump.rs:31:39
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub(in super::super) fn new(src: &'a [u8]) -> BitPumpMSB32 {
[INFO] [stdout]    |                                       ^^          ------------ the lifetime gets resolved as `'a`
[INFO] [stdout]    |                                       |
[INFO] [stdout]    |                                       this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub(in super::super) fn new(src: &'a [u8]) -> BitPumpMSB32<'a> {
[INFO] [stdout]    |                                                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/maker/decode_utility/bit_pump.rs:74:39
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub(in super::super) fn new(src: &'a [u8]) -> BitPumpJPEG {
[INFO] [stdout]    |                                       ^^          ----------- the lifetime gets resolved as `'a`
[INFO] [stdout]    |                                       |
[INFO] [stdout]    |                                       this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub(in super::super) fn new(src: &'a [u8]) -> BitPumpJPEG<'a> {
[INFO] [stdout]    |                                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/maker/decode_utility/bit_pump.rs:151:39
[INFO] [stdout]     |
[INFO] [stdout] 151 |     pub(in super::super) fn new(src: &'a [u8]) -> BitPumpLSB {
[INFO] [stdout]     |                                       ^^          ---------- the lifetime gets resolved as `'a`
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 151 |     pub(in super::super) fn new(src: &'a [u8]) -> BitPumpLSB<'a> {
[INFO] [stdout]     |                                                             ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/maker/decode_utility/bit_pump.rs:169:39
[INFO] [stdout]     |
[INFO] [stdout] 169 |     pub(in super::super) fn new(src: &'a [u8], split: bool) -> BitPumpPanasonic {
[INFO] [stdout]     |                                       ^^                       ---------------- the lifetime gets resolved as `'a`
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 169 |     pub(in super::super) fn new(src: &'a [u8], split: bool) -> BitPumpPanasonic<'a> {
[INFO] [stdout]     |                                                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/maker/decode_utility/byte_stream.rs:13:39
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub(in super::super) fn new(src: &'a [u8], is_le: bool) -> ByteStream {
[INFO] [stdout]    |                                       ^^                       ---------- the lifetime gets resolved as `'a`
[INFO] [stdout]    |                                       |
[INFO] [stdout]    |                                       this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub(in super::super) fn new(src: &'a [u8], is_le: bool) -> ByteStream<'a> {
[INFO] [stdout]    |                                                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/maker/decode_utility/ljpeg/mod.rs:132:22
[INFO] [stdout]     |
[INFO] [stdout] 132 |     pub fn new(src: &'a [u8]) -> Result<LjpegDecompressor, DecodingError> {
[INFO] [stdout]     |                      ^^                 ----------------- the lifetime gets resolved as `'a`
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 132 |     pub fn new(src: &'a [u8]) -> Result<LjpegDecompressor<'a>, DecodingError> {
[INFO] [stdout]     |                                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> src/maker/decode_utility/ljpeg/mod.rs:138:15
[INFO] [stdout]     |
[INFO] [stdout] 138 |         src: &'a [u8],
[INFO] [stdout]     |               ^^ this lifetime flows to the output
[INFO] [stdout] ...
[INFO] [stdout] 141 |     ) -> Result<LjpegDecompressor, String> {
[INFO] [stdout]     |                 ----------------- the lifetime gets resolved as `'a`
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 141 |     ) -> Result<LjpegDecompressor<'a>, String> {
[INFO] [stdout]     |                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `CString::from_raw` that must be used
[INFO] [stdout]   --> src/lib_c.rs:11:14
[INFO] [stdout]    |
[INFO] [stdout] 11 |     unsafe { CString::from_raw(ptr) };
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(from_raw(ptr))` if you intend to drop the `CString`
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 11 |     unsafe { let _ = CString::from_raw(ptr); };
[INFO] [stdout]    |              +++++++                       +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 7.99s
[INFO] running `Command { std: "docker" "inspect" "352bfc5576153502a15f99c460fb683da5ff2bd4492af590b22aa4e4e2e44032", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "352bfc5576153502a15f99c460fb683da5ff2bd4492af590b22aa4e4e2e44032", kill_on_drop: false }`
[INFO] [stdout] 352bfc5576153502a15f99c460fb683da5ff2bd4492af590b22aa4e4e2e44032
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Copt-level=3" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] aa553e82abdb29149ba13ae4946bbd57430b4f84afa1a5c02061c5ae13e53563
[INFO] running `Command { std: "docker" "start" "-a" "aa553e82abdb29149ba13ae4946bbd57430b4f84afa1a5c02061c5ae13e53563", kill_on_drop: false }`
[INFO] [stderr] warning: unnecessary parentheses around index expression
[INFO] [stderr]    --> src/maker/sony.rs:168:30
[INFO] [stderr]     |
[INFO] [stderr] 168 |             table[j] = table[(j - 1)] + (1 << i);
[INFO] [stderr]     |                              ^     ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 168 -             table[j] = table[(j - 1)] + (1 << i);
[INFO] [stderr] 168 +             table[j] = table[j - 1] + (1 << i);
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: function `color_convert_rgba` is never used
[INFO] [stderr]   --> src/pass/color.rs:35:8
[INFO] [stderr]    |
[INFO] [stderr] 35 | pub fn color_convert_rgba<'a>(
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `elinear_rggb` is never used
[INFO] [stderr]   --> src/pass/demosaicing/mod.rs:32:13
[INFO] [stderr]    |
[INFO] [stderr] 32 | gen_linear!(elinear_rggb, enhanced_linear::rggb);
[INFO] [stderr]    |             ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this warning originates in the macro `gen_linear` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: function `elinear_bggr` is never used
[INFO] [stderr]   --> src/pass/demosaicing/mod.rs:33:13
[INFO] [stderr]    |
[INFO] [stderr] 33 | gen_linear!(elinear_bggr, enhanced_linear::bggr);
[INFO] [stderr]    |             ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this warning originates in the macro `gen_linear` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: function `elinear_grbg` is never used
[INFO] [stderr]   --> src/pass/demosaicing/mod.rs:34:13
[INFO] [stderr]    |
[INFO] [stderr] 34 | gen_linear!(elinear_grbg, enhanced_linear::grbg);
[INFO] [stderr]    |             ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this warning originates in the macro `gen_linear` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: function `elinear_gbrg` is never used
[INFO] [stderr]   --> src/pass/demosaicing/mod.rs:35:13
[INFO] [stderr]    |
[INFO] [stderr] 35 | gen_linear!(elinear_gbrg, enhanced_linear::gbrg);
[INFO] [stderr]    |             ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this warning originates in the macro `gen_linear` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_window` is never used
[INFO] [stderr]  --> src/pass/demosaicing/enhanced_linear.rs:4:4
[INFO] [stderr]   |
[INFO] [stderr] 4 | fn get_window(image: &[u16], i: usize, w: usize) -> [i32; 9] {
[INFO] [stderr]   |    ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `clamp` is never used
[INFO] [stderr]   --> src/pass/demosaicing/enhanced_linear.rs:20:4
[INFO] [stderr]    |
[INFO] [stderr] 20 | fn clamp(x: i32) -> u16 {
[INFO] [stderr]    |    ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `DIFF_ALPHA` is never used
[INFO] [stderr]   --> src/pass/demosaicing/enhanced_linear.rs:25:7
[INFO] [stderr]    |
[INFO] [stderr] 25 | const DIFF_ALPHA: i32 = 16;
[INFO] [stderr]    |       ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `calc_pixel_at_rb` is never used
[INFO] [stderr]   --> src/pass/demosaicing/enhanced_linear.rs:28:4
[INFO] [stderr]    |
[INFO] [stderr] 28 | fn calc_pixel_at_rb(image: &[u16], i: usize, w: usize) -> [u16; 3] {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `calc_pixel_at_g` is never used
[INFO] [stderr]   --> src/pass/demosaicing/enhanced_linear.rs:53:4
[INFO] [stderr]    |
[INFO] [stderr] 53 | fn calc_pixel_at_g(image: &[u16], i: usize, w: usize) -> [u16; 3] {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `rggb` is never used
[INFO] [stderr]   --> src/pass/demosaicing/enhanced_linear.rs:63:15
[INFO] [stderr]    |
[INFO] [stderr] 63 | pub(super) fn rggb(i: usize, v: u16, image: &[u16], w: usize, h: usize) -> [u16; 3] {
[INFO] [stderr]    |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `bggr` is never used
[INFO] [stderr]    --> src/pass/demosaicing/enhanced_linear.rs:115:15
[INFO] [stderr]     |
[INFO] [stderr] 115 | pub(super) fn bggr(i: usize, v: u16, image: &[u16], w: usize, h: usize) -> [u16; 3] {
[INFO] [stderr]     |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `grbg` is never used
[INFO] [stderr]    --> src/pass/demosaicing/enhanced_linear.rs:167:15
[INFO] [stderr]     |
[INFO] [stderr] 167 | pub(super) fn grbg(i: usize, v: u16, image: &[u16], w: usize, h: usize) -> [u16; 3] {
[INFO] [stderr]     |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `gbrg` is never used
[INFO] [stderr]    --> src/pass/demosaicing/enhanced_linear.rs:223:15
[INFO] [stderr]     |
[INFO] [stderr] 223 | pub(super) fn gbrg(i: usize, v: u16, image: &[u16], w: usize, h: usize) -> [u16; 3] {
[INFO] [stderr]     |               ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `u16rgb_to_u8rgb` is never used
[INFO] [stderr]  --> src/pass/general.rs:8:8
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub fn u16rgb_to_u8rgb(iter: impl Iterator<Item = [u16; 3]>) -> impl Iterator<Item = [u8; 3]> {
[INFO] [stderr]   |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `get_thumbnail` is never used
[INFO] [stderr]   --> src/maker/mod.rs:52:8
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub(super) trait RawDecoder {
[INFO] [stderr]    |                  ---------- method in this trait
[INFO] [stderr] ...
[INFO] [stderr] 52 |     fn get_thumbnail<'a>(&self, buffer: &'a [u8]) -> Result<&'a [u8], DecodingError>;
[INFO] [stderr]    |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `select_and_decode_thumbnail` is never used
[INFO] [stderr]   --> src/maker/selector.rs:68:25
[INFO] [stderr]    |
[INFO] [stderr] 68 | pub(in super::super) fn select_and_decode_thumbnail(
[INFO] [stderr]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `u16be`, `i32`, and `r64` are never used
[INFO] [stderr]  --> src/maker/utility.rs:4:8
[INFO] [stderr]   |
[INFO] [stderr] 1 | pub(super) trait GetNumFromBytes {
[INFO] [stderr]   |                  --------------- methods in this trait
[INFO] [stderr] ...
[INFO] [stderr] 4 |     fn u16be(&self, start: usize) -> u16;
[INFO] [stderr]   |        ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 8 |     fn i32(&self, is_le: bool, start: usize) -> i32;
[INFO] [stderr]   |        ^^^
[INFO] [stderr] 9 |     fn r64(&self, is_le: bool, start: usize) -> f64;
[INFO] [stderr]   |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `GetBytesFromInt` is never used
[INFO] [stderr]   --> src/maker/utility.rs:12:18
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub(super) trait GetBytesFromInt<T> {
[INFO] [stderr]    |                  ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: static `THUMBNAIL_RULE` is never used
[INFO] [stderr]   --> src/maker/adobe.rs:11:19
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub(super) static THUMBNAIL_RULE: Lazy<quickexif::ParsingRule> = Lazy::new(|| {
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `get_ibits_sextended` is never used
[INFO] [stderr]    --> src/maker/decode_utility/bit_pump.rs:207:8
[INFO] [stderr]     |
[INFO] [stderr] 179 | pub(in super::super) trait BitPump {
[INFO] [stderr]     |                            ------- method in this trait
[INFO] [stderr] ...
[INFO] [stderr] 207 |     fn get_ibits_sextended(&mut self, num: u32) -> i32 {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: static `THUMBNAIL_RULE` is never used
[INFO] [stderr]   --> src/maker/fujifilm.rs:27:19
[INFO] [stderr]    |
[INFO] [stderr] 27 | pub(super) static THUMBNAIL_RULE: Lazy<quickexif::ParsingRule> = Lazy::new(|| {
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: static `THUMBNAIL_RULE` is never used
[INFO] [stderr]   --> src/maker/nikon.rs:15:19
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub(super) static THUMBNAIL_RULE: Lazy<quickexif::ParsingRule> = Lazy::new(|| {
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: static `THUMBNAIL_RULE` is never used
[INFO] [stderr]   --> src/maker/olympus.rs:10:19
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub(super) static THUMBNAIL_RULE: Lazy<quickexif::ParsingRule> = Lazy::new(|| {
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: static `THUMBNAIL_RULE` is never used
[INFO] [stderr]  --> src/maker/panasonic.rs:9:19
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub(super) static THUMBNAIL_RULE: Lazy<quickexif::ParsingRule> = Lazy::new(|| {
[INFO] [stderr]   |                   ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: static `THUMBNAIL_RULE` is never used
[INFO] [stderr]   --> src/maker/sony.rs:14:19
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub(super) static THUMBNAIL_RULE: Lazy<quickexif::ParsingRule> = Lazy::new(|| {
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_thumbnail` is never used
[INFO] [stderr]    --> src/decode.rs:102:15
[INFO] [stderr]     |
[INFO] [stderr] 102 | pub(super) fn get_thumbnail(buffer: &[u8]) -> Result<(&[u8], Orientation), RawFileReadingError> {
[INFO] [stderr]     |               ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]   --> src/maker/decode_utility/bit_pump.rs:12:39
[INFO] [stderr]    |
[INFO] [stderr] 12 |     pub(in super::super) fn new(src: &'a [u8]) -> BitPumpMSB {
[INFO] [stderr]    |                                       ^^          ---------- the lifetime gets resolved as `'a`
[INFO] [stderr]    |                                       |
[INFO] [stderr]    |                                       this lifetime flows to the output
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: one option is to consistently use `'a`
[INFO] [stderr]    |
[INFO] [stderr] 12 |     pub(in super::super) fn new(src: &'a [u8]) -> BitPumpMSB<'a> {
[INFO] [stderr]    |                                                             ++++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]   --> src/maker/decode_utility/bit_pump.rs:31:39
[INFO] [stderr]    |
[INFO] [stderr] 31 |     pub(in super::super) fn new(src: &'a [u8]) -> BitPumpMSB32 {
[INFO] [stderr]    |                                       ^^          ------------ the lifetime gets resolved as `'a`
[INFO] [stderr]    |                                       |
[INFO] [stderr]    |                                       this lifetime flows to the output
[INFO] [stderr]    |
[INFO] [stderr] help: one option is to consistently use `'a`
[INFO] [stderr]    |
[INFO] [stderr] 31 |     pub(in super::super) fn new(src: &'a [u8]) -> BitPumpMSB32<'a> {
[INFO] [stderr]    |                                                               ++++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]   --> src/maker/decode_utility/bit_pump.rs:74:39
[INFO] [stderr]    |
[INFO] [stderr] 74 |     pub(in super::super) fn new(src: &'a [u8]) -> BitPumpJPEG {
[INFO] [stderr]    |                                       ^^          ----------- the lifetime gets resolved as `'a`
[INFO] [stderr]    |                                       |
[INFO] [stderr]    |                                       this lifetime flows to the output
[INFO] [stderr]    |
[INFO] [stderr] help: one option is to consistently use `'a`
[INFO] [stderr]    |
[INFO] [stderr] 74 |     pub(in super::super) fn new(src: &'a [u8]) -> BitPumpJPEG<'a> {
[INFO] [stderr]    |                                                              ++++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]    --> src/maker/decode_utility/bit_pump.rs:151:39
[INFO] [stderr]     |
[INFO] [stderr] 151 |     pub(in super::super) fn new(src: &'a [u8]) -> BitPumpLSB {
[INFO] [stderr]     |                                       ^^          ---------- the lifetime gets resolved as `'a`
[INFO] [stderr]     |                                       |
[INFO] [stderr]     |                                       this lifetime flows to the output
[INFO] [stderr]     |
[INFO] [stderr] help: one option is to consistently use `'a`
[INFO] [stderr]     |
[INFO] [stderr] 151 |     pub(in super::super) fn new(src: &'a [u8]) -> BitPumpLSB<'a> {
[INFO] [stderr]     |                                                             ++++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]    --> src/maker/decode_utility/bit_pump.rs:169:39
[INFO] [stderr]     |
[INFO] [stderr] 169 |     pub(in super::super) fn new(src: &'a [u8], split: bool) -> BitPumpPanasonic {
[INFO] [stderr]     |                                       ^^                       ---------------- the lifetime gets resolved as `'a`
[INFO] [stderr]     |                                       |
[INFO] [stderr]     |                                       this lifetime flows to the output
[INFO] [stderr]     |
[INFO] [stderr] help: one option is to consistently use `'a`
[INFO] [stderr]     |
[INFO] [stderr] 169 |     pub(in super::super) fn new(src: &'a [u8], split: bool) -> BitPumpPanasonic<'a> {
[INFO] [stderr]     |                                                                                ++++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]   --> src/maker/decode_utility/byte_stream.rs:13:39
[INFO] [stderr]    |
[INFO] [stderr] 13 |     pub(in super::super) fn new(src: &'a [u8], is_le: bool) -> ByteStream {
[INFO] [stderr]    |                                       ^^                       ---------- the lifetime gets resolved as `'a`
[INFO] [stderr]    |                                       |
[INFO] [stderr]    |                                       this lifetime flows to the output
[INFO] [stderr]    |
[INFO] [stderr] help: one option is to consistently use `'a`
[INFO] [stderr]    |
[INFO] [stderr] 13 |     pub(in super::super) fn new(src: &'a [u8], is_le: bool) -> ByteStream<'a> {
[INFO] [stderr]    |                                                                          ++++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]    --> src/maker/decode_utility/ljpeg/mod.rs:132:22
[INFO] [stderr]     |
[INFO] [stderr] 132 |     pub fn new(src: &'a [u8]) -> Result<LjpegDecompressor, DecodingError> {
[INFO] [stderr]     |                      ^^                 ----------------- the lifetime gets resolved as `'a`
[INFO] [stderr]     |                      |
[INFO] [stderr]     |                      this lifetime flows to the output
[INFO] [stderr]     |
[INFO] [stderr] help: one option is to consistently use `'a`
[INFO] [stderr]     |
[INFO] [stderr] 132 |     pub fn new(src: &'a [u8]) -> Result<LjpegDecompressor<'a>, DecodingError> {
[INFO] [stderr]     |                                                          ++++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]    --> src/maker/decode_utility/ljpeg/mod.rs:138:15
[INFO] [stderr]     |
[INFO] [stderr] 138 |         src: &'a [u8],
[INFO] [stderr]     |               ^^ this lifetime flows to the output
[INFO] [stderr] ...
[INFO] [stderr] 141 |     ) -> Result<LjpegDecompressor, String> {
[INFO] [stderr]     |                 ----------------- the lifetime gets resolved as `'a`
[INFO] [stderr]     |
[INFO] [stderr] help: one option is to consistently use `'a`
[INFO] [stderr]     |
[INFO] [stderr] 141 |     ) -> Result<LjpegDecompressor<'a>, String> {
[INFO] [stderr]     |                                  ++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused return value of `CString::from_raw` that must be used
[INFO] [stderr]   --> src/lib_c.rs:11:14
[INFO] [stderr]    |
[INFO] [stderr] 11 |     unsafe { CString::from_raw(ptr) };
[INFO] [stderr]    |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: call `drop(from_raw(ptr))` if you intend to drop the `CString`
[INFO] [stderr]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 11 |     unsafe { let _ = CString::from_raw(ptr); };
[INFO] [stderr]    |              +++++++                       +
[INFO] [stderr] 
[INFO] [stderr] warning: `quickraw` (lib) generated 37 warnings (run `cargo fix --lib -p quickraw` to apply 1 suggestion)
[INFO] [stderr] warning: `quickraw` (lib test) generated 37 warnings (37 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.11s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/quickraw-1bda2e158dca43b1)
[INFO] [stderr]    Doc-tests quickraw
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr] warning: unnecessary parentheses around index expression
[INFO] [stderr]    --> src/maker/sony.rs:168:30
[INFO] [stderr]     |
[INFO] [stderr] 168 |             table[j] = table[(j - 1)] + (1 << i);
[INFO] [stderr]     |                              ^     ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 168 -             table[j] = table[(j - 1)] + (1 << i);
[INFO] [stderr] 168 +             table[j] = table[j - 1] + (1 << i);
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: 1 warning emitted
[INFO] [stderr] 
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test src/lib.rs - (line 26) - compile ... FAILED
[INFO] [stdout] test src/lib.rs - (line 18) - compile ... FAILED
[INFO] [stdout] test src/lib.rs - (line 7) - compile ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- src/lib.rs - (line 26) stdout ----
[INFO] [stdout] error[E0432]: unresolved import `quickraw::Export`
[INFO] [stdout]  --> src/lib.rs:28:56
[INFO] [stdout]   |
[INFO] [stdout] 5 | use quickraw::{data, DemosaicingMethod, Input, Output, Export, OutputType};
[INFO] [stdout]   |                                                        ^^^^^^
[INFO] [stdout]   |                                                        |
[INFO] [stdout]   |                                                        no `Export` in the root
[INFO] [stdout]   |                                                        help: a similar name exists in the module: `export`
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/lib.rs:42:9
[INFO] [stdout]     |
[INFO] [stdout] 16  |     Output::new(
[INFO] [stdout]     |     ----------- arguments to this function are incorrect
[INFO] [stdout] ...
[INFO] [stdout] 19  |         gamma,
[INFO] [stdout]     |         ^^^^^ expected `[f32; 2]`, found `f32`
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> /opt/rustwide/workdir/src/lib.rs:116:12
[INFO] [stdout]     |
[INFO] [stdout] 116 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0308, E0432.
[INFO] [stdout] For more information about an error, try `rustc --explain E0308`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lib.rs - (line 18) stdout ----
[INFO] [stdout] error[E0432]: unresolved import `quickraw::Export`
[INFO] [stdout]  --> src/lib.rs:20:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use quickraw::Export;
[INFO] [stdout]   |     ^^^^^^^^^^------
[INFO] [stdout]   |     |         |
[INFO] [stdout]   |     |         help: a similar name exists in the module: `export`
[INFO] [stdout]   |     no `Export` in the root
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Input`
[INFO] [stdout]  --> src/lib.rs:21:37
[INFO] [stdout]   |
[INFO] [stdout] 6 | let info = Export::export_exif_info(Input::ByFile("sample.ARW")).unwrap();
[INFO] [stdout]   |                                     ^^^^^ use of undeclared type `Input`
[INFO] [stdout]   |
[INFO] [stdout] help: consider importing this enum
[INFO] [stdout]   |
[INFO] [stdout] 2 + use quickraw::Input;
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0432, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lib.rs - (line 7) stdout ----
[INFO] [stdout] error[E0432]: unresolved import `quickraw::Export`
[INFO] [stdout]  --> src/lib.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use quickraw::Export;
[INFO] [stdout]   |     ^^^^^^^^^^------
[INFO] [stdout]   |     |         |
[INFO] [stdout]   |     |         help: a similar name exists in the module: `export`
[INFO] [stdout]   |     no `Export` in the root
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `Export` in `quickraw`
[INFO] [stdout]   --> src/lib.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | quickraw::Export::export_thumbnail_to_file("sample.ARW", "sample.thumbnail.jpg").unwrap();
[INFO] [stdout]    |           ^^^^^^ could not find `Export` in `quickraw`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0432, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     src/lib.rs - (line 18)
[INFO] [stdout]     src/lib.rs - (line 26)
[INFO] [stdout]     src/lib.rs - (line 7)
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 0 passed; 3 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.18s
[INFO] [stdout] 
[INFO] [stderr] error: doctest failed, to rerun pass `--doc`
[INFO] running `Command { std: "docker" "inspect" "aa553e82abdb29149ba13ae4946bbd57430b4f84afa1a5c02061c5ae13e53563", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "aa553e82abdb29149ba13ae4946bbd57430b4f84afa1a5c02061c5ae13e53563", kill_on_drop: false }`
[INFO] [stdout] aa553e82abdb29149ba13ae4946bbd57430b4f84afa1a5c02061c5ae13e53563
