{"$message_type":"diagnostic","message":"this method chain can be written more clearly with `if .. else ..`","code":{"code":"clippy::obfuscated_if_else","explanation":null},"level":"error","spans":[{"file_name":"crates/ipu-codegen/src/cost.rs","byte_start":29507,"byte_end":29941,"line_start":688,"line_end":695,"column_start":36,"column_end":34,"is_primary":true,"text":[{"text":"                let result_remap = (compute_output.format.layout != output.format.layout)","highlight_start":36,"highlight_end":90},{"text":"                    .then(|| {","highlight_start":1,"highlight_end":31},{"text":"                        maximum_shard_bytes(&compute_output)","highlight_start":1,"highlight_end":61},{"text":"                            .max(maximum_shard_bytes(output))","highlight_start":1,"highlight_end":62},{"text":"                            .div_ceil(IPU21_TARGET_COSTS.exchange_bytes_per_cycle)","highlight_start":1,"highlight_end":83},{"text":"                            .saturating_add(IPU21_TARGET_COSTS.exchange_phase_cycles)","highlight_start":1,"highlight_end":86},{"text":"                    })","highlight_start":1,"highlight_end":23},{"text":"                    .unwrap_or(0);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#obfuscated_if_else","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"`-D clippy::obfuscated-if-else` implied by `-D warnings`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"to override `-D warnings` add `#[allow(clippy::obfuscated_if_else)]`","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"try","code":null,"level":"help","spans":[{"file_name":"crates/ipu-codegen/src/cost.rs","byte_start":29507,"byte_end":29941,"line_start":688,"line_end":695,"column_start":36,"column_end":34,"is_primary":true,"text":[{"text":"                let result_remap = (compute_output.format.layout != output.format.layout)","highlight_start":36,"highlight_end":90},{"text":"                    .then(|| {","highlight_start":1,"highlight_end":31},{"text":"                        maximum_shard_bytes(&compute_output)","highlight_start":1,"highlight_end":61},{"text":"                            .max(maximum_shard_bytes(output))","highlight_start":1,"highlight_end":62},{"text":"                            .div_ceil(IPU21_TARGET_COSTS.exchange_bytes_per_cycle)","highlight_start":1,"highlight_end":83},{"text":"                            .saturating_add(IPU21_TARGET_COSTS.exchange_phase_cycles)","highlight_start":1,"highlight_end":86},{"text":"                    })","highlight_start":1,"highlight_end":23},{"text":"                    .unwrap_or(0);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":"if compute_output.format.layout != output.format.layout { {\n                        maximum_shard_bytes(&compute_output)\n                            .max(maximum_shard_bytes(output))\n                            .div_ceil(IPU21_TARGET_COSTS.exchange_bytes_per_cycle)\n                            .saturating_add(IPU21_TARGET_COSTS.exchange_phase_cycles)\n                    } } else { 0 }","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror\u001b[0m\u001b[1m: this method chain can be written more clearly with `if .. else ..`\u001b[0m\n   \u001b[1m\u001b[94m--> \u001b[0mcrates/ipu-codegen/src/cost.rs:688:36\n    \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m688\u001b[0m \u001b[1m\u001b[94m|\u001b[0m                   let result_remap = (compute_output.format.layout != output.format.layout)\n    \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m ____________________________________^\u001b[0m\n\u001b[1m\u001b[94m689\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m                     .then(|| {\n\u001b[1m\u001b[94m690\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m                         maximum_shard_bytes(&compute_output)\n\u001b[1m\u001b[94m691\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m                             .max(maximum_shard_bytes(output))\n\u001b[1m\u001b[94m...\u001b[0m   \u001b[1m\u001b[91m|\u001b[0m\n\u001b[1m\u001b[94m694\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m                     })\n\u001b[1m\u001b[94m695\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m                     .unwrap_or(0);\n    \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|_________________________________^\u001b[0m\n    \u001b[1m\u001b[94m|\u001b[0m\n    \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#obfuscated_if_else\n    \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: `-D clippy::obfuscated-if-else` implied by `-D warnings`\n    \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: to override `-D warnings` add `#[allow(clippy::obfuscated_if_else)]`\n\u001b[1m\u001b[96mhelp\u001b[0m: try\n    \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m688\u001b[0m \u001b[92m~ \u001b[0m                let result_remap = \u001b[92mif compute_output.format.layout != output.format.layout { {\u001b[0m\n\u001b[1m\u001b[94m689\u001b[0m \u001b[92m+                         maximum_shard_bytes(&compute_output)\u001b[0m\n\u001b[1m\u001b[94m690\u001b[0m \u001b[92m+                             .max(maximum_shard_bytes(output))\u001b[0m\n\u001b[1m\u001b[94m691\u001b[0m \u001b[92m+                             .div_ceil(IPU21_TARGET_COSTS.exchange_bytes_per_cycle)\u001b[0m\n\u001b[1m\u001b[94m692\u001b[0m \u001b[92m+                             .saturating_add(IPU21_TARGET_COSTS.exchange_phase_cycles)\u001b[0m\n\u001b[1m\u001b[94m693\u001b[0m \u001b[92m~                     } } else { 0 }\u001b[0m;\n    \u001b[1m\u001b[94m|\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"very complex type used. Consider factoring parts into `type` definitions","code":{"code":"clippy::type_complexity","explanation":null},"level":"error","spans":[{"file_name":"crates/ipu-codegen/src/estimate.rs","byte_start":5483,"byte_end":5518,"line_start":129,"line_end":129,"column_start":60,"column_end":95,"is_primary":true,"text":[{"text":"fn layout_extents(shape: &TensorShape, layout: &Layout) -> Option<Vec<(u16, Vec<(u32, u32)>)>> {","highlight_start":60,"highlight_end":95}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#type_complexity","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"`-D clippy::type-complexity` implied by `-D warnings`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"to override `-D warnings` add `#[allow(clippy::type_complexity)]`","code":null,"level":"help","spans":[],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror\u001b[0m\u001b[1m: very complex type used. Consider factoring parts into `type` definitions\u001b[0m\n   \u001b[1m\u001b[94m--> \u001b[0mcrates/ipu-codegen/src/estimate.rs:129:60\n    \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m129\u001b[0m \u001b[1m\u001b[94m|\u001b[0m fn layout_extents(shape: &TensorShape, layout: &Layout) -> Option<Vec<(u16, Vec<(u32, u32)>)>> {\n    \u001b[1m\u001b[94m|\u001b[0m                                                            \u001b[1m\u001b[91m^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u001b[0m\n    \u001b[1m\u001b[94m|\u001b[0m\n    \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#type_complexity\n    \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: `-D clippy::type-complexity` implied by `-D warnings`\n    \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: to override `-D warnings` add `#[allow(clippy::type_complexity)]`\n\n"}
{"$message_type":"diagnostic","message":"manual implementation of `.is_multiple_of()`","code":{"code":"clippy::manual_is_multiple_of","explanation":null},"level":"error","spans":[{"file_name":"crates/ipu-codegen/src/estimate.rs","byte_start":7239,"byte_end":7255,"line_start":164,"line_end":164,"column_start":32,"column_end":48,"is_primary":true,"text":[{"text":"                    if last && end % width != 0 {","highlight_start":32,"highlight_end":48}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#manual_is_multiple_of","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"`-D clippy::manual-is-multiple-of` implied by `-D warnings`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"to override `-D warnings` add `#[allow(clippy::manual_is_multiple_of)]`","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"replace with","code":null,"level":"help","spans":[{"file_name":"crates/ipu-codegen/src/estimate.rs","byte_start":7239,"byte_end":7255,"line_start":164,"line_end":164,"column_start":32,"column_end":48,"is_primary":true,"text":[{"text":"                    if last && end % width != 0 {","highlight_start":32,"highlight_end":48}],"label":null,"suggested_replacement":"!end.is_multiple_of(width)","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror\u001b[0m\u001b[1m: manual implementation of `.is_multiple_of()`\u001b[0m\n   \u001b[1m\u001b[94m--> \u001b[0mcrates/ipu-codegen/src/estimate.rs:164:32\n    \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m164\u001b[0m \u001b[1m\u001b[94m|\u001b[0m                     if last && end % width != 0 {\n    \u001b[1m\u001b[94m|\u001b[0m                                \u001b[1m\u001b[91m^^^^^^^^^^^^^^^^\u001b[0m \u001b[1m\u001b[91mhelp: replace with: `!end.is_multiple_of(width)`\u001b[0m\n    \u001b[1m\u001b[94m|\u001b[0m\n    \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#manual_is_multiple_of\n    \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: `-D clippy::manual-is-multiple-of` implied by `-D warnings`\n    \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: to override `-D warnings` add `#[allow(clippy::manual_is_multiple_of)]`\n\n"}
{"$message_type":"diagnostic","message":"this function has too many arguments (8/7)","code":{"code":"clippy::too_many_arguments","explanation":null},"level":"error","spans":[{"file_name":"crates/ipu-codegen/src/exchange.rs","byte_start":25828,"byte_end":26036,"line_start":704,"line_end":713,"column_start":5,"column_end":6,"is_primary":true,"text":[{"text":"    fn record(","highlight_start":5,"highlight_end":15},{"text":"        &mut self,","highlight_start":1,"highlight_end":19},{"text":"        source: u16,","highlight_start":1,"highlight_end":21},{"text":"        source_address: u32,","highlight_start":1,"highlight_end":29},{"text":"        destinations: &[(u16, u32)],","highlight_start":1,"highlight_end":37},{"text":"        words: u32,","highlight_start":1,"highlight_end":20},{"text":"        start: u32,","highlight_start":1,"highlight_end":20},{"text":"        end: u32,","highlight_start":1,"highlight_end":18},{"text":"        blocking_tile: u16,","highlight_start":1,"highlight_end":28},{"text":"    ) {","highlight_start":1,"highlight_end":6}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#too_many_arguments","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"`-D clippy::too-many-arguments` implied by `-D warnings`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"to override `-D warnings` add `#[allow(clippy::too_many_arguments)]`","code":null,"level":"help","spans":[],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror\u001b[0m\u001b[1m: this function has too many arguments (8/7)\u001b[0m\n   \u001b[1m\u001b[94m--> \u001b[0mcrates/ipu-codegen/src/exchange.rs:704:5\n    \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m704\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m/\u001b[0m     fn record(\n\u001b[1m\u001b[94m705\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m         &mut self,\n\u001b[1m\u001b[94m706\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m         source: u16,\n\u001b[1m\u001b[94m707\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m         source_address: u32,\n\u001b[1m\u001b[94m...\u001b[0m   \u001b[1m\u001b[91m|\u001b[0m\n\u001b[1m\u001b[94m712\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m         blocking_tile: u16,\n\u001b[1m\u001b[94m713\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m     ) {\n    \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|_____^\u001b[0m\n    \u001b[1m\u001b[94m|\u001b[0m\n    \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#too_many_arguments\n    \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: `-D clippy::too-many-arguments` implied by `-D warnings`\n    \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: to override `-D warnings` add `#[allow(clippy::too_many_arguments)]`\n\n"}
{"$message_type":"diagnostic","message":"this `if` statement can be collapsed","code":{"code":"clippy::collapsible_if","explanation":null},"level":"error","spans":[{"file_name":"crates/ipu-codegen/src/exchange.rs","byte_start":37031,"byte_end":37242,"line_start":1003,"line_end":1007,"column_start":9,"column_end":10,"is_primary":true,"text":[{"text":"        if let [(tile, address)] = transfer.destinations.as_slice() {","highlight_start":9,"highlight_end":70},{"text":"            if receive_counts[usize::from(*tile)] == 1 {","highlight_start":1,"highlight_end":57},{"text":"                incoming_bases[usize::from(*tile)] = Some(*address);","highlight_start":1,"highlight_end":69},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#collapsible_if","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"`-D clippy::collapsible-if` implied by `-D warnings`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"to override `-D warnings` add `#[allow(clippy::collapsible_if)]`","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"collapse nested if block","code":null,"level":"help","spans":[{"file_name":"crates/ipu-codegen/src/exchange.rs","byte_start":37090,"byte_end":37092,"line_start":1003,"line_end":1003,"column_start":68,"column_end":70,"is_primary":true,"text":[{"text":"        if let [(tile, address)] = transfer.destinations.as_slice() {","highlight_start":68,"highlight_end":70}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null},{"file_name":"crates/ipu-codegen/src/exchange.rs","byte_start":37232,"byte_end":37242,"line_start":1006,"line_end":1007,"column_start":14,"column_end":10,"is_primary":true,"text":[{"text":"            }","highlight_start":14,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null},{"file_name":"crates/ipu-codegen/src/exchange.rs","byte_start":37105,"byte_end":37107,"line_start":1004,"line_end":1004,"column_start":13,"column_end":15,"is_primary":true,"text":[{"text":"            if receive_counts[usize::from(*tile)] == 1 {","highlight_start":13,"highlight_end":15}],"label":null,"suggested_replacement":"&&","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror\u001b[0m\u001b[1m: this `if` statement can be collapsed\u001b[0m\n    \u001b[1m\u001b[94m--> \u001b[0mcrates/ipu-codegen/src/exchange.rs:1003:9\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1003\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m/\u001b[0m         if let [(tile, address)] = transfer.destinations.as_slice() {\n\u001b[1m\u001b[94m1004\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m             if receive_counts[usize::from(*tile)] == 1 {\n\u001b[1m\u001b[94m1005\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m                 incoming_bases[usize::from(*tile)] = Some(*address);\n\u001b[1m\u001b[94m1006\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m             }\n\u001b[1m\u001b[94m1007\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m         }\n     \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|_________^\u001b[0m\n     \u001b[1m\u001b[94m|\u001b[0m\n     \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#collapsible_if\n     \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: `-D clippy::collapsible-if` implied by `-D warnings`\n     \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: to override `-D warnings` add `#[allow(clippy::collapsible_if)]`\n\u001b[1m\u001b[96mhelp\u001b[0m: collapse nested if block\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1003\u001b[0m \u001b[92m~ \u001b[0m        if let [(tile, address)] = transfer.destinations.as_slice()\n\u001b[1m\u001b[94m1004\u001b[0m \u001b[92m~ \u001b[0m            \u001b[92m&&\u001b[0m receive_counts[usize::from(*tile)] == 1 {\n\u001b[1m\u001b[94m1005\u001b[0m \u001b[1m\u001b[94m|\u001b[0m                 incoming_bases[usize::from(*tile)] = Some(*address);\n\u001b[1m\u001b[94m1006\u001b[0m \u001b[92m~ \u001b[0m            }\n     \u001b[1m\u001b[94m|\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"this `if` statement can be collapsed","code":{"code":"clippy::collapsible_if","explanation":null},"level":"error","spans":[{"file_name":"crates/ipu-codegen/src/exchange.rs","byte_start":45029,"byte_end":46594,"line_start":1209,"line_end":1248,"column_start":5,"column_end":6,"is_primary":true,"text":[{"text":"    if search_options.exact_row_window {","highlight_start":5,"highlight_end":41},{"text":"        if let Some(candidate) = exact_row_state_window_order(","highlight_start":1,"highlight_end":63},{"text":"            topology,","highlight_start":1,"highlight_end":22},{"text":"            pending,","highlight_start":1,"highlight_end":21},{"text":"            incoming_bases,","highlight_start":1,"highlight_end":28},{"text":"            receive_counts,","highlight_start":1,"highlight_end":28},{"text":"            tile_count,","highlight_start":1,"highlight_end":24},{"text":"            &schedule,","highlight_start":1,"highlight_end":23},{"text":"        )? {","highlight_start":1,"highlight_end":13},{"text":"            let exact_schedule = materialize_schedule_order(","highlight_start":1,"highlight_end":61},{"text":"                topology,","highlight_start":1,"highlight_end":26},{"text":"                pending,","highlight_start":1,"highlight_end":25},{"text":"                incoming_bases,","highlight_start":1,"highlight_end":32},{"text":"                receive_counts,","highlight_start":1,"highlight_end":32},{"text":"                tile_count,","highlight_start":1,"highlight_end":28},{"text":"                &candidate.order,","highlight_start":1,"highlight_end":34},{"text":"            )?;","highlight_start":1,"highlight_end":16},{"text":"            if pending.len() > 1_000 {","highlight_start":1,"highlight_end":39},{"text":"                eprintln!(","highlight_start":1,"highlight_end":27},{"text":"                    \"exchange exact-row-window candidate: transfers={} frontier={}/{} window={}..{} beam={} alternatives={} prefixHorizon={} beamScores={:?} preview={:?} incumbent={:?} candidate={:?}\",","highlight_start":1,"highlight_end":202},{"text":"                    pending.len(),","highlight_start":1,"highlight_end":35},{"text":"                    candidate.horizon_frontier,","highlight_start":1,"highlight_end":48},{"text":"                    candidate.frontier_target,","highlight_start":1,"highlight_end":47},{"text":"                    candidate.begin,","highlight_start":1,"highlight_end":37},{"text":"                    candidate.end,","highlight_start":1,"highlight_end":35},{"text":"                    candidate.beam_width,","highlight_start":1,"highlight_end":42},{"text":"                    candidate.evaluated_alternatives,","highlight_start":1,"highlight_end":54},{"text":"                    candidate.prefix_horizon,","highlight_start":1,"highlight_end":46},{"text":"                    candidate.beam_scores,","highlight_start":1,"highlight_end":43},{"text":"                    candidate.predicted_score,","highlight_start":1,"highlight_end":47},{"text":"                    schedule_plateau_score(&schedule),","highlight_start":1,"highlight_end":55},{"text":"                    schedule_plateau_score(&exact_schedule),","highlight_start":1,"highlight_end":61},{"text":"                );","highlight_start":1,"highlight_end":19},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"            if schedule_score(&exact_schedule) < schedule_score(&schedule) {","highlight_start":1,"highlight_end":77},{"text":"                schedule = exact_schedule;","highlight_start":1,"highlight_end":43},{"text":"                selected_kind = \"exact-row-window\";","highlight_start":1,"highlight_end":52},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10},{"text":"    }","highlight_start":1,"highlight_end":6}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#collapsible_if","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"collapse nested if block","code":null,"level":"help","spans":[{"file_name":"crates/ipu-codegen/src/exchange.rs","byte_start":45063,"byte_end":45065,"line_start":1209,"line_end":1209,"column_start":39,"column_end":41,"is_primary":true,"text":[{"text":"    if search_options.exact_row_window {","highlight_start":39,"highlight_end":41}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null},{"file_name":"crates/ipu-codegen/src/exchange.rs","byte_start":46588,"byte_end":46594,"line_start":1247,"line_end":1248,"column_start":10,"column_end":6,"is_primary":true,"text":[{"text":"        }","highlight_start":10,"highlight_end":10},{"text":"    }","highlight_start":1,"highlight_end":6}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null},{"file_name":"crates/ipu-codegen/src/exchange.rs","byte_start":45074,"byte_end":45076,"line_start":1210,"line_end":1210,"column_start":9,"column_end":11,"is_primary":true,"text":[{"text":"        if let Some(candidate) = exact_row_state_window_order(","highlight_start":9,"highlight_end":11}],"label":null,"suggested_replacement":"&&","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror\u001b[0m\u001b[1m: this `if` statement can be collapsed\u001b[0m\n    \u001b[1m\u001b[94m--> \u001b[0mcrates/ipu-codegen/src/exchange.rs:1209:5\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1209\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m/\u001b[0m     if search_options.exact_row_window {\n\u001b[1m\u001b[94m1210\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m         if let Some(candidate) = exact_row_state_window_order(\n\u001b[1m\u001b[94m1211\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m             topology,\n\u001b[1m\u001b[94m1212\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m             pending,\n\u001b[1m\u001b[94m...\u001b[0m    \u001b[1m\u001b[91m|\u001b[0m\n\u001b[1m\u001b[94m1248\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m     }\n     \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|_____^\u001b[0m\n     \u001b[1m\u001b[94m|\u001b[0m\n     \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#collapsible_if\n\u001b[1m\u001b[96mhelp\u001b[0m: collapse nested if block\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1209\u001b[0m \u001b[92m~ \u001b[0m    if search_options.exact_row_window\n\u001b[1m\u001b[94m1210\u001b[0m \u001b[92m~ \u001b[0m        \u001b[92m&&\u001b[0m let Some(candidate) = exact_row_state_window_order(\n\u001b[1m\u001b[94m1211\u001b[0m \u001b[1m\u001b[94m|\u001b[0m             topology,\n \u001b[1m\u001b[94m...\u001b[0m\n\u001b[1m\u001b[94m1246\u001b[0m \u001b[1m\u001b[94m|\u001b[0m             }\n\u001b[1m\u001b[94m1247\u001b[0m \u001b[92m~ \u001b[0m        }\n     \u001b[1m\u001b[94m|\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"this function has too many arguments (8/7)","code":{"code":"clippy::too_many_arguments","explanation":null},"level":"error","spans":[{"file_name":"crates/ipu-codegen/src/exchange.rs","byte_start":82429,"byte_end":82734,"line_start":2192,"line_end":2201,"column_start":5,"column_end":44,"is_primary":true,"text":[{"text":"    fn append(","highlight_start":5,"highlight_end":15},{"text":"        &mut self,","highlight_start":1,"highlight_end":19},{"text":"        topology: &Topology,","highlight_start":1,"highlight_end":29},{"text":"        pending: &[PendingTransfer],","highlight_start":1,"highlight_end":37},{"text":"        incoming_bases: &[u32],","highlight_start":1,"highlight_end":32},{"text":"        receive_counts: &[usize],","highlight_start":1,"highlight_end":34},{"text":"        index: usize,","highlight_start":1,"highlight_end":22},{"text":"        dependency_ready: u32,","highlight_start":1,"highlight_end":31},{"text":"        last_transfer: &mut [TilePredecessor],","highlight_start":1,"highlight_end":47},{"text":"    ) -> Result<u32, ExchangeLoweringError> {","highlight_start":1,"highlight_end":44}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#too_many_arguments","code":null,"level":"help","spans":[],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror\u001b[0m\u001b[1m: this function has too many arguments (8/7)\u001b[0m\n    \u001b[1m\u001b[94m--> \u001b[0mcrates/ipu-codegen/src/exchange.rs:2192:5\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m2192\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m/\u001b[0m     fn append(\n\u001b[1m\u001b[94m2193\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m         &mut self,\n\u001b[1m\u001b[94m2194\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m         topology: &Topology,\n\u001b[1m\u001b[94m2195\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m         pending: &[PendingTransfer],\n\u001b[1m\u001b[94m...\u001b[0m    \u001b[1m\u001b[91m|\u001b[0m\n\u001b[1m\u001b[94m2200\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m         last_transfer: &mut [TilePredecessor],\n\u001b[1m\u001b[94m2201\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m     ) -> Result<u32, ExchangeLoweringError> {\n     \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|___________________________________________^\u001b[0m\n     \u001b[1m\u001b[94m|\u001b[0m\n     \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#too_many_arguments\n\n"}
{"$message_type":"diagnostic","message":"the loop variable `index` is used to index `indegrees`","code":{"code":"clippy::needless_range_loop","explanation":null},"level":"error","spans":[{"file_name":"crates/ipu-codegen/src/exchange.rs","byte_start":136343,"byte_end":136359,"line_start":3706,"line_end":3706,"column_start":18,"column_end":34,"is_primary":true,"text":[{"text":"    for index in 0..pending.len() {","highlight_start":18,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#needless_range_loop","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"`-D clippy::needless-range-loop` implied by `-D warnings`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"to override `-D warnings` add `#[allow(clippy::needless_range_loop)]`","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"consider using an iterator and enumerate()","code":null,"level":"help","spans":[{"file_name":"crates/ipu-codegen/src/exchange.rs","byte_start":136334,"byte_end":136339,"line_start":3706,"line_end":3706,"column_start":9,"column_end":14,"is_primary":true,"text":[{"text":"    for index in 0..pending.len() {","highlight_start":9,"highlight_end":14}],"label":null,"suggested_replacement":"(index, <item>)","suggestion_applicability":"HasPlaceholders","expansion":null},{"file_name":"crates/ipu-codegen/src/exchange.rs","byte_start":136343,"byte_end":136359,"line_start":3706,"line_end":3706,"column_start":18,"column_end":34,"is_primary":true,"text":[{"text":"    for index in 0..pending.len() {","highlight_start":18,"highlight_end":34}],"label":null,"suggested_replacement":"indegrees.iter().enumerate().take(pending.len())","suggestion_applicability":"HasPlaceholders","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror\u001b[0m\u001b[1m: the loop variable `index` is used to index `indegrees`\u001b[0m\n    \u001b[1m\u001b[94m--> \u001b[0mcrates/ipu-codegen/src/exchange.rs:3706:18\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m3706\u001b[0m \u001b[1m\u001b[94m|\u001b[0m     for index in 0..pending.len() {\n     \u001b[1m\u001b[94m|\u001b[0m                  \u001b[1m\u001b[91m^^^^^^^^^^^^^^^^\u001b[0m\n     \u001b[1m\u001b[94m|\u001b[0m\n     \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#needless_range_loop\n     \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: `-D clippy::needless-range-loop` implied by `-D warnings`\n     \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: to override `-D warnings` add `#[allow(clippy::needless_range_loop)]`\n\u001b[1m\u001b[96mhelp\u001b[0m: consider using an iterator and enumerate()\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m3706\u001b[0m \u001b[91m- \u001b[0m    for \u001b[91mindex\u001b[0m in \u001b[91m0..pending.len()\u001b[0m {\n\u001b[1m\u001b[94m3706\u001b[0m \u001b[92m+ \u001b[0m    for \u001b[92m(index, <item>)\u001b[0m in \u001b[92mindegrees.iter().enumerate().take(pending.len())\u001b[0m {\n     \u001b[1m\u001b[94m|\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"this `if` statement can be collapsed","code":{"code":"clippy::collapsible_if","explanation":null},"level":"error","spans":[{"file_name":"crates/ipu-codegen/src/exchange.rs","byte_start":180253,"byte_end":180454,"line_start":4953,"line_end":4957,"column_start":9,"column_end":10,"is_primary":true,"text":[{"text":"        if !(role == BottleneckRole::Send && transfer.source == critical_tile) {","highlight_start":9,"highlight_end":81},{"text":"            if let Some(previous) = last_send[source] {","highlight_start":1,"highlight_end":56},{"text":"                edges.insert((previous, index));","highlight_start":1,"highlight_end":49},{"text":"            }","highlight_start":1,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#collapsible_if","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"collapse nested if block","code":null,"level":"help","spans":[{"file_name":"crates/ipu-codegen/src/exchange.rs","byte_start":180323,"byte_end":180325,"line_start":4953,"line_end":4953,"column_start":79,"column_end":81,"is_primary":true,"text":[{"text":"        if !(role == BottleneckRole::Send && transfer.source == critical_tile) {","highlight_start":79,"highlight_end":81}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null},{"file_name":"crates/ipu-codegen/src/exchange.rs","byte_start":180444,"byte_end":180454,"line_start":4956,"line_end":4957,"column_start":14,"column_end":10,"is_primary":true,"text":[{"text":"            }","highlight_start":14,"highlight_end":14},{"text":"        }","highlight_start":1,"highlight_end":10}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null},{"file_name":"crates/ipu-codegen/src/exchange.rs","byte_start":180338,"byte_end":180340,"line_start":4954,"line_end":4954,"column_start":13,"column_end":15,"is_primary":true,"text":[{"text":"            if let Some(previous) = last_send[source] {","highlight_start":13,"highlight_end":15}],"label":null,"suggested_replacement":"&&","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror\u001b[0m\u001b[1m: this `if` statement can be collapsed\u001b[0m\n    \u001b[1m\u001b[94m--> \u001b[0mcrates/ipu-codegen/src/exchange.rs:4953:9\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m4953\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m/\u001b[0m         if !(role == BottleneckRole::Send && transfer.source == critical_tile) {\n\u001b[1m\u001b[94m4954\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m             if let Some(previous) = last_send[source] {\n\u001b[1m\u001b[94m4955\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m                 edges.insert((previous, index));\n\u001b[1m\u001b[94m4956\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m             }\n\u001b[1m\u001b[94m4957\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m         }\n     \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|_________^\u001b[0m\n     \u001b[1m\u001b[94m|\u001b[0m\n     \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#collapsible_if\n\u001b[1m\u001b[96mhelp\u001b[0m: collapse nested if block\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m4953\u001b[0m \u001b[92m~ \u001b[0m        if !(role == BottleneckRole::Send && transfer.source == critical_tile)\n\u001b[1m\u001b[94m4954\u001b[0m \u001b[92m~ \u001b[0m            \u001b[92m&&\u001b[0m let Some(previous) = last_send[source] {\n\u001b[1m\u001b[94m4955\u001b[0m \u001b[1m\u001b[94m|\u001b[0m                 edges.insert((previous, index));\n\u001b[1m\u001b[94m4956\u001b[0m \u001b[92m~ \u001b[0m            }\n     \u001b[1m\u001b[94m|\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"this `if` statement can be collapsed","code":{"code":"clippy::collapsible_if","explanation":null},"level":"error","spans":[{"file_name":"crates/ipu-codegen/src/exchange.rs","byte_start":180608,"byte_end":180825,"line_start":4961,"line_end":4965,"column_start":13,"column_end":14,"is_primary":true,"text":[{"text":"            if !(role == BottleneckRole::Receive && tile == critical_tile) {","highlight_start":13,"highlight_end":77},{"text":"                if let Some(previous) = last_receive[destination] {","highlight_start":1,"highlight_end":68},{"text":"                    edges.insert((previous, index));","highlight_start":1,"highlight_end":53},{"text":"                }","highlight_start":1,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#collapsible_if","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"collapse nested if block","code":null,"level":"help","spans":[{"file_name":"crates/ipu-codegen/src/exchange.rs","byte_start":180670,"byte_end":180672,"line_start":4961,"line_end":4961,"column_start":75,"column_end":77,"is_primary":true,"text":[{"text":"            if !(role == BottleneckRole::Receive && tile == critical_tile) {","highlight_start":75,"highlight_end":77}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null},{"file_name":"crates/ipu-codegen/src/exchange.rs","byte_start":180811,"byte_end":180825,"line_start":4964,"line_end":4965,"column_start":18,"column_end":14,"is_primary":true,"text":[{"text":"                }","highlight_start":18,"highlight_end":18},{"text":"            }","highlight_start":1,"highlight_end":14}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null},{"file_name":"crates/ipu-codegen/src/exchange.rs","byte_start":180689,"byte_end":180691,"line_start":4962,"line_end":4962,"column_start":17,"column_end":19,"is_primary":true,"text":[{"text":"                if let Some(previous) = last_receive[destination] {","highlight_start":17,"highlight_end":19}],"label":null,"suggested_replacement":"&&","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror\u001b[0m\u001b[1m: this `if` statement can be collapsed\u001b[0m\n    \u001b[1m\u001b[94m--> \u001b[0mcrates/ipu-codegen/src/exchange.rs:4961:13\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m4961\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m/\u001b[0m             if !(role == BottleneckRole::Receive && tile == critical_tile) {\n\u001b[1m\u001b[94m4962\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m                 if let Some(previous) = last_receive[destination] {\n\u001b[1m\u001b[94m4963\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m                     edges.insert((previous, index));\n\u001b[1m\u001b[94m4964\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m                 }\n\u001b[1m\u001b[94m4965\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m             }\n     \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|_____________^\u001b[0m\n     \u001b[1m\u001b[94m|\u001b[0m\n     \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#collapsible_if\n\u001b[1m\u001b[96mhelp\u001b[0m: collapse nested if block\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m4961\u001b[0m \u001b[92m~ \u001b[0m            if !(role == BottleneckRole::Receive && tile == critical_tile)\n\u001b[1m\u001b[94m4962\u001b[0m \u001b[92m~ \u001b[0m                \u001b[92m&&\u001b[0m let Some(previous) = last_receive[destination] {\n\u001b[1m\u001b[94m4963\u001b[0m \u001b[1m\u001b[94m|\u001b[0m                     edges.insert((previous, index));\n\u001b[1m\u001b[94m4964\u001b[0m \u001b[92m~ \u001b[0m                }\n     \u001b[1m\u001b[94m|\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"the loop variable `word` is only used to index `bottleneck_ancestors`","code":{"code":"clippy::needless_range_loop","explanation":null},"level":"error","spans":[{"file_name":"crates/ipu-codegen/src/exchange.rs","byte_start":182410,"byte_end":182422,"line_start":5007,"line_end":5007,"column_start":25,"column_end":37,"is_primary":true,"text":[{"text":"            for word in 0..bit_words {","highlight_start":25,"highlight_end":37}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#needless_range_loop","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"consider using an iterator","code":null,"level":"help","spans":[{"file_name":"crates/ipu-codegen/src/exchange.rs","byte_start":182402,"byte_end":182406,"line_start":5007,"line_end":5007,"column_start":17,"column_end":21,"is_primary":true,"text":[{"text":"            for word in 0..bit_words {","highlight_start":17,"highlight_end":21}],"label":null,"suggested_replacement":"<item>","suggestion_applicability":"HasPlaceholders","expansion":null},{"file_name":"crates/ipu-codegen/src/exchange.rs","byte_start":182410,"byte_end":182422,"line_start":5007,"line_end":5007,"column_start":25,"column_end":37,"is_primary":true,"text":[{"text":"            for word in 0..bit_words {","highlight_start":25,"highlight_end":37}],"label":null,"suggested_replacement":"bottleneck_ancestors.iter_mut().take(bit_words)","suggestion_applicability":"HasPlaceholders","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror\u001b[0m\u001b[1m: the loop variable `word` is only used to index `bottleneck_ancestors`\u001b[0m\n    \u001b[1m\u001b[94m--> \u001b[0mcrates/ipu-codegen/src/exchange.rs:5007:25\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m5007\u001b[0m \u001b[1m\u001b[94m|\u001b[0m             for word in 0..bit_words {\n     \u001b[1m\u001b[94m|\u001b[0m                         \u001b[1m\u001b[91m^^^^^^^^^^^^\u001b[0m\n     \u001b[1m\u001b[94m|\u001b[0m\n     \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#needless_range_loop\n\u001b[1m\u001b[96mhelp\u001b[0m: consider using an iterator\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m5007\u001b[0m \u001b[91m- \u001b[0m            for \u001b[91mword\u001b[0m in \u001b[91m0..bit_words\u001b[0m {\n\u001b[1m\u001b[94m5007\u001b[0m \u001b[92m+ \u001b[0m            for \u001b[92m<item>\u001b[0m in \u001b[92mbottleneck_ancestors.iter_mut().take(bit_words)\u001b[0m {\n     \u001b[1m\u001b[94m|\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"this function has too many arguments (8/7)","code":{"code":"clippy::too_many_arguments","explanation":null},"level":"error","spans":[{"file_name":"crates/ipu-codegen/src/exchange.rs","byte_start":190435,"byte_end":190698,"line_start":5228,"line_end":5237,"column_start":1,"column_end":17,"is_primary":true,"text":[{"text":"fn repair_ready(","highlight_start":1,"highlight_end":17},{"text":"    index: usize,","highlight_start":1,"highlight_end":18},{"text":"    pending: &[PendingTransfer],","highlight_start":1,"highlight_end":33},{"text":"    availability: &[TileAvailability],","highlight_start":1,"highlight_end":39},{"text":"    next_receive_address: &[Option<u32>],","highlight_start":1,"highlight_end":42},{"text":"    word_pressure: &[u64],","highlight_start":1,"highlight_end":27},{"text":"    rank: &[usize],","highlight_start":1,"highlight_end":20},{"text":"    epoch_width: usize,","highlight_start":1,"highlight_end":24},{"text":"    neighborhood: &[bool],","highlight_start":1,"highlight_end":27},{"text":") -> RepairReady {","highlight_start":1,"highlight_end":17}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#too_many_arguments","code":null,"level":"help","spans":[],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror\u001b[0m\u001b[1m: this function has too many arguments (8/7)\u001b[0m\n    \u001b[1m\u001b[94m--> \u001b[0mcrates/ipu-codegen/src/exchange.rs:5228:1\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m5228\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m/\u001b[0m fn repair_ready(\n\u001b[1m\u001b[94m5229\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m     index: usize,\n\u001b[1m\u001b[94m5230\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m     pending: &[PendingTransfer],\n\u001b[1m\u001b[94m5231\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m     availability: &[TileAvailability],\n\u001b[1m\u001b[94m...\u001b[0m    \u001b[1m\u001b[91m|\u001b[0m\n\u001b[1m\u001b[94m5236\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m     neighborhood: &[bool],\n\u001b[1m\u001b[94m5237\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m ) -> RepairReady {\n     \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|________________^\u001b[0m\n     \u001b[1m\u001b[94m|\u001b[0m\n     \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#too_many_arguments\n\n"}
{"$message_type":"diagnostic","message":"the loop variable `index` is used to index `indegrees`","code":{"code":"clippy::needless_range_loop","explanation":null},"level":"error","spans":[{"file_name":"crates/ipu-codegen/src/exchange.rs","byte_start":194174,"byte_end":194190,"line_start":5338,"line_end":5338,"column_start":18,"column_end":34,"is_primary":true,"text":[{"text":"    for index in 0..pending.len() {","highlight_start":18,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#needless_range_loop","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"consider using an iterator and enumerate()","code":null,"level":"help","spans":[{"file_name":"crates/ipu-codegen/src/exchange.rs","byte_start":194165,"byte_end":194170,"line_start":5338,"line_end":5338,"column_start":9,"column_end":14,"is_primary":true,"text":[{"text":"    for index in 0..pending.len() {","highlight_start":9,"highlight_end":14}],"label":null,"suggested_replacement":"(index, <item>)","suggestion_applicability":"HasPlaceholders","expansion":null},{"file_name":"crates/ipu-codegen/src/exchange.rs","byte_start":194174,"byte_end":194190,"line_start":5338,"line_end":5338,"column_start":18,"column_end":34,"is_primary":true,"text":[{"text":"    for index in 0..pending.len() {","highlight_start":18,"highlight_end":34}],"label":null,"suggested_replacement":"indegrees.iter().enumerate().take(pending.len())","suggestion_applicability":"HasPlaceholders","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror\u001b[0m\u001b[1m: the loop variable `index` is used to index `indegrees`\u001b[0m\n    \u001b[1m\u001b[94m--> \u001b[0mcrates/ipu-codegen/src/exchange.rs:5338:18\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m5338\u001b[0m \u001b[1m\u001b[94m|\u001b[0m     for index in 0..pending.len() {\n     \u001b[1m\u001b[94m|\u001b[0m                  \u001b[1m\u001b[91m^^^^^^^^^^^^^^^^\u001b[0m\n     \u001b[1m\u001b[94m|\u001b[0m\n     \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#needless_range_loop\n\u001b[1m\u001b[96mhelp\u001b[0m: consider using an iterator and enumerate()\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m5338\u001b[0m \u001b[91m- \u001b[0m    for \u001b[91mindex\u001b[0m in \u001b[91m0..pending.len()\u001b[0m {\n\u001b[1m\u001b[94m5338\u001b[0m \u001b[92m+ \u001b[0m    for \u001b[92m(index, <item>)\u001b[0m in \u001b[92mindegrees.iter().enumerate().take(pending.len())\u001b[0m {\n     \u001b[1m\u001b[94m|\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"this function has too many arguments (9/7)","code":{"code":"clippy::too_many_arguments","explanation":null},"level":"error","spans":[{"file_name":"crates/ipu-codegen/src/exchange.rs","byte_start":200201,"byte_end":200523,"line_start":5523,"line_end":5533,"column_start":1,"column_end":40,"is_primary":true,"text":[{"text":"fn memory_safe_transfer_offset(","highlight_start":1,"highlight_end":32},{"text":"    memory_accesses: &[Arc<TileMemorySchedule>],","highlight_start":1,"highlight_end":49},{"text":"    source: u16,","highlight_start":1,"highlight_end":17},{"text":"    destinations: &[(u16, u32)],","highlight_start":1,"highlight_end":33},{"text":"    source_address: u32,","highlight_start":1,"highlight_end":25},{"text":"    words: u32,","highlight_start":1,"highlight_end":16},{"text":"    payload_start: u32,","highlight_start":1,"highlight_end":24},{"text":"    payload_end: u32,","highlight_start":1,"highlight_end":22},{"text":"    receiver_intervals: &[(u32, u32)],","highlight_start":1,"highlight_end":39},{"text":"    schedule_offset: u32,","highlight_start":1,"highlight_end":26},{"text":") -> Result<u32, ExchangeLoweringError> {","highlight_start":1,"highlight_end":40}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#too_many_arguments","code":null,"level":"help","spans":[],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror\u001b[0m\u001b[1m: this function has too many arguments (9/7)\u001b[0m\n    \u001b[1m\u001b[94m--> \u001b[0mcrates/ipu-codegen/src/exchange.rs:5523:1\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m5523\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m/\u001b[0m fn memory_safe_transfer_offset(\n\u001b[1m\u001b[94m5524\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m     memory_accesses: &[Arc<TileMemorySchedule>],\n\u001b[1m\u001b[94m5525\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m     source: u16,\n\u001b[1m\u001b[94m5526\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m     destinations: &[(u16, u32)],\n\u001b[1m\u001b[94m...\u001b[0m    \u001b[1m\u001b[91m|\u001b[0m\n\u001b[1m\u001b[94m5532\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m     schedule_offset: u32,\n\u001b[1m\u001b[94m5533\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m ) -> Result<u32, ExchangeLoweringError> {\n     \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|_______________________________________^\u001b[0m\n     \u001b[1m\u001b[94m|\u001b[0m\n     \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#too_many_arguments\n\n"}
{"$message_type":"diagnostic","message":"this function has too many arguments (8/7)","code":{"code":"clippy::too_many_arguments","explanation":null},"level":"error","spans":[{"file_name":"crates/ipu-codegen/src/kernel.rs","byte_start":4751,"byte_end":4964,"line_start":151,"line_end":160,"column_start":1,"column_end":12,"is_primary":true,"text":[{"text":"fn specialized_gemm_symbol(","highlight_start":1,"highlight_end":28},{"text":"    prefix: &str,","highlight_start":1,"highlight_end":18},{"text":"    mode: GemmKernelMode,","highlight_start":1,"highlight_end":26},{"text":"    weight_suffix: &str,","highlight_start":1,"highlight_end":25},{"text":"    inner_block: u32,","highlight_start":1,"highlight_end":22},{"text":"    output_columns: u32,","highlight_start":1,"highlight_end":25},{"text":"    size: &str,","highlight_start":1,"highlight_end":16},{"text":"    small_rows: u32,","highlight_start":1,"highlight_end":21},{"text":"    large_rows: u32,","highlight_start":1,"highlight_end":21},{"text":") -> String {","highlight_start":1,"highlight_end":12}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#too_many_arguments","code":null,"level":"help","spans":[],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror\u001b[0m\u001b[1m: this function has too many arguments (8/7)\u001b[0m\n   \u001b[1m\u001b[94m--> \u001b[0mcrates/ipu-codegen/src/kernel.rs:151:1\n    \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m151\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m/\u001b[0m fn specialized_gemm_symbol(\n\u001b[1m\u001b[94m152\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m     prefix: &str,\n\u001b[1m\u001b[94m153\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m     mode: GemmKernelMode,\n\u001b[1m\u001b[94m154\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m     weight_suffix: &str,\n\u001b[1m\u001b[94m...\u001b[0m   \u001b[1m\u001b[91m|\u001b[0m\n\u001b[1m\u001b[94m159\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m     large_rows: u32,\n\u001b[1m\u001b[94m160\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m ) -> String {\n    \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|___________^\u001b[0m\n    \u001b[1m\u001b[94m|\u001b[0m\n    \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#too_many_arguments\n\n"}
{"$message_type":"diagnostic","message":"this function has too many arguments (8/7)","code":{"code":"clippy::too_many_arguments","explanation":null},"level":"error","spans":[{"file_name":"crates/ipu-codegen/src/kernel.rs","byte_start":27735,"byte_end":28148,"line_start":687,"line_end":696,"column_start":1,"column_end":32,"is_primary":true,"text":[{"text":"fn collect_kernels(","highlight_start":1,"highlight_end":20},{"text":"    program: &LowProgram,","highlight_start":1,"highlight_end":26},{"text":"    tile: &TileWorkList,","highlight_start":1,"highlight_end":25},{"text":"    rows: &mut BTreeMap<(Precision, GemmWeightLoad, u32, u32), BTreeSet<u32>>,","highlight_start":1,"highlight_end":79},{"text":"    gelu: &mut bool,","highlight_start":1,"highlight_end":21},{"text":"    reduction_add: &mut bool,","highlight_start":1,"highlight_end":30},{"text":"    rearrangements: &mut BTreeSet<(RearrangeTarget, u32, u32, u32, u32)>,","highlight_start":1,"highlight_end":74},{"text":"    attention: &mut BTreeSet<AttentionKernelShape>,","highlight_start":1,"highlight_end":52},{"text":"    attention_stages: &mut Vec<(TileKernelSpec, u32)>,","highlight_start":1,"highlight_end":55},{"text":") -> Result<(), KernelAbiError> {","highlight_start":1,"highlight_end":32}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#too_many_arguments","code":null,"level":"help","spans":[],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror\u001b[0m\u001b[1m: this function has too many arguments (8/7)\u001b[0m\n   \u001b[1m\u001b[94m--> \u001b[0mcrates/ipu-codegen/src/kernel.rs:687:1\n    \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m687\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m/\u001b[0m fn collect_kernels(\n\u001b[1m\u001b[94m688\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m     program: &LowProgram,\n\u001b[1m\u001b[94m689\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m     tile: &TileWorkList,\n\u001b[1m\u001b[94m690\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m     rows: &mut BTreeMap<(Precision, GemmWeightLoad, u32, u32), BTreeSet<u32>>,\n\u001b[1m\u001b[94m...\u001b[0m   \u001b[1m\u001b[91m|\u001b[0m\n\u001b[1m\u001b[94m695\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m     attention_stages: &mut Vec<(TileKernelSpec, u32)>,\n\u001b[1m\u001b[94m696\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m ) -> Result<(), KernelAbiError> {\n    \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|_______________________________^\u001b[0m\n    \u001b[1m\u001b[94m|\u001b[0m\n    \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#too_many_arguments\n\n"}
{"$message_type":"diagnostic","message":"this function has too many arguments (8/7)","code":{"code":"clippy::too_many_arguments","explanation":null},"level":"error","spans":[{"file_name":"crates/ipu-codegen/src/low.rs","byte_start":22771,"byte_end":23058,"line_start":701,"line_end":710,"column_start":5,"column_end":47,"is_primary":true,"text":[{"text":"    fn matrix_shards_for_block<'a>(","highlight_start":5,"highlight_end":36},{"text":"        &'a self,","highlight_start":1,"highlight_end":18},{"text":"        shards: &'a [LowShardId],","highlight_start":1,"highlight_end":34},{"text":"        column_axis: usize,","highlight_start":1,"highlight_end":28},{"text":"        inner_axis: usize,","highlight_start":1,"highlight_end":27},{"text":"        column_start: u32,","highlight_start":1,"highlight_end":27},{"text":"        column_end: u32,","highlight_start":1,"highlight_end":25},{"text":"        inner_start: u32,","highlight_start":1,"highlight_end":26},{"text":"        inner_end: u32,","highlight_start":1,"highlight_end":24},{"text":"    ) -> impl Iterator<Item = LowShardId> + 'a {","highlight_start":1,"highlight_end":47}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#too_many_arguments","code":null,"level":"help","spans":[],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror\u001b[0m\u001b[1m: this function has too many arguments (8/7)\u001b[0m\n   \u001b[1m\u001b[94m--> \u001b[0mcrates/ipu-codegen/src/low.rs:701:5\n    \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m701\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m/\u001b[0m     fn matrix_shards_for_block<'a>(\n\u001b[1m\u001b[94m702\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m         &'a self,\n\u001b[1m\u001b[94m703\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m         shards: &'a [LowShardId],\n\u001b[1m\u001b[94m704\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m         column_axis: usize,\n\u001b[1m\u001b[94m...\u001b[0m   \u001b[1m\u001b[91m|\u001b[0m\n\u001b[1m\u001b[94m709\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m         inner_end: u32,\n\u001b[1m\u001b[94m710\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m     ) -> impl Iterator<Item = LowShardId> + 'a {\n    \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|______________________________________________^\u001b[0m\n    \u001b[1m\u001b[94m|\u001b[0m\n    \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#too_many_arguments\n\n"}
{"$message_type":"diagnostic","message":"using `clone` on type `WorkProvenance` which implements the `Copy` trait","code":{"code":"clippy::clone_on_copy","explanation":null},"level":"error","spans":[{"file_name":"crates/ipu-codegen/src/low.rs","byte_start":46204,"byte_end":46222,"line_start":1304,"line_end":1304,"column_start":29,"column_end":47,"is_primary":true,"text":[{"text":"                            provenance.clone(),","highlight_start":29,"highlight_end":47}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#clone_on_copy","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"`-D clippy::clone-on-copy` implied by `-D warnings`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"to override `-D warnings` add `#[allow(clippy::clone_on_copy)]`","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"try removing the `clone` call","code":null,"level":"help","spans":[{"file_name":"crates/ipu-codegen/src/low.rs","byte_start":46204,"byte_end":46222,"line_start":1304,"line_end":1304,"column_start":29,"column_end":47,"is_primary":true,"text":[{"text":"                            provenance.clone(),","highlight_start":29,"highlight_end":47}],"label":null,"suggested_replacement":"provenance","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror\u001b[0m\u001b[1m: using `clone` on type `WorkProvenance` which implements the `Copy` trait\u001b[0m\n    \u001b[1m\u001b[94m--> \u001b[0mcrates/ipu-codegen/src/low.rs:1304:29\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m1304\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[94m...\u001b[0m                   provenance.clone(),\n     \u001b[1m\u001b[94m|\u001b[0m                       \u001b[1m\u001b[91m^^^^^^^^^^^^^^^^^^\u001b[0m \u001b[1m\u001b[91mhelp: try removing the `clone` call: `provenance`\u001b[0m\n     \u001b[1m\u001b[94m|\u001b[0m\n     \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#clone_on_copy\n     \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: `-D clippy::clone-on-copy` implied by `-D warnings`\n     \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: to override `-D warnings` add `#[allow(clippy::clone_on_copy)]`\n\n"}
{"$message_type":"diagnostic","message":"use of `or_insert_with` to construct default value","code":{"code":"clippy::unwrap_or_default","explanation":null},"level":"error","spans":[{"file_name":"crates/ipu-codegen/src/low.rs","byte_start":80634,"byte_end":80658,"line_start":2151,"line_end":2151,"column_start":26,"column_end":50,"is_primary":true,"text":[{"text":"                        .or_insert_with(Vec::new)","highlight_start":26,"highlight_end":50}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#unwrap_or_default","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"`-D clippy::unwrap-or-default` implied by `-D warnings`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"to override `-D warnings` add `#[allow(clippy::unwrap_or_default)]`","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"try","code":null,"level":"help","spans":[{"file_name":"crates/ipu-codegen/src/low.rs","byte_start":80634,"byte_end":80658,"line_start":2151,"line_end":2151,"column_start":26,"column_end":50,"is_primary":true,"text":[{"text":"                        .or_insert_with(Vec::new)","highlight_start":26,"highlight_end":50}],"label":null,"suggested_replacement":"or_default()","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror\u001b[0m\u001b[1m: use of `or_insert_with` to construct default value\u001b[0m\n    \u001b[1m\u001b[94m--> \u001b[0mcrates/ipu-codegen/src/low.rs:2151:26\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m2151\u001b[0m \u001b[1m\u001b[94m|\u001b[0m                         .or_insert_with(Vec::new)\n     \u001b[1m\u001b[94m|\u001b[0m                          \u001b[1m\u001b[91m^^^^^^^^^^^^^^^^^^^^^^^^\u001b[0m \u001b[1m\u001b[91mhelp: try: `or_default()`\u001b[0m\n     \u001b[1m\u001b[94m|\u001b[0m\n     \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#unwrap_or_default\n     \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: `-D clippy::unwrap-or-default` implied by `-D warnings`\n     \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: to override `-D warnings` add `#[allow(clippy::unwrap_or_default)]`\n\n"}
{"$message_type":"diagnostic","message":"it looks like you're manually copying between slices","code":{"code":"clippy::manual_memcpy","explanation":null},"level":"error","spans":[{"file_name":"crates/ipu-codegen/src/low.rs","byte_start":121049,"byte_end":121183,"line_start":3103,"line_end":3105,"column_start":21,"column_end":22,"is_primary":true,"text":[{"text":"                    for axis in 0..output_rank.saturating_sub(2) {","highlight_start":21,"highlight_end":67},{"text":"                        extents[axis] = left_shard.extents[axis];","highlight_start":1,"highlight_end":66},{"text":"                    }","highlight_start":1,"highlight_end":22}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"crates/ipu-codegen/src/low.rs","byte_start":121049,"byte_end":121183,"line_start":3103,"line_end":3105,"column_start":21,"column_end":22,"is_primary":false,"text":[{"text":"                    for axis in 0..output_rank.saturating_sub(2) {","highlight_start":21,"highlight_end":67},{"text":"                        extents[axis] = left_shard.extents[axis];","highlight_start":1,"highlight_end":66},{"text":"                    }","highlight_start":1,"highlight_end":22}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null},"macro_decl_name":"desugaring of `for` loop","def_site_span":{"file_name":"crates/ipu-codegen/src/lib.rs","byte_start":0,"byte_end":0,"line_start":1,"line_end":1,"column_start":1,"column_end":1,"is_primary":false,"text":[],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}}],"children":[{"message":"for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#manual_memcpy","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"`-D clippy::manual-memcpy` implied by `-D warnings`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"to override `-D warnings` add `#[allow(clippy::manual_memcpy)]`","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"try replacing the loop by","code":null,"level":"help","spans":[{"file_name":"crates/ipu-codegen/src/low.rs","byte_start":121049,"byte_end":121183,"line_start":3103,"line_end":3105,"column_start":21,"column_end":22,"is_primary":true,"text":[{"text":"                    for axis in 0..output_rank.saturating_sub(2) {","highlight_start":21,"highlight_end":67},{"text":"                        extents[axis] = left_shard.extents[axis];","highlight_start":1,"highlight_end":66},{"text":"                    }","highlight_start":1,"highlight_end":22}],"label":null,"suggested_replacement":"extents[..output_rank.saturating_sub(2)].copy_from_slice(&left_shard.extents[..output_rank.saturating_sub(2)]);","suggestion_applicability":"Unspecified","expansion":{"span":{"file_name":"crates/ipu-codegen/src/low.rs","byte_start":121049,"byte_end":121183,"line_start":3103,"line_end":3105,"column_start":21,"column_end":22,"is_primary":false,"text":[{"text":"                    for axis in 0..output_rank.saturating_sub(2) {","highlight_start":21,"highlight_end":67},{"text":"                        extents[axis] = left_shard.extents[axis];","highlight_start":1,"highlight_end":66},{"text":"                    }","highlight_start":1,"highlight_end":22}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null},"macro_decl_name":"desugaring of `for` loop","def_site_span":{"file_name":"crates/ipu-codegen/src/lib.rs","byte_start":0,"byte_end":0,"line_start":1,"line_end":1,"column_start":1,"column_end":1,"is_primary":false,"text":[],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror\u001b[0m\u001b[1m: it looks like you're manually copying between slices\u001b[0m\n    \u001b[1m\u001b[94m--> \u001b[0mcrates/ipu-codegen/src/low.rs:3103:21\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m3103\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m/\u001b[0m                     for axis in 0..output_rank.saturating_sub(2) {\n\u001b[1m\u001b[94m3104\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m                         extents[axis] = left_shard.extents[axis];\n\u001b[1m\u001b[94m3105\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m                     }\n     \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|_____________________^\u001b[0m \u001b[1m\u001b[91mhelp: try replacing the loop by: `extents[..output_rank.saturating_sub(2)].copy_from_slice(&left_shard.extents[..output_rank.saturating_sub(2)]);`\u001b[0m\n     \u001b[1m\u001b[94m|\u001b[0m\n     \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#manual_memcpy\n     \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: `-D clippy::manual-memcpy` implied by `-D warnings`\n     \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: to override `-D warnings` add `#[allow(clippy::manual_memcpy)]`\n\n"}
{"$message_type":"diagnostic","message":"using `clone` on type `ElementOrder` which implements the `Copy` trait","code":{"code":"clippy::clone_on_copy","explanation":null},"level":"error","spans":[{"file_name":"crates/ipu-codegen/src/low.rs","byte_start":123639,"byte_end":123684,"line_start":3151,"line_end":3151,"column_start":46,"column_end":91,"is_primary":true,"text":[{"text":"                    let source_panel_block = right_requirement.format.layout.order.clone();","highlight_start":46,"highlight_end":91}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#clone_on_copy","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"try removing the `clone` call","code":null,"level":"help","spans":[{"file_name":"crates/ipu-codegen/src/low.rs","byte_start":123639,"byte_end":123684,"line_start":3151,"line_end":3151,"column_start":46,"column_end":91,"is_primary":true,"text":[{"text":"                    let source_panel_block = right_requirement.format.layout.order.clone();","highlight_start":46,"highlight_end":91}],"label":null,"suggested_replacement":"right_requirement.format.layout.order","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror\u001b[0m\u001b[1m: using `clone` on type `ElementOrder` which implements the `Copy` trait\u001b[0m\n    \u001b[1m\u001b[94m--> \u001b[0mcrates/ipu-codegen/src/low.rs:3151:46\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m3151\u001b[0m \u001b[1m\u001b[94m|\u001b[0m                     let source_panel_block = right_requirement.format.layout.order.clone();\n     \u001b[1m\u001b[94m|\u001b[0m                                              \u001b[1m\u001b[91m^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u001b[0m \u001b[1m\u001b[91mhelp: try removing the `clone` call: `right_requirement.format.layout.order`\u001b[0m\n     \u001b[1m\u001b[94m|\u001b[0m\n     \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#clone_on_copy\n\n"}
{"$message_type":"diagnostic","message":"manual implementation of `.is_multiple_of()`","code":{"code":"clippy::manual_is_multiple_of","explanation":null},"level":"error","spans":[{"file_name":"crates/ipu-codegen/src/low.rs","byte_start":188899,"byte_end":188915,"line_start":4626,"line_end":4626,"column_start":60,"column_end":76,"is_primary":true,"text":[{"text":"                let column_end = if row + 1 == last_row && end % width != 0 {","highlight_start":60,"highlight_end":76}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#manual_is_multiple_of","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"replace with","code":null,"level":"help","spans":[{"file_name":"crates/ipu-codegen/src/low.rs","byte_start":188899,"byte_end":188915,"line_start":4626,"line_end":4626,"column_start":60,"column_end":76,"is_primary":true,"text":[{"text":"                let column_end = if row + 1 == last_row && end % width != 0 {","highlight_start":60,"highlight_end":76}],"label":null,"suggested_replacement":"!end.is_multiple_of(width)","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror\u001b[0m\u001b[1m: manual implementation of `.is_multiple_of()`\u001b[0m\n    \u001b[1m\u001b[94m--> \u001b[0mcrates/ipu-codegen/src/low.rs:4626:60\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m4626\u001b[0m \u001b[1m\u001b[94m|\u001b[0m                 let column_end = if row + 1 == last_row && end % width != 0 {\n     \u001b[1m\u001b[94m|\u001b[0m                                                            \u001b[1m\u001b[91m^^^^^^^^^^^^^^^^\u001b[0m \u001b[1m\u001b[91mhelp: replace with: `!end.is_multiple_of(width)`\u001b[0m\n     \u001b[1m\u001b[94m|\u001b[0m\n     \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#manual_is_multiple_of\n\n"}
{"$message_type":"diagnostic","message":"useless conversion to the same type: `std::iter::Cloned<std::slice::Iter<'_, mid::Plan>>`","code":{"code":"clippy::useless_conversion","explanation":null},"level":"error","spans":[{"file_name":"crates/ipu-codegen/src/mid.rs","byte_start":121640,"byte_end":121725,"line_start":3375,"line_end":3378,"column_start":35,"column_end":29,"is_primary":true,"text":[{"text":"            let candidate_plans = cached","highlight_start":35,"highlight_end":41},{"text":"                .iter()","highlight_start":1,"highlight_end":24},{"text":"                .cloned()","highlight_start":1,"highlight_end":26},{"text":"                .into_iter()","highlight_start":1,"highlight_end":29}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#useless_conversion","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"`-D clippy::useless-conversion` implied by `-D warnings`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"to override `-D warnings` add `#[allow(clippy::useless_conversion)]`","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"consider removing `.into_iter()`","code":null,"level":"help","spans":[{"file_name":"crates/ipu-codegen/src/mid.rs","byte_start":121640,"byte_end":121725,"line_start":3375,"line_end":3378,"column_start":35,"column_end":29,"is_primary":true,"text":[{"text":"            let candidate_plans = cached","highlight_start":35,"highlight_end":41},{"text":"                .iter()","highlight_start":1,"highlight_end":24},{"text":"                .cloned()","highlight_start":1,"highlight_end":26},{"text":"                .into_iter()","highlight_start":1,"highlight_end":29}],"label":null,"suggested_replacement":"cached\n                .iter()\n                .cloned()","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror\u001b[0m\u001b[1m: useless conversion to the same type: `std::iter::Cloned<std::slice::Iter<'_, mid::Plan>>`\u001b[0m\n    \u001b[1m\u001b[94m--> \u001b[0mcrates/ipu-codegen/src/mid.rs:3375:35\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m3375\u001b[0m \u001b[1m\u001b[94m|\u001b[0m               let candidate_plans = cached\n     \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m ___________________________________^\u001b[0m\n\u001b[1m\u001b[94m3376\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m                 .iter()\n\u001b[1m\u001b[94m3377\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m                 .cloned()\n\u001b[1m\u001b[94m3378\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m                 .into_iter()\n     \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|____________________________^\u001b[0m\n     \u001b[1m\u001b[94m|\u001b[0m\n     \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#useless_conversion\n     \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: `-D clippy::useless-conversion` implied by `-D warnings`\n     \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: to override `-D warnings` add `#[allow(clippy::useless_conversion)]`\n\u001b[1m\u001b[96mhelp\u001b[0m: consider removing `.into_iter()`\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m3375\u001b[0m \u001b[92m~ \u001b[0m            let candidate_plans = \u001b[92mcached\u001b[0m\n\u001b[1m\u001b[94m3376\u001b[0m \u001b[92m+                 .iter()\u001b[0m\n\u001b[1m\u001b[94m3377\u001b[0m \u001b[92m+                 .cloned()\u001b[0m\n     \u001b[1m\u001b[94m|\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"this `.find_map(..)` can be written more simply using `.find(..)`","code":{"code":"clippy::unnecessary_find_map","explanation":null},"level":"error","spans":[{"file_name":"crates/ipu-codegen/src/mid.rs","byte_start":135169,"byte_end":135284,"line_start":3711,"line_end":3713,"column_start":44,"column_end":15,"is_primary":true,"text":[{"text":"            branch.operations.iter().rev().find_map(|operation| {","highlight_start":44,"highlight_end":66},{"text":"                (operation.results.first() == Some(&id)).then_some(operation)","highlight_start":1,"highlight_end":78},{"text":"            });","highlight_start":1,"highlight_end":15}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#unnecessary_find_map","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"`-D clippy::unnecessary-find-map` implied by `-D warnings`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"to override `-D warnings` add `#[allow(clippy::unnecessary_find_map)]`","code":null,"level":"help","spans":[],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror\u001b[0m\u001b[1m: this `.find_map(..)` can be written more simply using `.find(..)`\u001b[0m\n    \u001b[1m\u001b[94m--> \u001b[0mcrates/ipu-codegen/src/mid.rs:3711:44\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m3711\u001b[0m \u001b[1m\u001b[94m|\u001b[0m               branch.operations.iter().rev().find_map(|operation| {\n     \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m ____________________________________________^\u001b[0m\n\u001b[1m\u001b[94m3712\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m                 (operation.results.first() == Some(&id)).then_some(operation)\n\u001b[1m\u001b[94m3713\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m             });\n     \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|______________^\u001b[0m\n     \u001b[1m\u001b[94m|\u001b[0m\n     \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#unnecessary_find_map\n     \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: `-D clippy::unnecessary-find-map` implied by `-D warnings`\n     \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: to override `-D warnings` add `#[allow(clippy::unnecessary_find_map)]`\n\n"}
{"$message_type":"diagnostic","message":"this method chain can be written more clearly with `if .. else ..`","code":{"code":"clippy::obfuscated_if_else","explanation":null},"level":"error","spans":[{"file_name":"crates/ipu-codegen/src/mid.rs","byte_start":139127,"byte_end":139278,"line_start":3827,"line_end":3829,"column_start":20,"column_end":26,"is_primary":true,"text":[{"text":"        let cast = (source.format.precision != target.format.precision)","highlight_start":20,"highlight_end":72},{"text":"            .then(|| costs.cast_cycles(source, target.format.precision))","highlight_start":1,"highlight_end":73},{"text":"            .unwrap_or(0);","highlight_start":1,"highlight_end":26}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#obfuscated_if_else","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"try","code":null,"level":"help","spans":[{"file_name":"crates/ipu-codegen/src/mid.rs","byte_start":139127,"byte_end":139278,"line_start":3827,"line_end":3829,"column_start":20,"column_end":26,"is_primary":true,"text":[{"text":"        let cast = (source.format.precision != target.format.precision)","highlight_start":20,"highlight_end":72},{"text":"            .then(|| costs.cast_cycles(source, target.format.precision))","highlight_start":1,"highlight_end":73},{"text":"            .unwrap_or(0);","highlight_start":1,"highlight_end":26}],"label":null,"suggested_replacement":"if source.format.precision != target.format.precision { costs.cast_cycles(source, target.format.precision) } else { 0 }","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror\u001b[0m\u001b[1m: this method chain can be written more clearly with `if .. else ..`\u001b[0m\n    \u001b[1m\u001b[94m--> \u001b[0mcrates/ipu-codegen/src/mid.rs:3827:20\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m3827\u001b[0m \u001b[1m\u001b[94m|\u001b[0m           let cast = (source.format.precision != target.format.precision)\n     \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m ____________________^\u001b[0m\n\u001b[1m\u001b[94m3828\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m             .then(|| costs.cast_cycles(source, target.format.precision))\n\u001b[1m\u001b[94m3829\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m             .unwrap_or(0);\n     \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|_________________________^\u001b[0m \u001b[1m\u001b[91mhelp: try: `if source.format.precision != target.format.precision { costs.cast_cycles(source, target.format.precision) } else { 0 }`\u001b[0m\n     \u001b[1m\u001b[94m|\u001b[0m\n     \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#obfuscated_if_else\n\n"}
{"$message_type":"diagnostic","message":"this method chain can be written more clearly with `if .. else ..`","code":{"code":"clippy::obfuscated_if_else","explanation":null},"level":"error","spans":[{"file_name":"crates/ipu-codegen/src/mid.rs","byte_start":139304,"byte_end":139807,"line_start":3830,"line_end":3842,"column_start":25,"column_end":26,"is_primary":true,"text":[{"text":"        let rearrange = (source.format.layout != target.format.layout)","highlight_start":25,"highlight_end":71},{"text":"            .then(|| {","highlight_start":1,"highlight_end":23},{"text":"                costs","highlight_start":1,"highlight_end":22},{"text":"                    .rearrangement_cost(","highlight_start":1,"highlight_end":41},{"text":"                        &source.shape,","highlight_start":1,"highlight_end":39},{"text":"                        target.format.precision,","highlight_start":1,"highlight_end":49},{"text":"                        layout_conversion_strategy(&source.format.layout, &target.format.layout),","highlight_start":1,"highlight_end":98},{"text":"                        &source.format.layout,","highlight_start":1,"highlight_end":47},{"text":"                        &target.format.layout,","highlight_start":1,"highlight_end":47},{"text":"                    )","highlight_start":1,"highlight_end":22},{"text":"                    .cycles","highlight_start":1,"highlight_end":28},{"text":"            })","highlight_start":1,"highlight_end":15},{"text":"            .unwrap_or(0);","highlight_start":1,"highlight_end":26}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#obfuscated_if_else","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"try","code":null,"level":"help","spans":[{"file_name":"crates/ipu-codegen/src/mid.rs","byte_start":139304,"byte_end":139807,"line_start":3830,"line_end":3842,"column_start":25,"column_end":26,"is_primary":true,"text":[{"text":"        let rearrange = (source.format.layout != target.format.layout)","highlight_start":25,"highlight_end":71},{"text":"            .then(|| {","highlight_start":1,"highlight_end":23},{"text":"                costs","highlight_start":1,"highlight_end":22},{"text":"                    .rearrangement_cost(","highlight_start":1,"highlight_end":41},{"text":"                        &source.shape,","highlight_start":1,"highlight_end":39},{"text":"                        target.format.precision,","highlight_start":1,"highlight_end":49},{"text":"                        layout_conversion_strategy(&source.format.layout, &target.format.layout),","highlight_start":1,"highlight_end":98},{"text":"                        &source.format.layout,","highlight_start":1,"highlight_end":47},{"text":"                        &target.format.layout,","highlight_start":1,"highlight_end":47},{"text":"                    )","highlight_start":1,"highlight_end":22},{"text":"                    .cycles","highlight_start":1,"highlight_end":28},{"text":"            })","highlight_start":1,"highlight_end":15},{"text":"            .unwrap_or(0);","highlight_start":1,"highlight_end":26}],"label":null,"suggested_replacement":"if source.format.layout != target.format.layout { {\n                costs\n                    .rearrangement_cost(\n                        &source.shape,\n                        target.format.precision,\n                        layout_conversion_strategy(&source.format.layout, &target.format.layout),\n                        &source.format.layout,\n                        &target.format.layout,\n                    )\n                    .cycles\n            } } else { 0 }","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror\u001b[0m\u001b[1m: this method chain can be written more clearly with `if .. else ..`\u001b[0m\n    \u001b[1m\u001b[94m--> \u001b[0mcrates/ipu-codegen/src/mid.rs:3830:25\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m3830\u001b[0m \u001b[1m\u001b[94m|\u001b[0m           let rearrange = (source.format.layout != target.format.layout)\n     \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m _________________________^\u001b[0m\n\u001b[1m\u001b[94m3831\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m             .then(|| {\n\u001b[1m\u001b[94m3832\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m                 costs\n\u001b[1m\u001b[94m3833\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m                     .rearrangement_cost(\n\u001b[1m\u001b[94m...\u001b[0m    \u001b[1m\u001b[91m|\u001b[0m\n\u001b[1m\u001b[94m3841\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m             })\n\u001b[1m\u001b[94m3842\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m             .unwrap_or(0);\n     \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|_________________________^\u001b[0m\n     \u001b[1m\u001b[94m|\u001b[0m\n     \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#obfuscated_if_else\n\u001b[1m\u001b[96mhelp\u001b[0m: try\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m3830\u001b[0m \u001b[92m~ \u001b[0m        let rearrange = \u001b[92mif source.format.layout != target.format.layout { {\u001b[0m\n\u001b[1m\u001b[94m3831\u001b[0m \u001b[92m+                 costs\u001b[0m\n\u001b[1m\u001b[94m3832\u001b[0m \u001b[92m+                     .rearrangement_cost(\u001b[0m\n\u001b[1m\u001b[94m3833\u001b[0m \u001b[92m+                         &source.shape,\u001b[0m\n\u001b[1m\u001b[94m3834\u001b[0m \u001b[92m+                         target.format.precision,\u001b[0m\n\u001b[1m\u001b[94m3835\u001b[0m \u001b[92m+                         layout_conversion_strategy(&source.format.layout, &target.format.layout),\u001b[0m\n\u001b[1m\u001b[94m3836\u001b[0m \u001b[92m+                         &source.format.layout,\u001b[0m\n\u001b[1m\u001b[94m3837\u001b[0m \u001b[92m+                         &target.format.layout,\u001b[0m\n\u001b[1m\u001b[94m3838\u001b[0m \u001b[92m+                     )\u001b[0m\n\u001b[1m\u001b[94m3839\u001b[0m \u001b[92m+                     .cycles\u001b[0m\n\u001b[1m\u001b[94m3840\u001b[0m \u001b[92m~             } } else { 0 }\u001b[0m;\n     \u001b[1m\u001b[94m|\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"this function has too many arguments (8/7)","code":{"code":"clippy::too_many_arguments","explanation":null},"level":"error","spans":[{"file_name":"crates/ipu-codegen/src/mid.rs","byte_start":140238,"byte_end":140516,"line_start":3857,"line_end":3866,"column_start":1,"column_end":2,"is_primary":true,"text":[{"text":"fn apply_selected_plan(","highlight_start":1,"highlight_end":24},{"text":"    operation: &Operation,","highlight_start":1,"highlight_end":27},{"text":"    output_shape: TensorShape,","highlight_start":1,"highlight_end":31},{"text":"    plan: Plan,","highlight_start":1,"highlight_end":16},{"text":"    single_use_inputs: &[bool],","highlight_start":1,"highlight_end":32},{"text":"    costs: &impl CostModel,","highlight_start":1,"highlight_end":28},{"text":"    values: &mut BTreeMap<ValueId, MidValueId>,","highlight_start":1,"highlight_end":48},{"text":"    state: &mut LoweringState,","highlight_start":1,"highlight_end":31},{"text":"    operations: &mut Vec<MidOperation>,","highlight_start":1,"highlight_end":40},{"text":") {","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#too_many_arguments","code":null,"level":"help","spans":[],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror\u001b[0m\u001b[1m: this function has too many arguments (8/7)\u001b[0m\n    \u001b[1m\u001b[94m--> \u001b[0mcrates/ipu-codegen/src/mid.rs:3857:1\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m3857\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m/\u001b[0m fn apply_selected_plan(\n\u001b[1m\u001b[94m3858\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m     operation: &Operation,\n\u001b[1m\u001b[94m3859\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m     output_shape: TensorShape,\n\u001b[1m\u001b[94m3860\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m     plan: Plan,\n\u001b[1m\u001b[94m...\u001b[0m    \u001b[1m\u001b[91m|\u001b[0m\n\u001b[1m\u001b[94m3865\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m     operations: &mut Vec<MidOperation>,\n\u001b[1m\u001b[94m3866\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m ) {\n     \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|_^\u001b[0m\n     \u001b[1m\u001b[94m|\u001b[0m\n     \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#too_many_arguments\n\n"}
{"$message_type":"diagnostic","message":"redundant redefinition of a binding `plan`","code":{"code":"clippy::redundant_locals","explanation":null},"level":"error","spans":[{"file_name":"crates/ipu-codegen/src/mid.rs","byte_start":140523,"byte_end":140539,"line_start":3867,"line_end":3867,"column_start":5,"column_end":21,"is_primary":true,"text":[{"text":"    let plan = plan;","highlight_start":5,"highlight_end":21}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`plan` is initially defined here","code":null,"level":"help","spans":[{"file_name":"crates/ipu-codegen/src/mid.rs","byte_start":140324,"byte_end":140328,"line_start":3860,"line_end":3860,"column_start":5,"column_end":9,"is_primary":true,"text":[{"text":"    plan: Plan,","highlight_start":5,"highlight_end":9}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":null},{"message":"for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#redundant_locals","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"`-D clippy::redundant-locals` implied by `-D warnings`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"to override `-D warnings` add `#[allow(clippy::redundant_locals)]`","code":null,"level":"help","spans":[],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror\u001b[0m\u001b[1m: redundant redefinition of a binding `plan`\u001b[0m\n    \u001b[1m\u001b[94m--> \u001b[0mcrates/ipu-codegen/src/mid.rs:3867:5\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m3867\u001b[0m \u001b[1m\u001b[94m|\u001b[0m     let plan = plan;\n     \u001b[1m\u001b[94m|\u001b[0m     \u001b[1m\u001b[91m^^^^^^^^^^^^^^^^\u001b[0m\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[96mhelp\u001b[0m: `plan` is initially defined here\n    \u001b[1m\u001b[94m--> \u001b[0mcrates/ipu-codegen/src/mid.rs:3860:5\n     \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m3860\u001b[0m \u001b[1m\u001b[94m|\u001b[0m     plan: Plan,\n     \u001b[1m\u001b[94m|\u001b[0m     \u001b[1m\u001b[96m^^^^\u001b[0m\n     \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#redundant_locals\n     \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: `-D clippy::redundant-locals` implied by `-D warnings`\n     \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: to override `-D warnings` add `#[allow(clippy::redundant_locals)]`\n\n"}
{"$message_type":"diagnostic","message":"very complex type used. Consider factoring parts into `type` definitions","code":{"code":"clippy::type_complexity","explanation":null},"level":"error","spans":[{"file_name":"crates/ipu-codegen/src/place.rs","byte_start":6002,"byte_end":6075,"line_start":179,"line_end":179,"column_start":6,"column_end":79,"is_primary":true,"text":[{"text":") -> Result<(u16, BTreeMap<LowShardId, u32>, Vec<(u32, u32)>), PlacementError> {","highlight_start":6,"highlight_end":79}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#type_complexity","code":null,"level":"help","spans":[],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror\u001b[0m\u001b[1m: very complex type used. Consider factoring parts into `type` definitions\u001b[0m\n   \u001b[1m\u001b[94m--> \u001b[0mcrates/ipu-codegen/src/place.rs:179:6\n    \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m179\u001b[0m \u001b[1m\u001b[94m|\u001b[0m ) -> Result<(u16, BTreeMap<LowShardId, u32>, Vec<(u32, u32)>), PlacementError> {\n    \u001b[1m\u001b[94m|\u001b[0m      \u001b[1m\u001b[91m^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u001b[0m\n    \u001b[1m\u001b[94m|\u001b[0m\n    \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#type_complexity\n\n"}
{"$message_type":"diagnostic","message":"this method chain can be written more clearly with `if .. else ..`","code":{"code":"clippy::obfuscated_if_else","explanation":null},"level":"error","spans":[{"file_name":"crates/ipu-codegen/src/tile.rs","byte_start":8138,"byte_end":8260,"line_start":228,"line_end":230,"column_start":37,"column_end":45,"is_primary":true,"text":[{"text":"                    repeat_patches: inside_repeat","highlight_start":37,"highlight_end":50},{"text":"                        .then(|| placed.repeat_patches.clone())","highlight_start":1,"highlight_end":64},{"text":"                        .unwrap_or_default(),","highlight_start":1,"highlight_end":45}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#obfuscated_if_else","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"try","code":null,"level":"help","spans":[{"file_name":"crates/ipu-codegen/src/tile.rs","byte_start":8138,"byte_end":8260,"line_start":228,"line_end":230,"column_start":37,"column_end":45,"is_primary":true,"text":[{"text":"                    repeat_patches: inside_repeat","highlight_start":37,"highlight_end":50},{"text":"                        .then(|| placed.repeat_patches.clone())","highlight_start":1,"highlight_end":64},{"text":"                        .unwrap_or_default(),","highlight_start":1,"highlight_end":45}],"label":null,"suggested_replacement":"if inside_repeat { placed.repeat_patches.clone() } else { Default::default() }","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror\u001b[0m\u001b[1m: this method chain can be written more clearly with `if .. else ..`\u001b[0m\n   \u001b[1m\u001b[94m--> \u001b[0mcrates/ipu-codegen/src/tile.rs:228:37\n    \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m228\u001b[0m \u001b[1m\u001b[94m|\u001b[0m                       repeat_patches: inside_repeat\n    \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m _____________________________________^\u001b[0m\n\u001b[1m\u001b[94m229\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m                         .then(|| placed.repeat_patches.clone())\n\u001b[1m\u001b[94m230\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m                         .unwrap_or_default(),\n    \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|____________________________________________^\u001b[0m \u001b[1m\u001b[91mhelp: try: `if inside_repeat { placed.repeat_patches.clone() } else { Default::default() }`\u001b[0m\n    \u001b[1m\u001b[94m|\u001b[0m\n    \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#obfuscated_if_else\n\n"}
{"$message_type":"diagnostic","message":"unnecessary closure used to substitute value for `Option::None`","code":{"code":"clippy::unnecessary_lazy_evaluations","explanation":null},"level":"error","spans":[{"file_name":"crates/ipu-codegen/src/tile.rs","byte_start":8546,"byte_end":8966,"line_start":237,"line_end":244,"column_start":21,"column_end":23,"is_primary":true,"text":[{"text":"                    local_copy_call(copy).ok_or_else(|| TileLoweringError::InvalidLocalCopy {","highlight_start":21,"highlight_end":94},{"text":"                        tile: tile.tile,","highlight_start":1,"highlight_end":41},{"text":"                        source_shard: copy.source,","highlight_start":1,"highlight_end":51},{"text":"                        source_offset: copy.source_offset,","highlight_start":1,"highlight_end":59},{"text":"                        destination_shard: copy.destination,","highlight_start":1,"highlight_end":61},{"text":"                        destination_offset: copy.destination_offset,","highlight_start":1,"highlight_end":69},{"text":"                        bytes: copy.bytes,","highlight_start":1,"highlight_end":43},{"text":"                    })?;","highlight_start":1,"highlight_end":23}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#unnecessary_lazy_evaluations","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"`-D clippy::unnecessary-lazy-evaluations` implied by `-D warnings`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"to override `-D warnings` add `#[allow(clippy::unnecessary_lazy_evaluations)]`","code":null,"level":"help","spans":[],"children":[],"rendered":null},{"message":"use `ok_or` instead","code":null,"level":"help","spans":[{"file_name":"crates/ipu-codegen/src/tile.rs","byte_start":8568,"byte_end":8966,"line_start":237,"line_end":244,"column_start":43,"column_end":23,"is_primary":true,"text":[{"text":"                    local_copy_call(copy).ok_or_else(|| TileLoweringError::InvalidLocalCopy {","highlight_start":43,"highlight_end":94},{"text":"                        tile: tile.tile,","highlight_start":1,"highlight_end":41},{"text":"                        source_shard: copy.source,","highlight_start":1,"highlight_end":51},{"text":"                        source_offset: copy.source_offset,","highlight_start":1,"highlight_end":59},{"text":"                        destination_shard: copy.destination,","highlight_start":1,"highlight_end":61},{"text":"                        destination_offset: copy.destination_offset,","highlight_start":1,"highlight_end":69},{"text":"                        bytes: copy.bytes,","highlight_start":1,"highlight_end":43},{"text":"                    })?;","highlight_start":1,"highlight_end":23}],"label":null,"suggested_replacement":"ok_or(TileLoweringError::InvalidLocalCopy {\n                        tile: tile.tile,\n                        source_shard: copy.source,\n                        source_offset: copy.source_offset,\n                        destination_shard: copy.destination,\n                        destination_offset: copy.destination_offset,\n                        bytes: copy.bytes,\n                    })","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[1m\u001b[91merror\u001b[0m\u001b[1m: unnecessary closure used to substitute value for `Option::None`\u001b[0m\n   \u001b[1m\u001b[94m--> \u001b[0mcrates/ipu-codegen/src/tile.rs:237:21\n    \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m237\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m/\u001b[0m                     local_copy_call(copy).ok_or_else(|| TileLoweringError::InvalidLocalCopy {\n\u001b[1m\u001b[94m238\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m                         tile: tile.tile,\n\u001b[1m\u001b[94m239\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m                         source_shard: copy.source,\n\u001b[1m\u001b[94m240\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m                         source_offset: copy.source_offset,\n\u001b[1m\u001b[94m...\u001b[0m   \u001b[1m\u001b[91m|\u001b[0m\n\u001b[1m\u001b[94m243\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m                         bytes: copy.bytes,\n\u001b[1m\u001b[94m244\u001b[0m \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|\u001b[0m                     })?;\n    \u001b[1m\u001b[94m|\u001b[0m \u001b[1m\u001b[91m|______________________^\u001b[0m\n    \u001b[1m\u001b[94m|\u001b[0m\n    \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#unnecessary_lazy_evaluations\n    \u001b[1m\u001b[94m= \u001b[0m\u001b[1mnote\u001b[0m: `-D clippy::unnecessary-lazy-evaluations` implied by `-D warnings`\n    \u001b[1m\u001b[94m= \u001b[0m\u001b[1mhelp\u001b[0m: to override `-D warnings` add `#[allow(clippy::unnecessary_lazy_evaluations)]`\n\u001b[1m\u001b[96mhelp\u001b[0m: use `ok_or` instead\n    \u001b[1m\u001b[94m|\u001b[0m\n\u001b[1m\u001b[94m237\u001b[0m \u001b[92m~ \u001b[0m                    local_copy_call(copy).\u001b[92mok_or(TileLoweringError::InvalidLocalCopy {\u001b[0m\n\u001b[1m\u001b[94m238\u001b[0m \u001b[92m+                         tile: tile.tile,\u001b[0m\n\u001b[1m\u001b[94m239\u001b[0m \u001b[92m+                         source_shard: copy.source,\u001b[0m\n\u001b[1m\u001b[94m240\u001b[0m \u001b[92m+                         source_offset: copy.source_offset,\u001b[0m\n\u001b[1m\u001b[94m241\u001b[0m \u001b[92m+                         destination_shard: copy.destination,\u001b[0m\n\u001b[1m\u001b[94m242\u001b[0m \u001b[92m+                         destination_offset: copy.destination_offset,\u001b[0m\n\u001b[1m\u001b[94m243\u001b[0m \u001b[92m+                         bytes: copy.bytes,\u001b[0m\n\u001b[1m\u001b[94m244\u001b[0m \u001b[92m~                     })\u001b[0m?;\n    \u001b[1m\u001b[94m|\u001b[0m\n\n"}
{"$message_type":"diagnostic","message":"aborting due to 31 previous errors","code":null,"level":"error","spans":[],"children":[],"rendered":"\u001b[1m\u001b[91merror\u001b[0m\u001b[1m: aborting due to 31 previous errors\u001b[0m\n\n"}
